traži:  
 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 - 2008 php.com.hr