Cookies til brugersystem

Tags:    php

<< < 12 > >>
Jeg er ved at lave et nyt site, der skal være et brugersystem, brugte sessions før, men gider dem ikke, da de ik kan gemmes fast.

Jeg vil spørge om man kan få en cookie til at slette sig selv når browseren lukkes, hvis man sætter kryds i "Husk" feltet, skal de gemmes hele tiden .. Kan det lade sig gøre :D?

Og skal man starte med en special kode i toppen, ligesom med sessions.



20 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Nej, der sker der ikke så meget ved. Den smule hastigheden på siden nedsættes med, betyder sikkert ikke så meget på din side, og serveren kan sikkert også klare det ekstra først at skulle buffe siden lokalt og derefter sende den.

Men der er ikke noget der hedder at du ikke kan. Måske gider du ikke, fordi det ikke er det værd at begynde at ændre på koden, men du kan. Du kan jo bare tjekke brugernavnet og passwordet inden du udskriver noget på siden.



Det er muligt at tjekke om cookies er sat uden at lave en request. Jeg har lavet et system i JavaScript der kan gøre det...

js_cookies.js:
Fold kodeboks ind/udKode 






setcookie('navn', 'værdi', 0); // sætter en session cookie, det vil sige en cookie, der slettes, når browseren lukkes

setcookie('navn', 'værdi', time() + 1000); // sætter en almindelig cookie, der slettes på et bestemt tidspunkt, i dette tilfælde om 1000 sekunder.



du sætter vist en cookie til at blive slette når browseren lukkes ved ikke at angive noget tidspunkt for sletningen.
setcookie('index', 'værdi');
man kan ikke gemme den til evig tid, men man kan gøre det næst bedste, time() + 99999999
ved tjek om en cookie eksistere bruger du bare superglobalen $_COOKIE['index'].



Åbner man ik også data for en cookie på denne måde $_COOKIE['index'] ??

er 99999999 ik godtnok 1157,40 dage ??

Og hvordan tjekker man om brugeren har slået cookies til i browseren?



Indlæg senest redigeret d. 26.10.2006 20:16 af Bruger #10622
Hvordan kan en cookie der bliver gemt i tre år ikke være nok?

Du kan tjekke om en bruger har slået cookies til ved at sætte en cookie og derefter tjekke om den er sat:

setcookie('CookieTest',true);

if($_COOKIE["CookieTest"]) {
//cookien er sat...
}



3 år er mange år, tror mange vil få formateret deres computer iden for de næste 3 år :D

Tak ..

Henter man dataerne sådan her så "echo $_COOKIE['index'];"

Forresten, hvordan sletter man så en cookie, hvis brugeren ønsker ikke at blive husket mere??



Indlæg senest redigeret d. 27.10.2006 14:14 af Bruger #10622
Du udskriver indholdet af en cookie ligesom du selv har skrevet.

For at "slette" en cookie, skal du overskrive den således:
Fold kodeboks ind/udKode 




Sætning af cookies kan ikke tjekkes så let som Nick Frederiksen skriver. Cookien bliver jo først synlig fra næste request, så der skal en lidt større omgang til, hvis man vil teste det.

Cookies kan slettes ved at sætte en cookie, med samme navn som udløber i fortiden:

setcookie('navn', '', 1); // udløber 1 sekund efter nytår 1970



Prøver lige at lave det en dag efter weekenden, når jeg er kommet hjem ..



<< < 12 > >>
t