[php] Cookie mag nooit verlopen

Pagina: 1
Acties:
  • 131 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hello,

Vraagje over cookies.
Wil in een cookie een sessionid opslaan zodat je ook nog kunt browsen in een members sectie nadat je de browser opnieuw hebt opgestart.

De sessionid wordt dan namelijk uit het cookje gelezen en dan kun je de variablen die waren opgeslagen nog steeds gebruiken.

Maar hoe zorg ik ervoor dat het cookje NOOIT verloopt.
Kan er natuurlijk wel een paar jaar van maken, maar heb liever dat ie nooit verloopt. Is dit mogelijk?
(Ga hem natuurlijk wel met een knopje laten verwijderen, soort van logout. :) )

Heb al gezocht op Google, php.net, GoT-search zonder resultaat. :?

Acties:
  • 0 Henk 'm!

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Volgens mij kan dit niet en het is ook niet eens nodig.
Maak er gewoon een jaar van en leg in de cookie vast wanneer deze is gemaakt. Bij het opvragen van de cookie kan je dan checken of het jaar al (bijna) is verlopen en zo ja dan zet je toch een nieuwe?

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
inderdaad dat kan ook. Maar kan ik dan dat eerste cookie 'overschrijven'. :?

[ Voor 10% gewijzigd door Verwijderd op 23-12-2002 20:33 ]


Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op 23 december 2002 @ 20:32:
inderdaad dat kan ook. Maar kan ik dan dat eerste cookie 'overschrijven'. :?
Ja dat kan

Acties:
  • 0 Henk 'm!

Verwijderd

volgens mij als je dit doet:
PHP:
1
2
3
<?
setcookie("cookie",  "$waarde", Time+()0);
?>
Dat dan de cookie een eindelose tijd heeft....

Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op 23 December 2002 @ 20:50:
volgens mij als je dit doet:
PHP:
1
2
3
<?
setcookie("cookie",  "$waarde", Time+()0);
?>
Dat dan de cookie een eindelose tijd heeft....
hmm ik kan het verkeerd hebben
als ik het zo lees dan wordt de cooky gemaakt voor nul seconden oftewel voor dezelfde sessie. je zou wel de cookie kunnen zetten voor de eerste 100 jaar dat zal voor niemand een probleem zijn :P

Acties:
  • 0 Henk 'm!

Verwijderd

1 jaar = 31536000
100 jaar = 3153600000

dus gewoon time+()3153600000

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Shadowman schreef op 23 December 2002 @ 20:55:
[...]

hmm ik kan het verkeerd hebben
als ik het zo lees dan wordt de cooky gemaakt voor nul seconden oftewel voor dezelfde sessie. je zou wel de cookie kunnen zetten voor de eerste 100 jaar dat zal voor niemand een probleem zijn :P
geprobeerd, krijg ik de volgende error

code:
1
2
3
4
Parse error: parse error in c:\phpdev\www\cookie.php on line 24

Warning: Cannot send session cache limiter - headers already sent (output started at c:\phpdev\www\cookie.php:24) in c:\phpdev\www\index.php on line 10
session IS gezet


heb de volgende code gebruikt
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

include "cookie.php";

if (isset($_SESSION['name'])){
    echo $_SESSION['name'];
    echo "session WAS gezet";
}
else{
    session_register('name');
    $_SESSION['name']="dominic";
    echo "session IS gezet";
    //header("location: index.php");
}
echo "<br>";
echo $_COOKIE['id'];

?>


en voor cookie.php:

PHP:
1
2
3
4
5
6
7
8
9
10
<?php

if ($_COOKIE["id"]){
    session_id($_COOKIE["id"]);
    session_start();
}else{
    session_start();
    setcookie("id", session_id(), time+()0);
}
?>


PS: hoe kan ik dit resizen om de layout een beetje normaal te houden hier? of wil iemand anders dit even voor mij doen....

[ Voor 24% gewijzigd door Verwijderd op 23-12-2002 21:05 . Reden: vergeten ]


Acties:
  • 0 Henk 'm!

  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
Cookie kun je maar max. voor 1 jaar zetten geloof ik.

Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op 23 December 2002 @ 21:01:
[...]


[...]
code:
1
2
3
4
Parse error: parse error in c:\phpdev\www\cookie.php on line 24

Warning: Cannot send session cache limiter - headers already sent (output started at c:\phpdev\www\cookie.php:24) in c:\phpdev\www\index.php on line 10
session IS gezet

en voor cookie.php:

PHP:
1
2
3
4
5
6
7
8
9
10
<?php

if ($_COOKIE["id"]){
    session_id($_COOKIE["id"]);
    session_start();
}else{
    session_start();
    setcookie("id", session_id(), time+()0);
}
?>


PS: hoe kan ik dit resizen om de layout een beetje normaal te houden hier? of wil iemand anders dit even voor mij doen....
bij cookie.php is het wel verstandig om de time+()0 te veranderen in time()+0 en zorg ervoor dat er niets eerder naar de browser wordt verzonden voordat de headers en de cookies zijn geplaatst want dat is volgens mij de reden van de tweede Warning
edit:
Blacksnak schreef op 23 December 2002 @ 21:12:
Cookie kun je maar max. voor 1 jaar zetten geloof ik.
Wist ik niet. maar dan werkt een oneindige cookie (time()+0) ook niet

[ Voor 17% gewijzigd door Shadowman op 23-12-2002 21:16 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
shadow, je hebt gelijkt. STOM STOM. 8)7 8)7

die + moest inderdaad na de haakjes...
Pagina: 1