Bird
Raised Fist0
PHPprogramming~20 mins

How sessions work in PHP - Practice Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
PHP Session 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 session code?

Consider this PHP script that uses sessions. What will it output?

PHP
<?php
session_start();
if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 1;
} else {
    $_SESSION['count']++;
}
echo $_SESSION['count'];
?>
A1
B0
CAn error about undefined index
DA blank page
Attempts:
2 left
💡 Hint

Think about what happens the first time the session variable is set.

🧠 Conceptual
intermediate
1:30remaining
What does session_start() do in PHP?

Choose the correct explanation of what session_start() does in PHP.

AIt initializes a session or resumes the current one based on a session identifier passed via a cookie or URL.
BIt destroys all session data and ends the session immediately.
CIt creates a new session file on the server without checking for existing sessions.
DIt encrypts all session variables automatically.
Attempts:
2 left
💡 Hint

Think about how PHP knows which session belongs to which user.

🔧 Debug
advanced
2:00remaining
Why does this PHP session code cause a warning?

Look at this PHP code snippet. It causes a warning about headers already sent. Why?

PHP
<?php
session_start();
echo "Hello";
session_start();
?>
ABecause <code>echo</code> cannot be used with sessions.
BBecause <code>session_start()</code> is called twice, and output was sent before the second call.
CBecause sessions must be started after all output is sent.
DBecause <code>session_start()</code> requires a parameter.
Attempts:
2 left
💡 Hint

Headers must be sent before any output. What happens if you call session_start() after output?

📝 Syntax
advanced
1:30remaining
Which option correctly sets a session variable in PHP?

Choose the correct way to set a session variable named user with value admin.

Aset_session('user', 'admin');
Bsession['user'] = 'admin';
C$_SESSION['user'] = 'admin';
Dsession->user = 'admin';
Attempts:
2 left
💡 Hint

Remember the superglobal array used for sessions.

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

Given this PHP code, how many session variables exist after execution?

PHP
<?php
session_start();
$_SESSION['a'] = 1;
$_SESSION['b'] = 2;
unset($_SESSION['a']);
$_SESSION['c'] = 3;
?>
A3
B0
C1
D2
Attempts:
2 left
💡 Hint

Think about what unset() does to session variables.

Practice

(1/5)
1. What is the main purpose of using sessions in PHP?
easy
A. To remember user data across multiple pages
B. To store data permanently on the user's computer
C. To speed up the website loading time
D. To create a new database connection

Solution

  1. Step 1: Understand what sessions do

    Sessions keep track of user information as they move between pages on a website.
  2. Step 2: Compare options

    Only To remember user data across multiple pages correctly describes this purpose. Options A, C, and D describe unrelated functions.
  3. Final Answer:

    To remember user data across multiple pages -> Option A
  4. Quick Check:

    Sessions remember user data = B [OK]
Hint: Sessions remember data across pages, not store on user PC [OK]
Common Mistakes:
  • Confusing sessions with cookies stored on user device
  • Thinking sessions speed up page loading
  • Believing sessions create database connections
2. Which PHP function must be called before using $_SESSION variables?
easy
A. session_end()
B. session_open()
C. session_init()
D. session_start()

Solution

  1. Step 1: Identify the correct function to start a session

    The function session_start() initializes a session or resumes the current one.
  2. Step 2: Check other options

    Functions like session_end(), session_open(), and session_init() do not exist in PHP.
  3. Final Answer:

    session_start() -> Option D
  4. Quick Check:

    Start session with session_start() = C [OK]
Hint: Always call session_start() before accessing $_SESSION [OK]
Common Mistakes:
  • Using non-existent functions like session_end()
  • Forgetting to call session_start() before $_SESSION
  • Calling session_start() after outputting HTML
3. What will be the output of this PHP code?
<?php
session_start();
$_SESSION['count'] = 1;
$_SESSION['count']++;
echo $_SESSION['count'];
?>
medium
A. 2
B. Error
C. 0
D. 1

Solution

  1. Step 1: Analyze session variable assignment and increment

    The code sets $_SESSION['count'] to 1, then increments it by 1, making it 2.
  2. Step 2: Output the session variable

    The echo statement prints the current value, which is 2.
  3. Final Answer:

    2 -> Option A
  4. Quick Check:

    1 incremented by 1 = 2 [OK]
Hint: Increment after setting 1 results in 2 [OK]
Common Mistakes:
  • Assuming the value stays 1 without increment
  • Thinking session variables reset each time
  • Expecting an error without session_start()
4. Identify the error in this PHP code snippet:
<?php
$_SESSION['user'] = 'Alice';
echo $_SESSION['user'];
?>
medium
A. Cannot assign string to $_SESSION
B. Incorrect variable name, should be $SESSION
C. Missing session_start() before using $_SESSION
D. Echo statement syntax is wrong

Solution

  1. Step 1: Check session initialization

    The code uses $_SESSION without calling session_start() first, which is required.
  2. Step 2: Verify other options

    Variable name $_SESSION is correct, strings can be assigned, and echo syntax is valid.
  3. Final Answer:

    Missing session_start() before using $_SESSION -> Option C
  4. Quick Check:

    session_start() needed before $_SESSION = A [OK]
Hint: Always call session_start() before $_SESSION usage [OK]
Common Mistakes:
  • Forgetting session_start() causes undefined $_SESSION
  • Confusing $_SESSION with $SESSION
  • Thinking echo syntax is incorrect
5. You want to count how many times a user visits a page during a session. Which code snippet correctly implements this?
hard
A. <?php $_SESSION['visits'] = 1; echo $_SESSION['visits']; ?>
B. <?php session_start(); if (!isset($_SESSION['visits'])) { $_SESSION['visits'] = 1; } else { $_SESSION['visits']++; } echo "Visits: " . $_SESSION['visits']; ?>
C. <?php session_start(); $_SESSION['visits']++; echo $_SESSION['visits']; ?>
D. <?php session_start(); $_SESSION['visits'] = 0; echo $_SESSION['visits']; ?>

Solution

  1. Step 1: Check session initialization and visit count logic

    <?php session_start(); if (!isset($_SESSION['visits'])) { $_SESSION['visits'] = 1; } else { $_SESSION['visits']++; } echo "Visits: " . $_SESSION['visits']; ?> starts the session, checks if 'visits' exists, initializes or increments it properly.
  2. Step 2: Review other options for errors

    <?php $_SESSION['visits'] = 1; echo $_SESSION['visits']; ?> lacks session_start(), <?php session_start(); $_SESSION['visits']++; echo $_SESSION['visits']; ?> increments without initialization, <?php session_start(); $_SESSION['visits'] = 0; echo $_SESSION['visits']; ?> resets visits to 0 every time.
  3. Final Answer:

    The code snippet that initializes visits=1 if not set, else increments -> Option B
  4. Quick Check:

    Initialize then increment visits with session_start() = A [OK]
Hint: Initialize visits if not set, then increment [OK]
Common Mistakes:
  • Not calling session_start() before $_SESSION
  • Incrementing without checking if variable exists
  • Resetting counter on every page load
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