When a browser loads a new web page, it forgets all the information from the previous page. A PHP session is a way of storing information within a website, so that it can be retained and used across multiple pages.
Examples of session use are:
- displaying a user’s id on multiple pages, following a successful login
- retaining selected items in a shopping cart, as the user navigates from page to page
- retaining values, such as a user’s quiz Score, when each new question page loads
Starting a session
The following PHP function is used to start a session. This should be placed at the top of a page, before any HTML code. If data is being passed between multiple pages, each page that requires access to the session should contain the PHP code below.
When a new session starts, a user key is stored on the user’s computer. The session_start() function looks to see if a user key exists. If it does, the current session is continued. If no user key exists, a new session is started.
1 2 3 4 5 6 | <?php session_start(); ?> <!DOCTYPE html> <html> <head> |
Session Variables
Session variables can be assigned values, or have their values checked in any file that contains the session_start() function.
1 2 3 4 5 | if (!isset() { $_SESSION [ 'loggedin' ]) { $_SESSION [ 'loggedin' ] = False; } ... $_SESSION [ 'username' ] = $username ; |
1 2 3 4 5 6 7 | if ( $_SESSION [ 'loggedin' ] == True) { echo "<p>Logged in as: " . $_SESSION [ 'username' ] . "</p>" ; // display rest of page } else { echo "<p>Not logged in</p>" ; // display page with a login button } |
Ending a session
The PHP function session_destroy() is used to end a session. In this example, logout.php is ran when a “Log Out” button on other pages is clicked. The code below destroys the session and then reloads the home page.
1 2 3 4 5 6 7 8 9 | <?php session_start(); ?> <?php session_destroy(); include "index.php" ; die ; /php> |