Bird
Raised Fist0
PHPprogramming~5 mins

How cookies work in PHP

Choose your learning style10 modes available
Introduction

Cookies help websites remember you. They store small bits of information on your computer so the site can recognize you later.

Remembering a user's login so they don't have to sign in every time.
Saving user preferences like language or theme on a website.
Tracking items in a shopping cart while browsing an online store.
Keeping a user logged in during a session.
Collecting simple data for website analytics.
Syntax
PHP
<?php
setcookie(name, value, expires, path, domain, secure, httponly);
?>

name is the cookie's name.

value is the data stored in the cookie.

expires is the time the cookie expires (as a Unix timestamp).

Only name and value are required; others are optional.

Examples
Sets a cookie named 'user' with value 'Alice' that lasts until the browser closes.
PHP
<?php
setcookie("user", "Alice");
?>
Sets a cookie named 'theme' with value 'dark' that expires in 1 hour.
PHP
<?php
setcookie("theme", "dark", time() + 3600);
?>
Sets a secure, HTTP-only cookie for the domain 'example.com' that expires in 1 day.
PHP
<?php
setcookie("session", "12345", time() + 86400, "/", "example.com", true, true);
?>
Sample Program

This program sets a cookie called 'visitor' with the value 'John' that lasts for one hour. Then it checks if the cookie exists and greets the visitor by name if it does. If not, it welcomes a new visitor.

PHP
<?php
// Set a cookie named 'visitor' with value 'John' that expires in 1 hour
setcookie("visitor", "John", time() + 3600);

// Check if the cookie is set and print a message
if (isset($_COOKIE["visitor"])) {
    echo "Welcome back, " . $_COOKIE["visitor"] . "!";
} else {
    echo "Hello, new visitor!";
}
?>
OutputSuccess
Important Notes

Cookies must be set before any HTML or output is sent to the browser.

Cookies are stored on the user's computer and can be deleted by the user anytime.

Cookies can only store strings, so complex data must be converted (e.g., using JSON).

Summary

Cookies store small data on the user's computer to remember information.

Use setcookie() in PHP to create cookies.

Cookies help improve user experience by saving preferences and login info.

Practice

(1/5)
1. What is the primary purpose of cookies in PHP?
easy
A. To execute server-side scripts
B. To style web pages dynamically
C. To create database connections
D. To store small pieces of data on the user's computer

Solution

  1. Step 1: Understand what cookies do

    Cookies save small data on the user's computer to remember information like preferences or login status.
  2. Step 2: Identify the correct purpose

    Among the options, only storing small data on the user's computer matches the purpose of cookies.
  3. Final Answer:

    To store small pieces of data on the user's computer -> Option D
  4. Quick Check:

    Cookies store data = B [OK]
Hint: Cookies save data on user device, not server tasks [OK]
Common Mistakes:
  • Confusing cookies with server-side code execution
  • Thinking cookies style web pages
  • Assuming cookies manage database connections
2. Which of the following is the correct syntax to set a cookie named user with value John in PHP?
easy
A. setcookie('user', 'John');
B. cookie_set('user', 'John');
C. set_cookie('user', 'John');
D. setcookie(user, John);

Solution

  1. Step 1: Recall the PHP function to set cookies

    The correct PHP function is setcookie() with parameters as strings.
  2. Step 2: Check syntax correctness

    setcookie('user', 'John'); uses correct function name and quotes around parameters, making it valid syntax.
  3. Final Answer:

    setcookie('user', 'John'); -> Option A
  4. Quick Check:

    Correct function and quotes = A [OK]
Hint: Use setcookie() with quoted strings for name and value [OK]
Common Mistakes:
  • Using wrong function names like cookie_set or set_cookie
  • Forgetting quotes around cookie name or value
  • Passing variables without quotes incorrectly
3. What will be the output of the following PHP code?
setcookie('color', 'blue');
if(isset($_COOKIE['color'])) {
echo $_COOKIE['color'];
} else {
echo 'No cookie set';
}
medium
A. blue
B. No cookie set
C. Undefined index error
D. Syntax error

Solution

  1. Step 1: Understand when cookies are available

    Cookies set by setcookie() are available on the next page load, not immediately in the same script.
  2. Step 2: Check the condition in the code

    Since the cookie is not yet set in $_COOKIE during this script run, isset($_COOKIE['color']) is false, so it prints 'No cookie set'.
  3. Final Answer:

    No cookie set -> Option B
  4. Quick Check:

    Cookie available next request = A [OK]
Hint: Cookies appear in $_COOKIE on next page load, not immediately [OK]
Common Mistakes:
  • Expecting cookie immediately after setcookie() in same script
  • Assuming $_COOKIE is updated instantly
  • Confusing cookie setting with session variables
4. Identify the error in this PHP code snippet that tries to set a cookie:
setcookie('theme', 'dark', time() + 3600)
echo 'Cookie set!';
medium
A. Missing semicolon after setcookie() call
B. Incorrect function name
C. Wrong parameter order in setcookie()
D. Cookies cannot be set with expiration time

Solution

  1. Step 1: Check PHP syntax rules

    Each PHP statement must end with a semicolon (;). The setcookie() call is missing this.
  2. Step 2: Verify function name and parameters

    The function name and parameters are correct, and expiration time is valid.
  3. Final Answer:

    Missing semicolon after setcookie() call -> Option A
  4. Quick Check:

    Semicolon missing = C [OK]
Hint: Always end PHP statements with semicolon [OK]
Common Mistakes:
  • Forgetting semicolon at end of function calls
  • Thinking expiration time is invalid
  • Confusing function names
5. You want to create a cookie that lasts for 7 days, is only accessible over HTTPS, and cannot be accessed by JavaScript. Which of the following setcookie() calls correctly achieves this?
hard
A. setcookie('session', 'active', time() + 604800);
B. setcookie('session', 'active', time() + 604800, '/', '', false, true);
C. setcookie('session', 'active', time() + 604800, '/', '', true, true);
D. setcookie('session', 'active', time() + 604800, '/', '', true, false);

Solution

  1. Step 1: Calculate expiration time for 7 days

    7 days = 7 * 24 * 3600 = 604800 seconds, so time() + 604800 is correct.
  2. Step 2: Set secure and httponly flags

    To make cookie HTTPS-only, set the secure flag to true. To improve security, httponly should also be true.
  3. Step 3: Check options

    setcookie('session', 'active', time() + 604800, '/', '', true, true); sets secure and httponly to true, matching requirements. Others either disable secure or httponly or omit parameters.
  4. Final Answer:

    setcookie('session', 'active', time() + 604800, '/', '', true, true); -> Option C
  5. Quick Check:

    Secure and httponly true for HTTPS cookie = D [OK]
Hint: Use secure=true and httponly=true for HTTPS cookies [OK]
Common Mistakes:
  • Not setting secure flag to true for HTTPS-only cookies
  • Omitting httponly flag for security
  • Incorrect expiration time calculation
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard