WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Spottar ut kakan... (https://www.wn.se/forum/showthread.php?t=2906)

Jester 2004-07-26 19:20

Jag har placerat en kaka på klienten med koden (PHP):

Kod:

setcookie("Dumle", "true", time()+66600000,"/","www.dumle.net",0);
och vill hämta den med:

Kod:

$_COOKIE['Dumle'];
Varför plockar jag upp ett null-värde med $_COOKIE??? Det är precis som att kaka inte existerar (isset($_COOKIE['Dumle']) returnerar "false" varje gång). Det ska inte vara något problem med åtkomsten vad jag vet eftersom det fjärde argumentet i setcookie() "/" ska deklarera att kakan ska vara åtkomlig från hela webbplatser.

//Martin - frustrerad PHP-kodare

(Vet att det är PHP vi pratar om här, men kakor känns mer som "klientsida".)

rikardh 2004-07-26 21:49

Problemet kanske ligger i att du har skrivit true med ""

Kod:

setcookie("Dumle", true, time()+66600000,"/","www.dumle.net",0);

Jester 2004-07-26 21:58

Nej, "true" är bara ett värde. Det står inte för att $_COOKIE["Dumle"] ska returnera true även om det blir resultatet av isset($_COOKIE["Dumle"]).

Något annat förslag?

jahaa 2004-07-26 22:46

Testa göra en liten "Felsökning"
Lägg till ett värde i taget.
Börja med.
Kod:

setcookie("Dumle", "true", time()+66600000);

ZN 2004-07-27 17:59

Prova komma åt den med $HTTP_COOKIE_VARS['Dumle'] istället, det funkar för mig iaf.
Funkar det ändå inte så kör ob_start(); längst upp på sidan så ska det funka.

Jester 2004-07-27 19:56

Citat:

Originally posted by Bitbull@Jul 27 2004, 17:59
Prova komma åt den med $HTTP_COOKIE_VARS['Dumle'] istället, det funkar för mig iaf.
Funkar det ändå inte så kör ob_start(); längst upp på sidan så ska det funka.

Fungerade tyvärr inte heller. ob_start() anropas i basdokumentet.

Det skumma är att det varken fungerar på webbhotellet eller på min egen localhost. Annars hade man ju kunnat misstänka något strul åtkomsten.

Filip 2004-07-27 20:44

Jag kan komma att tänka på tre saker.

1. Sätter du kakan som header information? (du borde iofs få ett felmeddelande annars...)

2. Prova att sätta kortare tid. Jag har för mig att du bara kan sätta en kaka för maximalt ett år, dvs 60*60*24*365=31536000 sekunder

3. Sätt en phpinfo() på sidan, och se vilka variabler som har sparats.

Jester 2004-07-27 20:48

Citat:

Originally posted by Filip@Jul 27 2004, 20:44
Jag kan komma att tänka på två saker.

1. Sätter du kakan som header information? (du borde iofs få ett felmeddelande annars...)

2. Prova att sätta kortare tid. Jag har för mig att du bara kan sätta en kaka för maximalt ett år, dvs 60*60*24*365=31536000 sekunder

1. Kan du utveckla det där? Jag är inte riktigt med på hur du menar.

2. Det borde inte vara problemet eftersom att kakan ligger där. setcookie() fungerar helt utmärkt.

Filip 2004-07-27 20:50

Citat:

Ursprungligen postat av Jester
Citat:

Ursprungligen postat av Filip
Jag kan komma att tänka på två saker.

1. Sätter du kakan som header information? (du borde iofs få ett felmeddelande annars...)

2. Prova att sätta kortare tid. Jag har för mig att du bara kan sätta en kaka för maximalt ett år, dvs 60*60*24*365=31536000 sekunder

1. Kan du utveckla det där? Jag är inte riktigt med på hur du menar.

2. Det borde inte vara problemet eftersom att kakan ligger där. setcookie() fungerar helt utmärkt.

1. Att det är bland informationen som du skickar först till användaren. Dvs överst i koden innan du har gjort någon 'print "' eller 'echo "'.

Prova då med nummer 3. som jag sa. Gör en phpinfo() på sidan och se alla variabler, som ligger sparade.

Jester 2004-07-27 21:01

Felet var upptäkte jag nu tack vare Filips goda råd med funktionen phpinfo() att när kakan sparas omvandlas vissa tecken (bl.a. blanksteg som jag hade användt) till understreck (_). När jag sedan försökte hämta kakan med det namn som jag angett gick det självklart inte. Det som förvillade mig en aning var att i min Cookie-manager i FireFox visades kakan med det namn som jag angett med blanksteget.

Tack för hjälpen! :)


Alla tider är GMT +2. Klockan är nu 19:59.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson