 |
 |
|
|
 |
|
|
 |
|
php.com.hr > Vodič > Upotreba sessiona |
Upotreba sessiona
Session je jedan od načina upravljanja skupom podataka o stanju. Umjesto da se lokalno čuvaju vrijednosti svih varijabli, browser čuva samo identifikator sessiona.
HTTP protokol ne čuva stanje stoga se za čuvanje podataka u srednjem sloju ne zna dužina trajanja.
Započinjanje sessiona:
U PHP-u postoji funkcija session_start (), koja započinje novi session, a zatim identificira i inicijalizira postojeći session.
Kada se prvi puta pozove funkcija session_start () generira se identifikator novog sessiona. Vrijednost identifikatora sessiona je grupa od 32 nasumično generirane heksadecimalne sifre.
Varijable koje namjeravate koristiti prvo morate registrirati pomoću funkcije session_register () Ako session ne postoji ta funkcija prvo poziva funkciju session_start () da otvori datoteku sessiona.
Upotreba funkcije session_register () :
session_register ("korisnik"); $korisnik["user_name"] = $user_name;
Funkciji session_register se proslijeđuje ime varijable a ne njena vrijednost. Vrijednost smo pridodjelili kasnije.
Potrebno je provjeriti i da li je neka varijabla već registrirana, to ćemo postići upotrebom funkcije session_is_registered ().
if (!session_is_registered("korisnik")) session_register ("korisnik"); $korisnik["user_name"] = $user_name;
Okončavanje sessiona se postiže upotrebom funkcije session_destroy(). Ta funkcija uklanja datoteku sessiona sa sustava ali ne uklanja kolačić PHPSESSID sa klijentskog browsera.. Session se prvo mora inicijalizirati da bi se mogao okončati, dakle:
session_start (); session_destroy();
Kod za ulogiravanje mogao bi izgledati npr ovako:
// zapocinjemo session session_start ();
// provjeravamo username i password proslijeđen post metodom $query = "select * from users where user_name = '$user_name' and password = '$password'"; $result = mysql_query($query, $connection) or die ('Došlo je do greške'); $affected_rows = mysql_num_rows ($result);
/* ako je broj rezultata 1 znali da su podaci ispravni i korisnik postoji te ga ulogiravamo i prebacujemo na naslovnu stranicu */ if ($affected_rows == 1) { $_SESSION['user_name'] = $username; header ("Location: index.php"); } else { print ('Korisničko ime ili lozinka nisu ispravni'); }
|
Vodič
|
|
|
© 2004 - 2005 php.com.hr
|