[php] Cookies (met superglobals)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi :)

Ik ben nooit echt bezig geweest met cookies, maar denk dat het bij 'n inlog schermpie van een site die *hopelijk* vaak bezocht gaat worden toch handig is als ie inelkgeval de gebruikersnaam onthoud.

Nu is mijn vraag, hoe doe ik dit met superglobals? ($_COOKIE['']) etc.

Ik zou het dus fijn vinden als iemand mij kan uitleggen:

Hoe ik het opsla voor een jaar
Hoe ik de informatie snel eruit vis
Hoe ik de cookie's kan verwijderen

Ik vind op het web alleen maar voorbeelden zonder superglobals :(

May the Fork be with you

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Het uitlezen doe je met $_COOKIE[]. Het setten kun je gewoon het beste doen met setcookie. Dit is (kort door de bocht) omdat cookies niet wat anders werken dan get post en session. Het is eigenlijk een beetje om dezelfde redenen dat je nog steeds session_start moet gebruiken icm SESSION[].

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dus bijvoorbeeld:
PHP:
1
2
3
4
<?
setcookie('blaat', $blaat, time()+31536000);
echo "Het koekje is gevuld met: " . $_COOKIE['blaat'];
?>


en wissen met bv.
PHP:
1
2
3
<?
setcookie('blah', null, time()+31536000);
?>


zoiets goed?

Acties:
  • 0 Henk 'm!

Verwijderd

Volgens mij wis je het koekje ook al door z'n tijd op -1 te zetten.

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
het is zelfs de enige manier. Cookies wis je door een tijd in het verleden op te geven...dus time() - [willekeurig negatief getal]

Acties:
  • 0 Henk 'm!

  • Tycoontje
  • Registratie: Februari 2003
  • Laatst online: 15-07 12:59
Verwijderd schreef op 06 november 2003 @ 17:07:
dus bijvoorbeeld:
PHP:
1
2
3
4
<?
setcookie('blaat', $blaat, time()+31536000);
echo "Het koekje is gevuld met: " . $_COOKIE['blaat'];
?>


en wissen met bv.
PHP:
1
2
3
<?
setcookie('blah', null, time()+31536000);
?>


zoiets goed?
Bijna. Let er op dat je de inhoud van een cookie niet meteen kunt uitlezen. Zie ook http://www.php.net/manual/en/function.setcookie.php -> Common Pitfalls:
Cookies will not become visible until the next loading of a page that the cookie should be visible for.

Deleten doe ik voor de zekerheid met een dikke tijd in het verleden en wel minstens 24 uur. Mijn idee daarachter was dat je met php de server tijd krijgt en een user in een andere tijdzone dus wel eens een tijd kan hebben die nog moet komen t.o.v. de server. Of dit verhaal klopt weet ik niet, maar het kan geen kwaad. En bovendien had ik gelezen dat bij sommigen de delete niet altijd werkte met time-3600().

Lees de docs op php.net. Die zijn hardstikke duidelijk en de comments zijn ook heel handig.
Pagina: 1