De situatie:
Ik heb een standaardlayout, die afhankelijk van de link (index.php?pagina=ditendat) de "inhoud" include. Op één zoon pagina (index.php?pagina=ikroepmaarwat) heb ik een formulier dat maar ééns in de 24 uur aangeklikt mag worden; het gaat om het uitbrengen van een donatie.
Dus dacht ik, ik neem een cookie die opslaat dat de gebruiker al heeft gestemd (niet helemaal waterdicht, maar voor mji acceptabel). Ik geef het formulier een hidden value mee, omdat het in feite selfsubmitting is. Dus:
<input type="hidden" name="submit"value="1">
Helemaal bovenaan mijn index.php heb ik de volgende code staan:
<?php
if (IsSet($submit) AND $submit="1"){
if(isset($_COOKIE['bezocht'])){ }
else {
setcookie ('bezocht' , 'inderdaad', time() + 120 , '/' , 'mijndomein.nl');
}
}
?>
De timer staat nu ff op twee minuten om te testen en de dubbele test met submit is omdat ik aan mezelf begon te twijfelen.
Deze code werkt dus prima als je de site met Mozilla bezoekt, maar totaal niet met IE. En uiteraard heb ik meerdere computers geprobeert, verschillende cookie settings, enzovoorts. Maar het lijkt erop dat er met IE niet eens een cookie wordt geset; want als ik de beveiliging op maximaal zet, geeft ie nog geen waarschuwing.
Wat gaat er mis?
Ik heb een standaardlayout, die afhankelijk van de link (index.php?pagina=ditendat) de "inhoud" include. Op één zoon pagina (index.php?pagina=ikroepmaarwat) heb ik een formulier dat maar ééns in de 24 uur aangeklikt mag worden; het gaat om het uitbrengen van een donatie.
Dus dacht ik, ik neem een cookie die opslaat dat de gebruiker al heeft gestemd (niet helemaal waterdicht, maar voor mji acceptabel). Ik geef het formulier een hidden value mee, omdat het in feite selfsubmitting is. Dus:
<input type="hidden" name="submit"value="1">
Helemaal bovenaan mijn index.php heb ik de volgende code staan:
<?php
if (IsSet($submit) AND $submit="1"){
if(isset($_COOKIE['bezocht'])){ }
else {
setcookie ('bezocht' , 'inderdaad', time() + 120 , '/' , 'mijndomein.nl');
}
}
?>
De timer staat nu ff op twee minuten om te testen en de dubbele test met submit is omdat ik aan mezelf begon te twijfelen.
Deze code werkt dus prima als je de site met Mozilla bezoekt, maar totaal niet met IE. En uiteraard heb ik meerdere computers geprobeert, verschillende cookie settings, enzovoorts. Maar het lijkt erop dat er met IE niet eens een cookie wordt geset; want als ik de beveiliging op maximaal zet, geeft ie nog geen waarschuwing.
Wat gaat er mis?