Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

cookies ili sessions?

[es] :: PHP :: cookies ili sessions?

[ Pregleda: 4602 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dzhana
Jana Poljovka
RZTR programer
Novi Sad

Član broj: 21810
Poruke: 17
*.dialup.neobee.net.

ICQ: 309419471


Profil

icon cookies ili sessions?12.03.2004. u 01:19 - pre 217 meseci
Interesuje me sta su zapravo sesije i da li ih je bolje koristiti od cookia.
Znam da pise u manualu, ali volela bih da mi neko, prakticno, objasni da li su sesije bolje od cookia i zasto?
 
Odgovor na temu

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.vdial.verat.net



+1 Profil

icon Re: cookies ili sessions?12.03.2004. u 02:07 - pre 217 meseci
Pa i cookies i sessions se koriste da bi ti neke varijable bile dostupne svo vreme. Znači da se ne bi mučila da promenljive prenosiš sa stranice na stranicu preko GET ili POST metoda (npr. <a href="bla.php?ime=zoki">Link</a> pa onda to na sledećoj stranici retrivuješ sa $ime=$_GET['ime'];)... Zamisli samo da imaš 10 varijabli koje treba da su ti dostupne na svakoj stranici... U te svrhe koristiš cookies ili sessions da setuješ to što hoćeš da ti bude dostupno svo vreme.

Sad, ako je korisnik isključio primanje kukija, onda se moraju koristiti sesije. Sesije su meni baš elegantan način da imaš sve varijable koje hoćeš dostupne u bilo koje vreme.


Kada je sesija startovana, ona dobija unikatni session_id, koji se može čuvati na 2 mesta (u zavisnosti da li su cookies on ili off):

- u kukiju kod korisnika
ili
- se prenosi preko query stringa na kraju url-a


Ovaj session_id je u stvari ono što je najbitnije, jer on predstavlja vezu između tebe i tvojih varijabli kojima želiš da pristupaš svo vreme. Nije loše da se zna da se sve varijable u okviru jedne sesije ne nalaze u kukiju, već se nalaze na server-strani, znači na serveru se kreira specijalni fajl u kome se čuvaju sve varijable te sesije. Fajl dobija ime tipa "sess_brojsesije", npr. "sess_191b4df7d9a703ba51f097ad4c0fc1a4". Jedna sesija - jedan fajl.


Praksa:

Na primer na svakoj stranici na sajtu želiš da pozdraviš korisnika koji se prethodno ulogovao. Prvo ubaciš njegovo ime u $_SESSION array:
Code:


// prvo se uradi login procedura, bla bla bla....

// ako je sve u redu, dodaj ime usera u $_SESSION array

session_start();

$_SESSION['ime']=$username; 


Dalje na bilo kojoj stranici da bi dobila ime korisnika, samo ideš:

Code:

session_start();

echo $_SESSION['ime'];


Obrati pažnju da session_start() mora uvek da se uradi, znači i kada kreiraš sesiju i kada pristupaš varijablama sesije, jer session_start() u stvari nalazi koji je session_id neke sesije i na osnovu toga pronalazi fajl na serveru u kome se nalaze sve varijable date sesije i na taj način one su ti dostupne. Ako se ne uradi session_start(), varijable sesije ti neće biti dostupne.

Da bi neku varijablu izbacila iz $_SESSION array-a, uradiš samo:

Code:

unset($_SESSION['ime']);


I npr. kada se korisnik izloguje, i hoćeš da uništiš sesiju, jer ti više ništa od varijabli iz te sesije nije potrebno, ideš:

Code:

session_destroy();


i time će tvoja sesija biti uništena.


I eto, to je ta nauka. Trebalo bi stvarno da prevedemo php manual na srpski jezik :)

[Ovu poruku je menjao Judge Dred dana 12.03.2004. u 04:12 GMT]
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+163 Profil

icon Re: cookies ili sessions?12.03.2004. u 02:12 - pre 217 meseci
S dodatkom da se cookies mogu koristiti i za praćenje korisnika na duži period pa onda imaš autologin kada korisnik posle mesec dana opet poseti tvoj sajt, a ti već na prvoj stranici možeš da ga iznenadiš personalizovanim sadržajem. I onda se on oduševi kako mu ti znaš ime i još neke PII, i nastavi da posećuje tvoj sajt još češće.

Zavisi dakle šta ti treba.. ako se kuca user/pass uvek prilikom pristupa lokaciji, koristi sesije.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: cookies ili sessions?12.03.2004. u 14:03 - pre 217 meseci
Dzhana, moj predlog ti je da pogledas nekoliko tekstova u vezi ovoga

napisanih za sajt PhpBuilder, a koji se nalaze na sledecoj lokaciji:

http://www.phpbuilder.com/columns/index.php3?cat=6&subcat=36

Tekstovi su na engleskom i uvek pocetnike upucujem na njih, jer je tamo

objasnjeno maltene sve sto coveku treba u vezi ove teme. Uz PHP manual

(besplatan, da se skinuti sa http://www.php.net/docs.php u raznoraznim

oblicima - ako si na Windows-u predlazem CHM) i ovih nekoliko tekstova

naucices sve o sesijama za tili cas.

Jos nesto, PHP sesije su nesto sto se u teoriji programiranja zove

"persistency". Najkrace receno u pitanju je tehnika koja "produzava

zivot" varijable. Kao sto znas varijable uglavnom "zive" dok zivi

aplikacija (to je maksimalni vek koji neka tipicna varijabla moze

imati). Perzistentnost daje varijablama (objektima) dodatnu mogucnost da

one "nadzive" same aplikacije.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dzhana
Jana Poljovka
RZTR programer
Novi Sad

Član broj: 21810
Poruke: 17
*.dialup.neobee.net.

ICQ: 309419471


Profil

icon Re: cookies ili sessions?15.03.2004. u 23:55 - pre 217 meseci
Hvala vam puno na informacijama :)
Korisim ja cookie vec duze vreme, medjutim pojavio mi se problem u nekim verzijama browsera, kada preko java scripta postavim neki cookie
npr iz "dir/file.php"... fajl koji se nalazi na "dir/subdir/file2.php" ne vidi taj cookie.
Ja sam mislila da bi cookie trebao da se vidi na celom tom domenu
eto, to me iznerviralo, pa sam pomislila da je mozda vreme da predjem na sessions
 
Odgovor na temu

[es] :: PHP :: cookies ili sessions?

[ Pregleda: 4602 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.