Avatar billede m_bold Praktikant
22. januar 2006 - 09:20 Der er 10 kommentarer og
1 løsning

Cookie vil ikke forsvinde

Hej.

Jeg sætter en cookie, som skal afspejle en indkøbskurv:
session_start();
setcookie("cartId", session_id(), time() + (3600 * 24));

Så sletter jeg den igen efterfølgende med det her:
setcookie("cartId", "", time()-3600);


Men det er kun nogle gange, jeg kan starte på en frisk kurv med det samme, fordi andre gange skal browseren lukkes først. Hvordan slipper jeg forbi det problem?
Avatar billede jakobdo Ekspert
22. januar 2006 - 09:23 #1
Smider du brugeren til en nye side efter cookie slettes?
Du kunne jo smide til: sletCookie.php
og den kunne så blot indeholde:
<?php
setcookie("cartId", "", time()-3600);
header("Location: " . $_SERVER['HTTP_REFERER']);
exit();
?>
Avatar billede m_bold Praktikant
22. januar 2006 - 09:46 #2
Nej det gjorde jeg ikke, men har lige ændret det.

Men det ændrer desværre ikke ved problemet. Jeg kan stadig gå direkte tilbage til indkøbskurven og varerne ligger der stadig.
Avatar billede jakobdo Ekspert
22. januar 2006 - 09:49 #3
Du er sikker på du ikke også har noget sessions blandet ind over?
Avatar billede coderdk Praktikant
22. januar 2006 - 09:51 #4
setcookie( "cartId" );
session_destroy();
Avatar billede jakobdo Ekspert
22. januar 2006 - 10:02 #5
Avatar billede m_bold Praktikant
22. januar 2006 - 10:09 #6
Jeg bruger sessions til at identificere brugeren. Men kører også en session_destroy(); efter jeg har slettet cookien.
Avatar billede jakobdo Ekspert
22. januar 2006 - 10:13 #7
Så skal du bruge at unsette session som styrer indkøbskurven?
Avatar billede m_bold Praktikant
22. januar 2006 - 10:27 #8
Jeg tror ikke helt, jeg forstår hvad du mener... Jeg bruger jo ikke sessions til at styre indkøbskurven.
Avatar billede jakobdo Ekspert
22. januar 2006 - 10:30 #9
Det gør jeg heller ikke! :o)
Avatar billede m_bold Praktikant
22. januar 2006 - 21:36 #10
Jeg har nu siddet og testet det lidt, og i den forbindelse har jeg også sat cookien meget langt tilbage i tiden, når jeg tømmer kurven: setcookie("cartId", "", time()-(3600 * 30));

Jeg er nået frem til, at når jeg første gang går ind og gennemfører en ordre, bliver kurven rent faktisk tømt, men hvis jeg så går direkte i gang med en ny ordre og gennemfører den, bliver kurven ikke tømt.

Dvs. det virker altså første gang, men ikke anden gang. Hvis jeg lukker browseren og starter forfra er det det samme igen.

Giver det her mening for nogen af jer, fordi jeg forstår det sgu ikke?
Avatar billede m_bold Praktikant
12. marts 2006 - 18:25 #11
Lukker, da ingen kunne hjælpe mig.
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