Avatar billede sungdk Nybegynder
03. juni 2004 - 23:17 Der er 8 kommentarer og
1 løsning

Slet cookie problem

Hej Eksperter

Hvordan sletter jeg nemmest cookies? Det er en form for "logud".

<?
$time = time();
setcookie("cookie_navn", "", $time - 3600);
?>

Den virker jo fint nok hvis min EGEN computers årstal står på 2004. Men så snart jeg sætter den på 2002, så vil den ikke logge ud.

Nogle må have oplevet dette her før?

Tak...
Avatar billede swaxi Nybegynder
03. juni 2004 - 23:53 #1
cookies er noget sært noget, så nogle gange må man bare prøve sig frem. et hint er, at du skal unsette en cookie med de samme værdier, som den blev sat.
Avatar billede coderdk Praktikant
04. juni 2004 - 02:13 #2
setcookie( "cookie_navn" );
eller:
unset( $_COOKIE["cookie_navn"] );
Avatar billede roenving Novice
04. juni 2004 - 03:44 #3
Du kan vel prøve at sætte den til et absurd tidspunkt i fortiden !-)

<?
setcookie("cookie_navn", "", 0);
?>
Avatar billede sungdk Nybegynder
04. juni 2004 - 23:14 #4
Virker intet af det.

Prøv selv at sætte jeres årstal til 2002 og "slet" en cookie...
Avatar billede jakobclausen Nybegynder
04. juni 2004 - 23:17 #5
Jeg vil nøjes med at sætte de to første værdier, når du opretter din cookie.

setcookie("navn", "værdi")

På den måde vil din cookie blive slettet automatisk når browseren lukkes, eller du kan unset det - hvilket der ikke burde være problemer med så.
Avatar billede roenving Novice
05. juni 2004 - 02:17 #6
Medmindre php reagerer fuldstændigt absurd i forhold til standarderne omkring cookies, burde den eneste fejlmulighed i forhold til mit forslag være, at den ikke accepterer tal mindre end en vis størrelse ...

Så du kan jo prøve at give den en størrelse større end 0'et, f.eks. 631148400 (1/1-1990)
Avatar billede coderdk Praktikant
05. juni 2004 - 03:39 #7
setcookie( "cookie_navn" );
Virker fint, jeg bruger selv den alle steder. Prøv evt. at tvinge en reload af siden EFTER du har slettet den cookie.
Læg mærke til dokumentationen:

* Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);.

* Cookies must be deleted with the same parameters as they were set with. If the value argument is an empty string (""), and all other arguments match a previous call to setcookie, then the cookie with the specified name will be deleted from the remote client.
Avatar billede coderdk Praktikant
05. juni 2004 - 04:38 #8
setcookie( "cookie_navn" );
Virker fint, jeg bruger selv den alle steder. Prøv evt. at tvinge en reload af siden EFTER du har slettet den cookie.
Læg mærke til dokumentationen:

* Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);.

* Cookies must be deleted with the same parameters as they were set with. If the value argument is an empty string (""), and all other arguments match a previous call to setcookie, then the cookie with the specified name will be deleted from the remote client.
Avatar billede sungdk Nybegynder
16. juni 2004 - 12:16 #9
Det er en BUG i cookies. Man er nødt til at sætte exp. tiden urimelig langt bagud.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester