PHP setcookie() Function

Example

The following example creates a cookie named "user"
with the value "John Doe". The cookie will expire after 30 days (86400 * 30).
The "/" means that the cookie is available in entire website (otherwise, select the directory you prefer).

We then retrieve the value of the cookie "user" (using the global variable
$_COOKIE). We also use the isset() function to find out if the cookie is set:

Definition and Usage

The setcookie() function defines a cookie to be sent along with the rest of
the HTTP headers.

A cookie is often used to identify a user. A cookie is a small file that the
server embeds on the user's computer. Each time the same computer requests a
page with a browser, it will send the cookie too. With PHP, you can both create
and retrieve cookie values.

The name of the cookie is automatically assigned to a variable of the same
name. For example, if a cookie was sent with the name "user", a variable is
automatically created called $user, containing the cookie value.

Note: The setcookie() function must appear BEFORE the <html> tag.

Note: The value of the cookie is automatically URLencoded when
sending the cookie, and automatically decoded when received (to prevent
URLencoding, use setrawcookie() instead).

Syntax

setcookie(name,value,expire,path,domain,secure,httponly);

Parameter

Description

name

Required. Specifies the name of the cookie

value

Optional. Specifies the value of the cookie

expire

Optional. Specifies when the cookie expires. The value: time()+86400*30, will set the cookie to expire in 30 days. If this parameter
is omitted or set to 0, the cookie will expire at the end of the session (when the browser closes).
Default is 0

path

Optional. Specifies the server path of the cookie.
If set to "/", the cookie will be available within the entire domain. If set to "/php/", the
cookie will only be available within the php directory and all
sub-directories of php. The default value is the current directory that the
cookie is being set in

domain

Optional. Specifies the domain name of the cookie. To make the cookie available on all subdomains of example.com,
set domain to "example.com". Setting it to www.example.com will make the cookie only available in the www subdomain

secure

Optional. Specifies whether or not the cookie should only be transmitted
over a secure HTTPS connection. TRUE indicates that the cookie will only be
set if a secure connection exists. Default is FALSE

httponly

Optional. If set to TRUE the cookie will be accessible only through the
HTTP protocol (the cookie will not be accessible by scripting languages).
This setting can help to reduce identity theft through XSS attacks. Default
is FALSE

Technical Details

Return Value:

TRUE on success. FALSE on failure

PHP Version:

4+

PHP Changelog:

PHP 5.5 - A Max-Age attribute was included in the Set-Cookie header sent
to the clientPHP 5.2 - The httponly parameter was added

More Examples

Example

Several expire dates for cookies:

<?php$value = "Hello world!";

// cookie will expire when the
browser closesetcookie("myCookie", $value);

Web Certificates

W3Schools is optimized for learning, testing, and training. Examples might be simplified to improve reading and basic understanding.
Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content.
While using this site, you agree to have read and accepted our terms of use,
cookie and privacy policy.
Copyright 1999-2015 by Refsnes Data. All Rights Reserved.