Sessions and cookies help websites remember you. Choosing between them depends on what you want to save and how safe it should be.
Session vs cookie decision in PHP
<?php // Start a session session_start(); // Set a session variable $_SESSION['key'] = 'value'; // Set a cookie setcookie('key', 'value', time() + 3600); // expires in 1 hour ?>
Sessions store data on the server and use a cookie to link the user.
Cookies store data on the user's browser and can last longer.
<?php session_start(); $_SESSION['username'] = 'Alice'; ?>
<?php setcookie('theme', 'dark', time() + 86400); // 1 day ?>
This program chooses between session and cookie based on a simple condition. It shows how to set each and explains the difference in duration.
<?php // Start session session_start(); // Decide to use session or cookie $userPrefersRemember = true; // example decision if ($userPrefersRemember) { // Use cookie to remember user for 7 days setcookie('user', 'Bob', time() + 7 * 24 * 3600); echo "Cookie set to remember user for 7 days."; } else { // Use session to remember user only during visit $_SESSION['user'] = 'Bob'; echo "Session set to remember user during this visit."; } ?>
Sessions are safer for sensitive data because data is stored on the server.
Cookies can be seen and changed by users, so avoid storing secrets there.
Sessions expire when the browser closes or after inactivity, cookies can last longer.
Use sessions to store sensitive or temporary data during a visit.
Use cookies to save small, non-sensitive data across visits.
Decide based on how long you want to remember and how safe the data should be.
Practice
Solution
Step 1: Understand session purpose
Sessions store data on the server and are good for sensitive or temporary data during a visit.Step 2: Compare with cookies
Cookies store data on the user's browser and are better for non-sensitive, longer-term data.Final Answer:
To store sensitive user data temporarily during a visit -> Option CQuick Check:
Session = temporary sensitive data [OK]
- Thinking cookies are safer than sessions
- Using sessions to store permanent data
- Confusing where data is stored
Solution
Step 1: Recall PHP session syntax
The correct function to start a session is session_start().Step 2: Check other options
Other options are not valid PHP functions and will cause errors.Final Answer:
<?php session_start(); ?> -> Option DQuick Check:
session_start() starts session [OK]
- Using incorrect function names
- Forgetting parentheses
- Confusing session_start with cookie functions
<?php
session_start();
$_SESSION['user'] = 'Alice';
setcookie('user', 'Bob', time() + 3600);
echo $_SESSION['user'] . ' & ' . $_COOKIE['user'];
?>Solution
Step 1: Understand session and cookie values
$_SESSION['user'] is set to 'Alice'. The cookie 'user' is set to 'Bob' but will be available on the next request only.Step 2: Check echo output
$_SESSION['user'] outputs 'Alice'. $_COOKIE['user'] is not set in this request (assuming no prior cookie), so it is empty. Output: Alice & (empty).Final Answer:
Alice & -> Option AQuick Check:
Session = Alice immediate, Cookie = next request [OK]
- Expecting cookie value immediately after setcookie()
- Mixing session and cookie values
- Assuming cookie overwrites session
<?php
setcookie('theme', 'dark');
session_start();
$_SESSION['theme'] = 'light';
?>Solution
Step 1: Recall header rules in PHP
Both setcookie() and session_start() send HTTP headers and must be called before any output.Step 2: Check order and output
No output before either function. Order of setcookie() before session_start() is fine; multiple Set-Cookie headers are allowed.Final Answer:
No error, code is correct -> Option BQuick Check:
Headers before output, order OK [OK]
- Thinking session_start() must come before setcookie()
- Ignoring header output rules
- Assuming $_SESSION depends on setcookie()
Solution
Step 1: Understand data lifetime needs
The language preference should last only during the visit, not after browser closes.Step 2: Match storage type to lifetime
Sessions last until browser closes or session expires, so session variable fits. Cookies persist beyond browser close if expiry is set.Final Answer:
Store language in a session variable -> Option AQuick Check:
Temporary visit data = session [OK]
- Using cookies for temporary visit data
- Setting cookie without expiry expecting session behavior
- Using hidden fields for persistent data
Ready to prove it?
Pass the test and this pattern moves unknown
