learn

PHP Cookies

category: Advanced
Created by: Dr.Ferrous

PHP Cookies

category: Advanced
Created by: Dr.Ferrous
twitter google+ facebook pinned 

Cookies are a way for a server to store information on the user's computer.
A cookie is a small file that the server embeds on the hard drive of the user's computer (it is limited to about 4 KB of total data). Each time the same computer accesses a page with the same browser, it will send the cookie too.

Setting cookies

To set (create) a cookie with PHP, use setcookie() function.
Syntax:

  • name - The name of the cookie
  • value - The value of the cookie
  • expire - A Unix timestamp (in number of seconds since 1970) when the cookie expire. You can set this with the "time()" function plus the number of seconds before you want it to expire. If set to 0, or omitted, the cookie will expire when the browser closes.
  • path - The path on the server in which the cookie will be available on. The default value is the current directory that the cookie is being set in. If set to "/", the cookie will be available within the entire web site.
  • domain - The domain that the cookie is available to. For example, to make the cookie available on all subdomains of phpwin.org (including http://phpwin.org itself) then you'd set it to '.phpwin.org'.
  • secure - If set to TRUE, the cookie should only be transmitted over a secure HTTPS connection.

 

Only the "name" is required, the rest of parameter are optional.
cookies must be sent before any output from your PHP script. The setcookie() function must be placed prior to any output, including tags as well as any whitespace.

On success returns TRUE, but if output exists prior to calling this function, setcookie() will fail, return FALSE and warning error (headers already sent ...).

Example (sets 3 cookies: "cookie_name1", "cookie_name2" and "cookie_name3"; with a value of "I AM", and different expiration times):

Retrieve a Cookie Value

To retrieve (access) a value from a cookie, you only need to refer to the $_COOKIE superglobal variable, using the cookie name as the key.
The value of the cookie is automatically URLencoded when sending the cookie, and automatically decoded when received.
To find out if a cookie has been set, use the isset() function.
Example:

print_r($var) displays information about $var variable, but when TRUE is added, print_r($var, true) returns the information rather than print it, and can be transfered to a variable.
You cannot set and access a cookie in the same page until the setting page has been reloaded or another page has been accessed.

Deleting cookies

To delete a cookie, just set its expiration date in the past.

Example :

When deleting a cookie, if you set the "path" and "domain" in the creation cookie, use them again in the deletion cookie.

Cookies are not an indicated way to store information, the user can any time delete them or set its browser to not accept cookies.