start page | rating of books | rating of authors | reviews | copyrights

Book HomePHP CookbookSearch this book

8.3. Reading Cookie Values

8.3.1. Problem

You want to read the value of a cookie that's been previously set.

8.3.2. Solution

Look in the $_COOKIE superglobal array:

if (isset($_COOKIE['flavor'])) {
    print "You ate a $_COOKIE[flavor] cookie.";
}

8.3.3. 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>";
}

8.3.4. 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.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.