Bird
Raised Fist0
PHPprogramming~5 mins

Session variables in PHP

Choose your learning style10 modes available
Introduction

Session variables let you save information about a user while they browse your website. This helps keep data like login status or preferences as they move between pages.

Remember if a user is logged in across different pages.
Store items in a shopping cart while the user shops.
Keep track of user preferences like language or theme.
Save temporary data during a multi-step form.
Pass data between pages without showing it in the URL.
Syntax
PHP
<?php
session_start();
$_SESSION['key'] = 'value';
$value = $_SESSION['key'];
?>

You must call session_start() at the very start of your PHP script before any output.

Session variables are stored in the $_SESSION superglobal array.

Examples
Save the username 'Alice' in a session variable.
PHP
<?php
session_start();
$_SESSION['username'] = 'Alice';
?>
Retrieve and show the username stored in the session.
PHP
<?php
session_start();
echo $_SESSION['username'];
?>
Add an item to a shopping cart stored in the session.
PHP
<?php
session_start();
if (isset($_SESSION['cart'])) {
    $_SESSION['cart'][] = 'item1';
} else {
    $_SESSION['cart'] = ['item1'];
}
?>
Sample Program

This program starts a session, saves the user's name and role, then prints them out.

PHP
<?php
session_start();

// Save user info
$_SESSION['user'] = 'Bob';
$_SESSION['role'] = 'admin';

// Show saved info
echo "User: " . $_SESSION['user'] . "\n";
echo "Role: " . $_SESSION['role'] . "\n";
?>
OutputSuccess
Important Notes

Always call session_start() before using $_SESSION.

Session data is stored on the server, so it is more secure than cookies.

To remove a session variable, use unset($_SESSION['key']);.

Summary

Session variables store user data across pages.

Use session_start() to begin using sessions.

Access session data with the $_SESSION array.

Practice

(1/5)
1. What is the main purpose of using session_start() in PHP?
easy
A. To connect to a database
B. To send output to the browser
C. To begin a session and enable session variables
D. To include another PHP file

Solution

  1. Step 1: Understand what session_start() does

    This function initializes a session or resumes the current one based on a session identifier passed via a cookie or URL.
  2. Step 2: Identify the purpose of session variables

    Session variables store user data across multiple pages, but they only work if a session is started first.
  3. Final Answer:

    To begin a session and enable session variables -> Option C
  4. Quick Check:

    session_start() = start session [OK]
Hint: Remember: session_start() must be called before using $_SESSION [OK]
Common Mistakes:
  • Thinking session_start() connects to a database
  • Using session variables without calling session_start()
  • Confusing session_start() with output functions
2. Which of the following is the correct way to set a session variable named user with the value "Alice"?
easy
A. $_SESSION['user'] = 'Alice';
B. session['user'] = 'Alice';
C. set_session('user', 'Alice');
D. session_start['user'] = 'Alice';

Solution

  1. Step 1: Recall the syntax for setting session variables

    Session variables are stored in the global $_SESSION array, so you assign values like $_SESSION['key'] = value;.
  2. Step 2: Check each option's syntax

    $_SESSION['user'] = 'Alice'; uses the correct $_SESSION superglobal with proper array syntax and assignment.
  3. Final Answer:

    $_SESSION['user'] = 'Alice'; -> Option A
  4. Quick Check:

    $_SESSION['key'] = value [OK]
Hint: Use $_SESSION['name'] = value to set session data [OK]
Common Mistakes:
  • Using session without the $_SESSION superglobal
  • Trying to call session_start as an array
  • Using undefined functions like set_session()
3. What will be the output of the following PHP code?
session_start();
$_SESSION['count'] = 1;
$_SESSION['count']++;
echo $_SESSION['count'];
medium
A. 1
B. 0
C. Error
D. 2

Solution

  1. Step 1: Analyze session variable initialization and increment

    The code sets $_SESSION['count'] to 1, then increments it by 1 using ++.
  2. Step 2: Determine the final value of $_SESSION['count']

    After increment, the value becomes 2, which is then printed by echo.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    1 incremented by 1 = 2 [OK]
Hint: Increment session variable with ++ after setting it [OK]
Common Mistakes:
  • Forgetting to call session_start() before using $_SESSION
  • Assuming $_SESSION['count'] stays 1 after ++
  • Expecting an error due to session usage
4. Identify the error in this PHP code snippet:
$_SESSION['user'] = 'Bob';
echo $_SESSION['user'];
medium
A. Missing session_start() before using $_SESSION
B. Incorrect array syntax for $_SESSION
C. Cannot assign string to $_SESSION
D. Echo statement syntax is wrong

Solution

  1. Step 1: Check for session initialization

    The code uses $_SESSION but does not call session_start() first, which is required to access session variables.
  2. Step 2: Verify syntax correctness

    The array syntax and echo statement are correct, and assigning a string to $_SESSION is valid.
  3. Final Answer:

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

    Always call session_start() before $_SESSION [OK]
Hint: Always start session with session_start() before $_SESSION use [OK]
Common Mistakes:
  • Using $_SESSION without session_start()
  • Thinking $_SESSION needs special syntax
  • Assuming 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 using session variables?
hard
A.
session_start();
$_SESSION['visits']++;
echo $_SESSION['visits'];
B.
session_start();
if (!isset($_SESSION['visits'])) {
  $_SESSION['visits'] = 1;
} else {
  $_SESSION['visits']++;
}
echo $_SESSION['visits'];
C.
session_start();
$_SESSION['visits'] = 1;
echo $_SESSION['visits'];
D.
if (!isset($_SESSION['visits'])) {
  $_SESSION['visits'] = 1;
} else {
  $_SESSION['visits']++;
}
echo $_SESSION['visits'];

Solution

  1. Step 1: Ensure session is started

    Calling session_start() is necessary to use session variables.
  2. Step 2: Check visit count logic

    The code checks if $_SESSION['visits'] exists; if not, it sets it to 1. Otherwise, it increments the count. This correctly tracks visits.
  3. Step 3: Verify output

    Finally, it echoes the current visit count, showing how many times the user visited during the session.
  4. Final Answer:

    Code snippet with session_start() and visit count check -> Option B
  5. Quick Check:

    Initialize then increment visits with session_start() [OK]
Hint: Always check isset() before incrementing session counters [OK]
Common Mistakes:
  • Forgetting session_start() before using $_SESSION
  • Not checking if session variable exists before increment
  • Resetting visit count 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