PHP – setcookie() not working
cookies, php
Solution
PHP superglobals are populated at script start-up time, and then are NOT modified or touched by PHP again for the life of the script. That means `$_COOKIE` represents the cookies that were sent to the server in the http request that fired up the script. It will NOT show any cookies you've added/changed/deleted during the life of the script. Those changes will only show up on the NEXT request.
The only exception to this is `$_SESSION`, which is populated when you call `session_start()`.
If you need those values to be in $_COOKIE immediately, you'll have to add them manually, e.g.
setcookie('cookie', $value, ....);
$_COOKIE['cookie'] = $value;
Problem
I have this page that sets a cookie and echos out a string if you check a checkbox. The string prints correctly, but the cookie never gets set and I have no idea why. ``` <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> <label for="checkbox">Option 1:</label> <input type="checkbox" name="checkbox" id="checkbox"><br> <input type="submit" name="submit" value="Submit"> </form> <?php if (isset($_POST['checkbox'])) { setcookie("cookie", "on", time()+3600*24); echo "You checked the checkbox and a cookie was set with a value of:<br>"; } else { setcookie("cookie", "off", time()+3600*24); echo "You didn't check the checkbox and a cookie was set with a value of:<br>"; } echo $_COOKIE['cookie']; ?> ``` Does anyone know why the above code does not work?