Creating php sessions -basics
A brief about PHP sessions
When you start an application, work on it and then close it, it is a session. Your computer knows who you are. It knows when you start an application and when you close it. But the problem with internet is, it cannot recognize users.HTTP protocol is a stateless protocol. It does not remember what happened in past
The question can be why do we want internet to remember users?
One example can be, user accessing an shopping site, where when the user moves among pages, information is required to know the user to customize preferences.
The two possible ways to store this information of user are COOKIES and SESSIONS.
How SESSIONS work
A session creates a file in a temporary directory on the server where registered session variables and their values are stored. This data will be available to all pages on the site during that visit.
- PHP first creates a unique identifier for that particular session which is a random string of 32 hexadecimal numbers such as 3c7foj34c3jj973hjkop2fc937e7887.
- A cookie named PHPSESSID is stored on user’s computer to be used as session identification string.
- A file is automatically created in the temporary directory with the name prefixed by sess_ ie sess_3c7foj34c3jj973hjkop2fc937e7887.
When PHP wants to retrieve the values of the session variables, the unique session identifier can be found from the cookie PHPSESSID. Then PHP can look for the file bearing that name in the temporary directory.And the validation can be done on matching both values.
Creating php sessions
Start a PHP session
A session is started with the session_start() function.
Session variables are set with the PHP global variable: $_SESSION.
This is illustrated:
<?php session_start(); //always at the top of a page ?> <html> <head> <title>Scanfcode</title> </head> <body> <?php $_SESSION['name']="Scanfcode"; $_SESSION['work']="blog"; ?> </body> </html>
$_SESSION['name']="Scanfcode"; sets the session with name =name and value=Scanfcode.
Getting session values
<?php session_start(); ?> <html> <head> <title>Scanfcode</title> </head> <body> <?php // echoing sessions set echo "Hello, my name is:".$_SESSION['name']."<br>"; echo "My job is:".$_SESSION['work']; ?> </body> </html>
The output will be:
Hello,my name is:Scanfcode.
My job is:blog
Destroying a session
To destroy all sessions use: session_destroy();
<?php session_destroy(); ?>
To remove a specific session use:
<?php unset($_SESSION['work']); ?>
This function will remove only session work.