Bird
Raised Fist0
PHPprogramming~20 mins

Session vs cookie decision in PHP - Practice Questions

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Session vs Cookie Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this PHP code using sessions?

Consider this PHP code snippet that uses sessions to store a user's name. What will be printed?

PHP
<?php
session_start();
$_SESSION['user'] = 'Alice';
echo $_SESSION['user'];
?>
AEmpty output
Buser
CAlice
DError: Undefined index
Attempts:
2 left
💡 Hint

Sessions store data on the server and can be accessed after starting the session.

🧠 Conceptual
intermediate
2:00remaining
When should you use cookies instead of sessions?

Which situation is best suited for using cookies rather than sessions?

AKeeping user preferences that persist after browser closes
BStoring sensitive user data securely on the server
CStoring large amounts of data for a user
DSharing data between different users
Attempts:
2 left
💡 Hint

Think about where cookies and sessions store data and their lifetime.

❓ Predict Output
advanced
2:00remaining
What error does this PHP code produce?

What error will this PHP code produce when trying to access a cookie that is not set?

PHP
<?php
echo $_COOKIE['theme'];
?>
AFatal error: Undefined variable
BNotice: Undefined index 'theme'
CEmpty string output
DNo output, script stops
Attempts:
2 left
💡 Hint

Accessing an unset array key in PHP triggers a notice.

🧠 Conceptual
advanced
2:00remaining
Why are sessions more secure than cookies for sensitive data?

Choose the best reason why sessions are considered more secure than cookies for storing sensitive information.

ASessions store data on the server, reducing exposure to client attacks
BCookies automatically expire after 5 minutes
CSessions store data on the client side encrypted
DCookies cannot be accessed by JavaScript
Attempts:
2 left
💡 Hint

Think about where the data is stored and who can access it.

🚀 Application
expert
2:00remaining
How many items are stored in the session after this code runs?

Given the following PHP code, how many key-value pairs are stored in the session?

PHP
<?php
session_start();
$_SESSION['user'] = 'Bob';
$_SESSION['cart'] = ['apple', 'banana'];
unset($_SESSION['user']);
$_SESSION['logged_in'] = true;
?>
A1
B0
C3
D2
Attempts:
2 left
💡 Hint

Remember that unset removes a key from the session array.

Practice

(1/5)
1. Which of the following is the best reason to use a PHP session instead of a cookie?
easy
A. To reduce server memory usage
B. To save user preferences permanently on the browser
C. To store sensitive user data temporarily during a visit
D. To share data between different websites

Solution

  1. Step 1: Understand session purpose

    Sessions store data on the server and are good for sensitive or temporary data during a visit.
  2. Step 2: Compare with cookies

    Cookies store data on the user's browser and are better for non-sensitive, longer-term data.
  3. Final Answer:

    To store sensitive user data temporarily during a visit -> Option C
  4. Quick Check:

    Session = temporary sensitive data [OK]
Hint: Use sessions for sensitive, temporary data; cookies for long-term [OK]
Common Mistakes:
  • Thinking cookies are safer than sessions
  • Using sessions to store permanent data
  • Confusing where data is stored
2. Which PHP code snippet correctly starts a session?
easy
A.
B.
C.
D.

Solution

  1. Step 1: Recall PHP session syntax

    The correct function to start a session is session_start().
  2. Step 2: Check other options

    Other options are not valid PHP functions and will cause errors.
  3. Final Answer:

    <?php session_start(); ?> -> Option D
  4. Quick Check:

    session_start() starts session [OK]
Hint: Remember exact function name: session_start() [OK]
Common Mistakes:
  • Using incorrect function names
  • Forgetting parentheses
  • Confusing session_start with cookie functions
3. What will be the output of this PHP code?
<?php
session_start();
$_SESSION['user'] = 'Alice';
setcookie('user', 'Bob', time() + 3600);
echo $_SESSION['user'] . ' & ' . $_COOKIE['user'];
?>
medium
A. Alice &
B. Bob & Alice
C. Alice & Alice
D. Bob & Bob

Solution

  1. 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.
  2. 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).
  3. Final Answer:

    Alice & -> Option A
  4. Quick Check:

    Session = Alice immediate, Cookie = next request [OK]
Hint: Session changes immediate; cookie available next request [OK]
Common Mistakes:
  • Expecting cookie value immediately after setcookie()
  • Mixing session and cookie values
  • Assuming cookie overwrites session
4. Identify the error in this PHP code snippet:
<?php
setcookie('theme', 'dark');
session_start();
$_SESSION['theme'] = 'light';
?>
medium
A. session_start() must be called before setcookie()
B. No error, code is correct
C. $_SESSION cannot be set after setcookie()
D. setcookie() must be called before any output

Solution

  1. Step 1: Recall header rules in PHP

    Both setcookie() and session_start() send HTTP headers and must be called before any output.
  2. 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.
  3. Final Answer:

    No error, code is correct -> Option B
  4. Quick Check:

    Headers before output, order OK [OK]
Hint: Call setcookie() and session_start() before any output [OK]
Common Mistakes:
  • Thinking session_start() must come before setcookie()
  • Ignoring header output rules
  • Assuming $_SESSION depends on setcookie()
5. You want to remember a user's language preference safely for their entire visit but not after they close the browser. Which is the best choice?
hard
A. Store language in a session variable
B. Store language in a cookie with 1 year expiry
C. Store language in a cookie without expiry
D. Store language in a hidden form field

Solution

  1. Step 1: Understand data lifetime needs

    The language preference should last only during the visit, not after browser closes.
  2. 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.
  3. Final Answer:

    Store language in a session variable -> Option A
  4. Quick Check:

    Temporary visit data = session [OK]
Hint: Use session for visit-only data, cookie for longer storage [OK]
Common Mistakes:
  • Using cookies for temporary visit data
  • Setting cookie without expiry expecting session behavior
  • Using hidden fields for persistent data
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