In this tutorial, you’ll learn how to use PHP's $_SESSION
superglobal for managing session data. Sessions allow you to store information that can be accessed across multiple pages, making it ideal for storing user information and maintaining state.
PHP Superglobal $_SESSION
1. What is a PHP Session?
A PHP session is a way to store information on the server for individual users. Unlike cookies, which are stored on the client side, session data is stored on the server, making it more secure. A unique session ID links each user to their stored data.
2. Starting a Session
To use sessions in PHP, you must start the session using the session_start()
function before any output is sent to the browser. This initializes or resumes the session.
<?php
// Start the session
session_start();
?>
Always place session_start()
at the top of your PHP file.
3. Storing and Accessing Session Data
To store data in a session, use the $_SESSION
superglobal array with a key. For example, to store a username:
<?php
session_start();
$_SESSION['username'] = 'JohnDoe';
echo "Username is: " . $_SESSION['username'];
?>
This stores JohnDoe
in the session variable $_SESSION['username']
, accessible across pages after starting the session.
4. Updating Session Data
Updating session data is as simple as assigning a new value to a session variable:
<?php
$_SESSION['username'] = 'JaneDoe'; // Updates the username
?>
5. Removing Session Data
To remove a specific session variable, use the unset()
function. To clear all session data, use session_unset()
or assign $_SESSION
to an empty array.
<?php
unset($_SESSION['username']); // Remove specific session variable
session_unset(); // Clears all session variables
?>
6. Destroying a Session
To completely end a session and remove all session data, use session_destroy()
. This is often done when logging a user out.
<?php
session_destroy(); // Ends the session and clears session data
?>
Note that session_destroy()
will not unset the $_SESSION
variables until the page is reloaded.
7. Example: Using $_SESSION for User Login
Here's a basic example of using $_SESSION
to store a user's login status:
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Assume successful login
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $_POST['username'];
echo "Welcome, " . $_SESSION['username'];
}
// Check if user is logged in
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
echo "You are logged in as " . $_SESSION['username'];
} else {
echo "Please log in.";
}
?>
This example checks if the user is logged in by verifying $_SESSION['loggedin']
and displays a message accordingly.
8. Conclusion
The $_SESSION
superglobal is a powerful tool for managing user-specific data across pages. By securely storing data on the server, sessions make it easy to build user login systems, shopping carts, and other stateful web applications.