[ dbabic @ 29.06.2005. 17:38 ] @
Imam lokalnu mrežu od x računara i intranet se opslužuje IIS-PHP-MySql. Može li neko da mi objasni kako da izvršim authentifikaciju (čitaj: ako može neka skripta da se pogleda) korisnika na osnovu korisnika koji postoje u bazi MySql-a.
Nadam se da rešavanje ovog problema nezahteva detaljno upoznavanje sa RFC2616 dokumentom.
Ako je pitanje malo nejasno, prokomentarišite - pa ću precizirati.
[ flylord @ 29.06.2005. 23:05 ] @
RFC ti ne treba ni zasta, ali ajd pokusaj ipak malo bolje objasniti :) Ako nije frka
[ broker @ 30.06.2005. 00:49 ] @
Napravis formu u kojoj se unosi korisnicko ime i lozinka pa na dugme pozoves skriptu koja ce da u bazi proveri da li postoij korsinik i d ali odgovara lozinka, pa ako odgovara teras dalje... a status cuvas u sesiji da bi na drugim stranama znao da li je user ulogovan i koji je user u pitanju.

Imas gomile gotovih resenja na farmama skriptova na netu.
[ urke081 @ 30.06.2005. 09:18 ] @
Probaj na ovaj nacin:

<?
function autentifikacija ()
{
header('WWW-Authenticate: Basic realm="KSI"');
header('HTTP/1.0 401 Unauthorized');
echo 'Autorizacija neuspjesna.';
exit;
}


if ((!isset($_SERVER['PHP_AUTH_USER'])) || ($_SERVER['PHP_AUTH_USER'] == "") || ($_SERVER['PHP_AUTH_PW'] == ""))
{
autentifikacija();
}


else {

require 'konekcija.php';
$query = 'SELECT pass FROM users where username="' . $_SERVER['PHP_AUTH_USER'] . '";';
$result = mysql_query($query) or die("Query 2failed".mysql_error());
$postoji=0;

while ($rez = mysql_fetch_row($result))
if ((md5($_SERVER['PHP_AUTH_PW']) == $rez[0]))
$postoji=1;

mysql_free_result($result);

if ($postoji == 0)
{
autentifikacija();
}

}
?>

I onda na svakoj strani dodaj prije pocetka html koda
<?php
require "autorizacija.php"
?>
i trebalo bi da radi
[ urke081 @ 30.06.2005. 09:21 ] @
I da zaboravih, ovaj dio koda

if ((md5($_SERVER['PHP_AUTH_PW']) == $rez[0]))

nemoj da te zbuni ovo md5 posto ja koristim md5 skriptovanje passworda a ako nemas nikakvu ili koristis drugi nacin za to samo obrisi to md5
[ dbabic @ 01.07.2005. 12:11 ] @
Urke hvala za kod. Hajde mi samo malo pomozi da ga nateram da radi.
Ovako, tvoj skript podrazumeva jednog korisnika koji ima pravo select nad tabelom mysql.user a ciji je username i password su navedeni u "konekcija.php".
Code:
<?php
    $host='localhost';
    $user='tmp';
    $pswd='tmp';
    $dbh=MYSQL_CONNECT($host, $user, $pswd) OR DIE("Neuspelo povezivanje sa serverom baze.");
    @mysql_select_db($database) or die("Neuspelo povezivanje sa bazom.");
?>
Strana koja zahteva verifikaciju treba da ima:
Code:
<?php
require 'autorizacija.php';
if (($_SERVER['PHP_AUTH_PW']) == $rez[0]){
...
}?>

Problem je sto strana nece da se ucita, nego se dijalog za upis(username i pass) ponovi tri puta i onda me obavesti da nisam autorizovan. Mozes li mi reci u cemu je problem.
[ dbabic @ 02.07.2005. 13:47 ] @
Gde ste sad svi nestali. Ocel' mi neko dati neki odgovor!?
[ Nemanja Avramović @ 02.07.2005. 14:44 ] @
ja nista ne kontam sta si ti napisao gore :D

ovo u konekcija.php ti je za logovanje na MySQL server i to nema veze sa korisnicima... a u MySQL bazi treba da imas tabelu koja ce imati makar dve kolone: pass i username (a pass-ove moras md5 da ubacujes, ili iz koda gore da izbacis md5, kako ti je covek vec rekao).

A strana koja zahteva autorizaciju mora na pocetku strane da ima:

Code:
<?php
require "autorizacija.php"
?>


i nista vise... ispod ide normalna strana...