csshunter
Meubilair
- Lid geworden
- 4 aug 2009
- Berichten
- 6.465
Hoi-hoi!
Ik ben wat aan het rommelen met cookies in javascript en php.
Fase 1
Ik plaats een cookie met javascript, en bij een page-refresh/reload (of op een andere pagina) kan php 'm uitlezen.
Test 1: www.bliksekaters.nl/tests/koekjes.php
So far, so good: alles naar verwachting.
Fase 2
Nu ga ik het koekje met javascript plaatsen bij een onunload. Voor de rest is alles hetzelfde.
Wat gebeurt er nu?
Bij een refresh/reload (of bekijken op een nieuwe pagina) zegt javascript dat het koekje er is, maar php zegt dat er géén koekje is!
:shocked:
Je voelt de vragen al aankomen:
CSShunter
___________
NB: Bij de experimenten van Fase 2 altijd wel zowel de cache als de buffer legen, voordat je schoon opnieuw kunt beginnen!
Ik ben wat aan het rommelen met cookies in javascript en php.
Fase 1
Ik plaats een cookie met javascript, en bij een page-refresh/reload (of op een andere pagina) kan php 'm uitlezen.
PHP:
<p>PHP zegt bij openen:
<?php
if ( !isset($_COOKIE["koekje"]))
{
echo "geen koekje te zien";}
else {
echo "koekje aanwezig";}
?>
</p>
So far, so good: alles naar verwachting.
Fase 2
Nu ga ik het koekje met javascript plaatsen bij een onunload. Voor de rest is alles hetzelfde.
Wat gebeurt er nu?
Bij een refresh/reload (of bekijken op een nieuwe pagina) zegt javascript dat het koekje er is, maar php zegt dat er géén koekje is!
- Pas bij een herhaalde refresh ziet php het koekje ook.
- Of als je van de nieuwe pagina (geen cookie door php gezien) weer teruggaat naar pagina A, dan ziet php het koekje weer wel op pagina A.
- Daarna blijft het goed gaan.
- Dit alles is browser-onafhankelijk, dus daar kan het niet aan liggen.
:shocked:
Je voelt de vragen al aankomen:
- Zie ik hier iets over het hoofd, of is er een andere verklaring voor?
- Hoe kan ik ervoor zorgen dat een via een onunload geplaatst koekje de volgende ronde wel direct door php gezien kan worden?
CSShunter
___________
NB: Bij de experimenten van Fase 2 altijd wel zowel de cache als de buffer legen, voordat je schoon opnieuw kunt beginnen!
