Book HomePHP CookbookSearch this book

8.4. Deleting Cookies

8.4.1. Problem

You want to delete a cookie so a browser doesn't send it back to the server.

8.4.2. Solution

Call setcookie( ) with no value for the cookie and an expiration time in the past:

setcookie('flavor','',time()-86400);

8.4.3. Discussion

It's a good idea to make the expiration time a few hours or an entire day in the past, in case your server and the user's computer have unsynchronized clocks. For example, if your server thinks it's 3:06 P.M. and a user's computer thinks it's 3:02 P.M., a cookie with an expiration time of 3:05 P.M. isn't deleted by that user's computer even though the time is in the past for the server.

The call to setcookie( ) that deletes a cookie has to have the same arguments (except for value and time) that the call to setcookie( ) that set the cookie did, so include the path, domain, and secure flag if necessary.

8.4.4. See Also

Recipe 8.2 shows how to set cookies; Recipe 8.3 shows how to read cookie values; 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( ); documentation on setcookie( ) at http://www.php.net/setcookie.



Library Navigation Links

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