8.2. Reading Cookie Values
Problem
You want to read the value of a cookie that’s been previously set.
Solution
Look in the $_COOKIE
superglobal array:
if (isset($_COOKIE['flavor'])) { print "You ate a $_COOKIE[flavor] cookie."; }
Discussion
A cookie’s value isn’t available in
$_COOKIE
during the request in which the cookie is
set. In other words, the setcookie( )
function
doesn’t alter the value of
$_COOKIE
. On subsequent requests, however, each
cookie is stored in $_COOKIE
. If
register_globals
is on
, cookie
values are also assigned to global variables.
When a browser sends a cookie back to the server, it sends only the
value. You can’t access the
cookie’s domain, path, expiration time, or secure
status through $_COOKIE
because the browser
doesn’t send that to the server.
To print the names and values of all cookies sent in a particular
request, loop through the $_COOKIE
array:
foreach ($_COOKIE as $cookie_name => $cookie_value) { print "$cookie_name = $cookie_value<br>"; }
See Also
Recipe 8.2 shows how to set cookies; Recipe 8.4 shows how to delete cookies; Recipe 8.13 explains output buffering; Recipe 8.19 shows how to avoid the
“headers already sent” error
message that sometimes occurs when calling setcookie( )
; Recipe 9.8 for information on
register_globals
.
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.