This site is mobile accessible. Press the "Tap Here" button to use a different font-size.


Smartphone icons created by Freepik - Flaticon

6.7 PHP Cookies

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

    Create Cookies With PHP

    A cookie is created with the setcookie() function.

    Syntax

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

    Only the name parameter is required. All other parameters are optional.

    PHP Create/Retrieve a Cookie

    • 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:
    Example 1: PHP Create/Retrieve a Cookie
    <?php
    $cookie_name = "user";
    $cookie_value = "John Doe";
    setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
    ?>
    <html>
    <body>
    
    <?php
    if(!isset($_COOKIE[$cookie_name])) {
      echo "Cookie named '" . $cookie_name . "' is not set!";
    } else {
      echo "Cookie '" . $cookie_name . "' is set!<br>";
      echo "Value is: " . $_COOKIE[$cookie_name];
    }
    ?>
    
    </body>
    </html>
    • 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).

    Modify a Cookie Value

    To modify a cookie, just set (again) the cookie using the setcookie() function:

    Example 2: PHP Cookies - Modify a Cookie Value
    <?php
    $cookie_name = "user";
    $cookie_value = "Alex Porter";
    setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
    ?>
    <html>
    <body>
    
    <?php
    if(!isset($_COOKIE[$cookie_name])) {
      echo "Cookie named '" . $cookie_name . "' is not set!";
    } else {
      echo "Cookie '" . $cookie_name . "' is set!<br>";
      echo "Value is: " . $_COOKIE[$cookie_name];
    }
    ?>
    
    </body>
    </html>

    Delete a Cookie

    To delete a cookie, use the setcookie() function with an expiration date in the past:

    Example 3: PHP Cookies - Delete a Cookie
    <?php
    // set the expiration date to one hour ago
    setcookie("user", "", time() - 3600);
    ?>
    <html>
    <body>
    
    <?php
    echo "Cookie 'user' is deleted.";
    ?>
    
    </body>
    </html>

    Check if Cookies are Enabled

    The following example creates a small script that checks whether cookies are enabled. First, try to create a test cookie with the setcookie() function, then count the $_COOKIE array variable:

    Example 3: PHP Cookies - Check if Cookies are Enabled
    <?php
    setcookie("test_cookie", "test", time() + 3600, '/');
    ?>
    <html>
    <body>
    
    <?php
    if(count($_COOKIE) > 0) {
      echo "Cookies are enabled.";
    } else {
      echo "Cookies are disabled.";
    }
    ?>
    
    </body>
    </html>

    Complete PHP Filesystem Reference

    For a complete reference of filesystem functions, go to W3Schools.com complete PHP Filesystem Reference.

    Navigate this module

    Eventually the navigation links, above, will be replaced by these << (previous) and >> (next) buttons below.



    Animated PHP icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon

    Module 6 quiz