Ik vind het maar weird..
got_cookie_test.php:
got_cookie_test_form.php:
Heb het even online gezet, dan kun je zien wat ik bedoel: submit gewoon eens een tekst (bijvoorbeeld 'test'). Dan is $_POST['var'] gewoon 'test', maar $_COOKIE['var'] (nog) niet. Als je vervolgens dat lege field weer submit, wordt $_COOKIE['var'] wel geset, terwijl $_POST['var'] dan toch empty is? Wat de bedoeling is: een leeg field submitten moet ook lege POST en COOKIE vars opleveren, ook als deze daarvoor niet leeg waren (logisch toch?). Wat doe ik verkeerd?
got_cookie_test.php:
PHP:
1
2
3
4
5
6
| if(!empty($_POST['var'])) { setcookie('var', $_POST['var'], time() + 3600); } else { setcookie('var', '', time() - 3600); } include 'got_cookie_test_form.php'; |
got_cookie_test_form.php:
PHP:
1
2
3
4
5
| <form action="got_cookie_test.php" method="post" name="form"> <input name="var" type="text" id="var" value="<? echo $_COOKIE['var']; ?>" /> <input name="submit" type="submit" value="submit" /> </form> <? echo "<pre>"; print_r($_POST); print_r($_COOKIE); echo "</pre>"; ?> |
Heb het even online gezet, dan kun je zien wat ik bedoel: submit gewoon eens een tekst (bijvoorbeeld 'test'). Dan is $_POST['var'] gewoon 'test', maar $_COOKIE['var'] (nog) niet. Als je vervolgens dat lege field weer submit, wordt $_COOKIE['var'] wel geset, terwijl $_POST['var'] dan toch empty is? Wat de bedoeling is: een leeg field submitten moet ook lege POST en COOKIE vars opleveren, ook als deze daarvoor niet leeg waren (logisch toch?). Wat doe ik verkeerd?
offtopic:
Voor iedereen die wel eens formuliertje maakt: nu kun je goed het verschil zien tussen op enter drukken en op de knop submit klikken om je form te submitten. In het eerste geval wordt de $_POST['submit'] niet meegestuurd, in het twee geval wel.
Voor iedereen die wel eens formuliertje maakt: nu kun je goed het verschil zien tussen op enter drukken en op de knop submit klikken om je form te submitten. In het eerste geval wordt de $_POST['submit'] niet meegestuurd, in het twee geval wel.