/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Cookies
Fra : Michael Jensen


Dato : 01-04-01 23:01

Hejsa
Jeg har nu haft en side kørende i et par måneder og brugernes session styres
ved brug af cookies.
Jeg har sat cookies til at vare i 10 minutter og den bliver så fornyet ved
hver side med setcookie("user",$user,time()+600);

Men så pludselig nu her for et par dage siden kunne jeg ikke logge på og
flere andre brugere har også oplevet problemet. Der bliver slet ikke sat en
cookie nu!

Jeg har så været ved at kigge på det og fundet frem til at den tid som jeg
før brugte at + 600 sekunder nu åbenbart ikke er nok. Jeg lavede en lille
testside cookietest.php
cookien $fint kan fint hentes mens $ikkefint aldrig kommer
igennem[cookietest.php]. Hvorfor nu lige det?

Jeg ved ikke om det er for langt ude, men kan det have noget at gøre med det
sommertid, hvor de i usa ikke skiftede samme tid som europa. Det går galt
lige omkring timen (3600);

Er der nogen der har oplevet noget ligende?

[cookietest.php]
<?
setcookie("ikkefint","1123546",time()+ 600);
setcookie("fint","123546654",time() + 3700);
if (isset($ikkefint)) {
print "Der er sat en cookie \"hejsa\" og den har værdien: $hejsa";
}
if (isset($fint)) {
print "der er sat et cookie. fint: $fint";
}
?>
<a href='cookietest.php'>Reload</a>



--
Hilsen Michael



 
 
Thomas L. Kjeldsen (01-04-2001)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 01-04-01 23:33

In article <9a88d6$igi$1@sunsite.dk>, Michael Jensen wrote:
>
>[cookietest.php]
><?
>setcookie("ikkefint","1123546",time()+ 600);
>setcookie("fint","123546654",time() + 3700);
>if (isset($ikkefint)) {
> print "Der er sat en cookie \"hejsa\" og den har værdien: $hejsa";

print "Der er sat en cookie og den har værdien: $ikkefint";

>}
>if (isset($fint)) {
> print "der er sat et cookie. fint: $fint";
>}
>?>
><a href='cookietest.php'>Reload</a>

Er det mindre mystisk med ovennævnte rettelse?


/tlk

Michael Jensen (01-04-2001)
Kommentar
Fra : Michael Jensen


Dato : 01-04-01 23:50


"Thomas L. Kjeldsen" <tlk@tigerdyr.lyngbol.dk> skrev i en meddelelse
news:slrn9cfb5l.144h.tlk@tigerdyr.lyngbol.dk...
<[snip kode]
> Er det mindre mystisk med ovennævnte rettelse?
Nej det er stadig samme fejl.

Du kan se det her

eksempel: http://ogj.dk/testing/cookie.php
koden: http://ogj.dk/testing/cookie.phps

--
Hilsen Michael



Thomas L. Kjeldsen (01-04-2001)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 01-04-01 23:51

In article <9a8b8f$sjd$1@sunsite.dk>, Michael Jensen wrote:
>
>eksempel: http://ogj.dk/testing/cookie.php
>koden: http://ogj.dk/testing/cookie.phps

Det virker fint her:

"Der er sat en cookie "ikkefint" og den har værdien: 1123546
der er sat et cookie. fint: 123546654
Reload"

....


/tlk

Michael Jensen (01-04-2001)
Kommentar
Fra : Michael Jensen


Dato : 01-04-01 23:56


"Thomas L. Kjeldsen" <tlk@tigerdyr.lyngbol.dk> skrev i en meddelelse
news:slrn9cfc67.14ck.tlk@tigerdyr.lyngbol.dk...
> In article <9a8b8f$sjd$1@sunsite.dk>, Michael Jensen wrote:
> >
> >eksempel: http://ogj.dk/testing/cookie.php
> >koden: http://ogj.dk/testing/cookie.phps
>
> Det virker fint her:
>
> "Der er sat en cookie "ikkefint" og den har værdien: 1123546
> der er sat et cookie. fint: 123546654
> Reload"

hmm...
Jeg får kun:

der er sat et cookie. fint: 123546654
Reload

Så må det jo være min pc, der er i udu. Har du nogen ide om hvad det kan
være?

--
Hilsen Michael



Lars Petersen (02-04-2001)
Kommentar
Fra : Lars Petersen


Dato : 02-04-01 00:37

> hmm...
> Jeg får kun:
> der er sat et cookie. fint: 123546654
> Reload
> Så må det jo være min pc, der er i udu. Har du nogen ide om hvad det kan
> være?

Jeg kan ikke lige se hvad fejlen skulle være, jeg får også kun småkagen
fint.
Opera (sat til at vise alle kager), modtager kun fint, og ikke den anden...
Det virker heller ikke i min IE5.5sp1


--
-
Lars
Husk: Hvis du vil maile mig, er der ingen virkelighed i min mail!



Christian P (02-04-2001)
Kommentar
Fra : Christian P


Dato : 02-04-01 08:37

Hej,

Kan det ikke være fordi du måske har nået maks antal cookies fra den samme
server!
Bare et forslag...

Mvh Christian


Michael Jensen <michael@ogj.dk> skrev i en
nyhedsmeddelelse:9a8bl8$1db$1@sunsite.dk...
>
> "Thomas L. Kjeldsen" <tlk@tigerdyr.lyngbol.dk> skrev i en meddelelse
> news:slrn9cfc67.14ck.tlk@tigerdyr.lyngbol.dk...
> > In article <9a8b8f$sjd$1@sunsite.dk>, Michael Jensen wrote:
> > >
> > >eksempel: http://ogj.dk/testing/cookie.php
> > >koden: http://ogj.dk/testing/cookie.phps
> >
> > Det virker fint her:
> >
> > "Der er sat en cookie "ikkefint" og den har værdien: 1123546
> > der er sat et cookie. fint: 123546654
> > Reload"
>
> hmm...
> Jeg får kun:
>
> der er sat et cookie. fint: 123546654
> Reload
>
> Så må det jo være min pc, der er i udu. Har du nogen ide om hvad det kan
> være?
>
> --
> Hilsen Michael
>
>





Michael Jensen (02-04-2001)
Kommentar
Fra : Michael Jensen


Dato : 02-04-01 13:23


"Christian P" <grafix@image.dk> skrev i en meddelelse
news:9a9a7n$50f$1@news.inet.tele.dk...
> Hej,
>
> Kan det ikke være fordi du måske har nået maks antal cookies fra den samme
> server!
> Bare et forslag...

Hvor mange skulle det evt være.

Der er maks blevet smidt 3 på ogj.dk så det skulle forhåbentligt ikke være
derfor.
--
Hilsen Michael




Christian P (02-04-2001)
Kommentar
Fra : Christian P


Dato : 02-04-01 14:15

<<Hvor mange skulle det evt være.

Hej,

Nej, 3 skulle den sagtens kunne klare...
Jeg kan ikke lige huske hvor mange det er!
men jeg mener at et domæne maks må have omkring 20-50 cookies hos en klient
og ialt er det vist 300 cookies hos klienten..

jeg er dog langt fra sikker på at tallene passer...
Det ser ikke ud til at det er det som er dit problem

Mvh Christian




Thomas L. Kjeldsen (02-04-2001)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 02-04-01 10:49

In article <9a8bl8$1db$1@sunsite.dk>, Michael Jensen wrote:
>
>Så må det jo være min pc, der er i udu. Har du nogen ide om hvad det kan
>være?

Det er faktisk underligt. Prøver jeg i lynx modtager jeg også kun een cookie
(der hedder fint).

Men det virker i Mozilla.

Jeg har lagt din kode på http://intra.dipcard.com/people/tlk/ogj/cookie.php.
Her virker det både i lynx og Mozilla.

Hvilken PHP kører på ogj.dk?


/tlk

Thomas Jensen, pil.d~ (02-04-2001)
Kommentar
Fra : Thomas Jensen, pil.d~


Dato : 02-04-01 10:56

On 2 Apr 2001 09:49:19 GMT, tlk@tigerdyr.lyngbol.dk (Thomas L.
Kjeldsen) wrote:

>In article <9a8bl8$1db$1@sunsite.dk>, Michael Jensen wrote:
>>
>>Så må det jo være min pc, der er i udu. Har du nogen ide om hvad det kan
>>være?
>
>Det er faktisk underligt. Prøver jeg i lynx modtager jeg også kun een cookie
>(der hedder fint).
>
>Men det virker i Mozilla.
>
>Jeg har lagt din kode på http://intra.dipcard.com/people/tlk/ogj/cookie.php.
>Her virker det både i lynx og Mozilla.
>
>Hvilken PHP kører på ogj.dk?

http://www.ogj.dk/ anvender Apache/1.3.19 (Unix) mod_perl/1.24
PHP/4.0.4pl1 som web-server

rimeligt sprød.

--
vh
Thomas Jensen
http://pil.dk/

Ghashûl (02-04-2001)
Kommentar
Fra : Ghashûl


Dato : 02-04-01 15:28

On 2 Apr 2001 09:49:19 GMT, tlk@tigerdyr.lyngbol.dk (Thomas L.
Kjeldsen) wrote:

>Jeg har lagt din kode på http://intra.dipcard.com/people/tlk/ogj/cookie.php.
>Her virker det både i lynx og Mozilla.

I IE6 virker ogj's version ikke, men din her virker fint med begge to.

--
Regards Ghashûl
ICQ: 7223six29 † E-mail: stefan at bruhn dot to † URL: http://ghashul.dk

I demand the right to keep and arm bears

Michael Jensen (02-04-2001)
Kommentar
Fra : Michael Jensen


Dato : 02-04-01 19:37


"Thomas L. Kjeldsen" <tlk@tigerdyr.lyngbol.dk> skrev i en meddelelse
news:slrn9cgiou.6t9.tlk@tigerdyr.lyngbol.dk...
> Hvilken PHP kører på ogj.dk?

Jeg prøvede lige at køre begge sider gennem arvin's
http://www.mdb.ku.dk/tarvin/http-tool/
se [headers]
Disse to er lavet lige efter hinanden, så der er altså ikke den time mellem
så det faktisk ser ud til.
Hvordan kan det gå til?
Er det ikke lige betænkligt hvis det er serveren der bestemmer cookiens
levetid, mens det er browserens ur der sletter den? Hvis man nu har sit ur
indstillet forkert bliver de så slette på forkert tidspunkt???

--
Hilsen Michael

[headers]
[ogj.dk]
HTTP/1.1 200 OK
Date: Mon, 02 Apr 2001 17:31:02 GMT
Server: Apache/1.3.19 (Unix) mod_perl/1.24 PHP/4.0.4pl1
X-Powered-By: PHP/4.0.4pl1
Set-Cookie: ikkefint=1123546; expires=Mon, 02-Apr-01 17:41:02 GMT
Set-Cookie: fint=123546654; expires=Mon, 02-Apr-01 18:32:42 GMT
Connection: close
Content-Type: text/html


[dipcard.com]
HTTP/1.1 200 OK
Date: Mon, 02 Apr 2001 18:35:24 GMT
Server: Apache/1.3.12 (Unix) PHP/4.0.4pl1 mod_ssl/2.6.6 OpenSSL/0.9.5a
X-Powered-By: PHP/4.0.4pl1
Set-Cookie: ikkefint=1123546; expires=Mon, 02-Apr-01 18:45:24 GMT
Set-Cookie: fint=123546654; expires=Mon, 02-Apr-01 19:37:04 GMT
Connection: close
Content-Type: text/html; charset=iso-8859-1



Thomas L. Kjeldsen (03-04-2001)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 03-04-01 00:48

In article <9aagq0$4nd$1@sunsite.dk>, Michael Jensen wrote:
>
>Er det ikke lige betænkligt hvis det er serveren der bestemmer cookiens
>levetid, mens det er browserens ur der sletter den? Hvis man nu har sit ur
>indstillet forkert bliver de så slette på forkert tidspunkt???

Da jeg læste dit indlæg kom jeg i tanke om at jeg faktisk er stødt på
problemet før. Dengang fandt jeg ikke umiddelbart nogen løsning. Det har
jeg til gengæld fundet nu[1], men jeg synes ikke det er en god løsning.
Hvad nu hvis cookie-based sessions lider under samme problem - at PHP
internt sætter expire = time() + $n? Er der nogen der kan be- eller
afkræfte det? (det kan måske forklare nogle mystiske oplevelser jeg har
haft med cookie-based sessions).

Det kunne være man skulle vold-teste cookie-based sessions en dag...


[1] http://www.phpbuilder.com/mail/php3-list/199903/2808.php


/tlk

Christian Schmidt (03-04-2001)
Kommentar
Fra : Christian Schmidt


Dato : 03-04-01 01:06

"Thomas L. Kjeldsen" wrote:
>
> Da jeg læste dit indlæg kom jeg i tanke om at jeg faktisk er stødt på
> problemet før. Dengang fandt jeg ikke umiddelbart nogen løsning. Det har
> jeg til gengæld fundet nu[1], men jeg synes ikke det er en god løsning.
> Hvad nu hvis cookie-based sessions lider under samme problem - at PHP
> internt sætter expire = time() + $n? Er der nogen der kan be- eller
> afkræfte det?

Det gør den ikke, medmindre du piller ved session.cookie_lifetime i
php.ini. Men det er jo som regel ikke så smart.

http://dk.php.net/manual/en/html/ref.session.html


Christian

Thomas L. Kjeldsen (03-04-2001)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 03-04-01 10:36

In article <3AC913E3.A2B6454C@schmidt.net>, Christian Schmidt wrote:
>
>Det gør den ikke, medmindre du piller ved session.cookie_lifetime i
>php.ini. Men det er jo som regel ikke så smart.

Ok. Hvorfor mener du ikke det er smart at tilpasse cookie_lifetime?


/tlk

Christian Schmidt (04-04-2001)
Kommentar
Fra : Christian Schmidt


Dato : 04-04-01 22:00

"Thomas L. Kjeldsen" wrote:
>
> In article <3AC913E3.A2B6454C@schmidt.net>, Christian Schmidt wrote:
> >
> >Det gør den ikke, medmindre du piller ved session.cookie_lifetime i
> >php.ini. Men det er jo som regel ikke så smart.
>
> Ok. Hvorfor mener du ikke det er smart at tilpasse cookie_lifetime?

Af samme årsag som beskrevet tidligere i tråden, nemlig fordi man så gør
sig afhængig af, at brugerens ur går korrekt.

Så jeg kan ikke lige se en grund til at ikke at bruge session-cookies.


Christian

Thomas L. Kjeldsen (05-04-2001)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 05-04-01 09:44

In article <3ACB8B6B.99F0D676@schmidt.net>, Christian Schmidt wrote:
>> Ok. Hvorfor mener du ikke det er smart at tilpasse cookie_lifetime?
>
>Af samme årsag som beskrevet tidligere i tråden, nemlig fordi man så gør
>sig afhængig af, at brugerens ur går korrekt.

Okay, vi er nok enige :)


/tlk

Peter Brodersen (03-04-2001)
Kommentar
Fra : Peter Brodersen


Dato : 03-04-01 06:02

On Mon, 2 Apr 2001 20:36:35 +0200, "Michael Jensen" <michael@ogj.dk>
wrote:

>Er det ikke lige betænkligt hvis det er serveren der bestemmer cookiens
>levetid, mens det er browserens ur der sletter den? Hvis man nu har sit ur
>indstillet forkert bliver de så slette på forkert tidspunkt???

Det er et klassisk problem. Derfor skal man kun benytte tid i cookies,
hvis:

1. Man vil have en cookie slettet, og tiden er sat langt tilbage i
fortiden
2. Man vil have en cookie beholdt, og tiden er sat langt ude i
fremtiden
3. Man vil lave en session-cookie, og derfor ikke sætter nogen tid.

Hvis du vil tids-registrere noget, så lad serveren om at gemme/logge
tidspunktet, hvor cookien er blevet sat eller udløber.

Alternativt - hvis det ikke skal være sikkert (fortstået på den måde,
at det vil virke for almindelige brugere, men der er mulighed for at
forlænge levetiden ved at rette sin egen cookie) - smid en cookie
med, hvor der er et timestamp i, i forhold til serverens tid. Fx:

SetCookie("expire",time()+3600)

.... og så checker serveren op mod $expire.


--
- Pede
Professionel nørd

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408875
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste