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! :)

zoran 2004-07-27 22:13

Citat:

Originally posted by Jester@Jul 27 2004, 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! :)

En annan grej som underlättar felsökningen är att man, när man frågar om hjälp, skriver RIKTIG kod och inte modifierar koden. Hade du skrivit exakt så som du skrev i din PHP-fil så hade du redan haft svaret för länge sen. Eller har du verkligen företagshemligheter inne i dina kakors namn ? :)

/Zoran

ZN 2004-07-28 11:35

Citat:

Originally posted by zoran@Jul 27 2004, 22:13
En annan grej som underlättar felsökningen är att man, när man frågar om hjälp, skriver RIKTIG kod och inte modifierar koden.
Instämmer.

Jester 2004-07-28 17:21

Citat:

Originally posted by zoran@Jul 27 2004, 22:13
En annan grej som underlättar felsökningen är att man, när man frågar om hjälp, skriver RIKTIG kod och inte modifierar koden. Hade du skrivit exakt så som du skrev i din PHP-fil så hade du redan haft svaret för länge sen. Eller har du verkligen företagshemligheter inne i dina kakors namn ? :)

/Zoran

Som jag skrev så var det inget problem när jag granskade kakan i webbläsaren så jag insåg inte att detta kunde ha vållat problemet. Skulle jag gjort det skulle jag aldrig ha behövt posta den här frågan överhuvudtaget.

Ber om ursäkt om jag snodde 5 minuter av någons surftid och tog upp onödigt forumutrymme...detta var inte alls min mening :rolleyes:

Jag har en god anledning till att inte avslöja vilken webbplats jag hade detta problem på, tro mig. Annars hade jag naturligtvis bara klippt och klistrat koden.

//Martin

zoran 2004-07-29 21:38

Citat:

Ursprungligen postat av Jester
Citat:

Ursprungligen postat av zoran
En annan grej som underlättar felsökningen är att man, när man frågar om hjälp, skriver RIKTIG kod och inte modifierar koden. Hade du skrivit exakt så som du skrev i din PHP-fil så hade du redan haft svaret för länge sen. Eller har du verkligen företagshemligheter inne i dina kakors namn ? :)

/Zoran

Som jag skrev så var det inget problem när jag granskade kakan i webbläsaren så jag insåg inte att detta kunde ha vållat problemet. Skulle jag gjort det skulle jag aldrig ha behövt posta den här frågan överhuvudtaget.

Ber om ursäkt om jag snodde 5 minuter av någons surftid och tog upp onödigt forumutrymme...detta var inte alls min mening :rolleyes:

Jag har en god anledning till att inte avslöja vilken webbplats jag hade detta problem på, tro mig. Annars hade jag naturligtvis bara klippt och klistrat koden.

//Martin

Nja, ta inte illa upp att jag kritiserade din "felanmälningsteknik". Det är bara att, iallafall jag, när jag läser om ditt problem, så börjar mina hjärnceller jobba. Jag tänker och funderar vad som kan vara galet. Det känns som man får en kaka att mumsa i sig. Får man en ide är det som att någon lade på grädde på kakan.

Men plötsligt visar det sig att de förutsättningar man hade inte riktigt stämmer. Då är det som att någon snuvat dig på den där kakan. Då blir man nästan lite besviken. "Men, kunde du inte ha sagt det tidigare". :)

Hänger du med?

/Zoran


Alla tider är GMT +2. Klockan är nu 02:17.

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