Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PHP Network setcookie() Function



The PHP Network setcookie() function is used to send cookies to a user's browser. A cookie is a small piece of data that is saved on the user's computer and is generally used to store information between web pages or sessions. Before sending any output from your PHP script (like HTML or text), you have to call setcookie(). This makes sure the cookie is transmitted along with the HTTP headers.

To set a cookie, you have to give a name and a value. For example, if the cookie's name is "user", you can get its data in PHP by calling $_COOKIE['user']. Cookies can be deleted when the browser is closed or after a certain amount of time. To specify the expiry time, add seconds to the current time.

Cookies can also be limited to a specific path or domain. For example, you can limit the availability of a cookie to a specific section of your site. If the secure option is set to true, the cookie will only be delivered over HTTPS. This makes everything safer.

You can use the httponly option to prevent JavaScript from reading the cookie, which solves several security issues. Starting with PHP 7.3, cookies can be defined using a variety of options, including an additional samesite option for greater security.

Syntax

Below is the syntax of the PHP Network setcookie() function −

bool setcookie(
   string $name,
   string $value = "",
   int $expires_or_options = 0,
   string $path = "",
   string $domain = "",
   bool $secure = false,
   bool $httponly = false
)

Alternative signature:

bool setcookie ( string $name, string $value = "", array $options = [] )

Parameters

Here are the parameters of the setcookie() function −

  • $name − (Required) It is the name of the cookie.

  • $value − (Optional) It is the value to store in the cookie.

  • $expires_or_options − (Optional) It is the time the cookie expires (in Unix timestamp format).

  • $path − (Optional) It is the path on the server where the cookie is available.

  • $domain − (Optional) It is the domain where the cookie is available.

  • $secure − (Optional) If it is set to true, the cookie only sent over HTTPS.

  • $httponly − (Optional) If true, the cookie is accessible only via HTTP (not JavaScript).

  • $options − (Optional) It is an associative array to set cookie attributes, including: expires, path, domain, secure, httponly, and samesite.

Return Value

The setcookie() function returns TRUE, if the cookie is successfully set. And FALSE, if the cookie cannot be set (For example, output already sent).

PHP Version

First introduced in core PHP 4, the setcookie() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

Here is the basic example of the PHP Network setcookie() function to set cookie. So this program sets a simple cookie with a name and value. The cookie expires when the browser session will get end.

<?php
   // Set a cookie named "user"
   setcookie("user", "AmitSharma");

   // Check if the cookie is set
   if (isset($_COOKIE['user'])) {
      echo "Cookie 'user' is set with value: " . $_COOKIE['user'];
   } else {
      echo "Cookie 'user' is not set.";
   }
?>

Output

When the cookie is being set for the first time −

Cookie 'user' is not set.

After the cookie is sent back to the server −

Cookie 'user' is set with value: AmitSharma

Example 2

In the below PHP code we will use the setcookie() function and set a cookie named 'theme' with value 'dark' that expires in one hour.

<?php
   // Set a cookie 
   setcookie("theme", "dark", time() + 3600);

   // Display the cookie value
   if (isset($_COOKIE['theme'])) {
      echo "Cookie 'theme' is set with value: " . $_COOKIE['theme'];
   } else {
      echo "Cookie 'theme' is not set.";
   }
?> 

Output

This will be generated when the cookie is being set −

Cookie 'theme' is not set.

This will be generated after the cookie is sent back to the server −

Cookie 'theme' is set with value: dark

Example 3

Now the below code sets a secure cookie named "session" available on the entire site with the help of the setcookie() function. And it is limited to the root directory and makes sure it is sent only over HTTPS.

<?php
   // Set a secure cookie 
   setcookie("session", "active", time() + 3600, "/", "tutorialpoint.com", true);

   // Display the cookie value
   if (isset($_COOKIE['session'])) {
      echo "Secure cookie 'session' is set with value: " . $_COOKIE['session'];
   } else {
      echo "Secure cookie 'session' is not set.";
   }
?> 

Output

This will create the below output when the cookie is being set −

Secure cookie 'session' is not set.

This will create this output after the cookie is sent back to the server −

Secure cookie 'session' is set with value: active
php_function_reference.htm
Advertisements