Skripta zapamti korisnika

Pozdrav!

Dali mi neko može reći kako da napravim kad korisnik se loguje na sajt da ga session zapamti npr na 15 minuta i sad ako ode sa sajta i opet se vrati u roku tih 15 minuta da bude opet online, da nemora se ponovo ulogovati.

Pada mi napamet da mu staviš cookie u preglednik.

Možeš li mi malo bolje objasniti kako da to uradim, nisam nikad ništa radio sa cookie.

HVALA!

http://www.php.net/setcookie

http://www.w3schools.com/PHP/php_cookies.asp
Evo ti ode sve. Mislim da setiranje mora biti na samom vrhu skripte, zbog headera i sličnih gluposti.

Ovdje je primjer koda:

http://www.forum.hr/showthread.php?t=493239

netočno, može biti bilo gdje samo ne smije biti nikakvog ispisa prije.

Moguće!

opet ne kontam sta da spremim u cookies kad se korisnik uloguje da bi mu session trajo 15 minuta

samo treba malo razmisliti, pravi programer će to sam zaključiti od prve.
Al ajd da ne pametujem, izgeneriraš neki random string i spremiš ga u bazu, u cookie spremaš taj broj i username, kasnije provjeravaš dal taj random string i username imaš koji ti je u cookieju imaš u bazi i prema tome logiraš korisnika.

A ja provjeravam dali je korisnik ulogovan preko sessiona, dali se može stavljati vrijeme na session?

U cookie možeš staviti šta god hoćeš pa i vrijeme, al mislim da ti ti ne treba jer kad cookieu isteče njegovo vrijeme isto je kao da ga nema.

Opet ne mogu skontat kako da napravim!

Po vama bi trebo da prilikom logovanja na sajt spremam korisnikov id u cookies i da preko cookies provjeravam da li je korisnik logovan.

Ja spremama id korisnika u session

Dali se može kako da kad spremam korisnikov id u session dali se može odrediti trajanje sessije?

http://www.php.net/manual/en/function.session-cache-expire.php
Tu imaš nešto o trajanju sešna.

Nije preporučljivo da session predugo traje, tebi fali puno literature. Možda da pročitaš koju knjigicu a?

  1. Cookie ili kolačić je mala datotekica koju browser sprema na računalo klijenta.

  2. Cookie se postavlja naredbom setcookie, dovoljno je pogledati manual

    bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

i sve je jasno, znači cookieju prenosiš parametre, ime,vrijednost i trajanje (može se i više toga, ali to sad nije bitno, ove tri su bitne)
3. Znači postaviš 1. cookie s korisnikovim id-em

setcookie("id_korisnika",$id,time()+(365*24*60*60));

(3652460*60) ti je broj sekundi u jednoj godini, ulogirat ćemo ga za sljedećih godinu dana
4. Treba postaviti i neki random string, kojeg čuvaš u bazi. Dakle kako sam ti već napomenuo cookie je na strani klijenta i klijent ga može izmijeniti, ako mu ti staviš unutra samo id, korisnik bi mogao izmijeniti taj id i biti ulogiran kao neki drugi korisnik, dakle velika sigurnosna rupa.

setcookie("hash",md5($RandomString),(365*24*60*60));

Taj random string mora biti spremljen u bazi i DRUKČIJI za svakog korisnika
5. Kada slijedeći put korisnik pristupi stranici (više od15min kad istekne session) treba provjeriti dal postoji cookie i koja vrijednost je u njemu, igraj se malo sa time setiraj neke cookie pa onda napravi print_r($_COOKIE);
dakle $_COOKIE[“id_korisnika”] i $_COOKIE[“hash”] u sebi sadrže podatke preko kojih možeš ulogirati korisnika, znači sada napraviš upit u bazi gdje je id_korisnika=$_COOKIE[“id_korisnika”] i hash=$_COOKIE[“hash”], naravno ne zaboravi escapeovati podatke, da ne bi dozvolio SQL INJECTION
6. Sada ako postoji u bazi korisnik sa tim hashem i id em korisnika, obnovi mu session i on je logiran, ako ne postoji nijedan red, ne možeš ga logirati i prikazuješ mu formu za unos korisničkohg imena i lozinke.

Za sada toliko.

Lepo ti je to Kečko objasnio samo imaj na umu da je takav pristup veoma low-security bez obzira na escape-ovane podatke.

Na primer, registrujem se na tvoj sajt i logujem se sa opcijom “Upamti me”, kada će mi se i kreirati cookie (loš, ali bukvalan prevod - “kolačić”). Zatim na tvoj sajtu posavim neki link sa tekstom “Hej poseti ovo da vidiš to i to”.
Neki drugi korisnik klikne na link i poseti sajt gde sam postavio skriptu da mu čita cookie i snimi kao .txt (npr). Pošto sam se već registrovao na tvoj sajt znam strukturu cookie-a i samo zamenim sadržaj cookie-a sa ovim što je moja skripta napravila i VOILA - logovao sam se kao taj drugi korisnik. Još ako je taj korisnik admin…to otvara mnogo mogućnosti za propuste.

Prvo prouči ovo što ti je Kečko napisao a onda se ozbiljnije pozabavi sa security.

Za početak možeš pročitati i ovaj članak:

http://jaspan.com/improved_persistent_login_cookie_best_practice