Introduction:
Sessions are one of the simplest and more powerful tools in a web developers arsenal. This tool is invaluable in dynamic web page development and it is one of those things every developer needs to know how to use.
This article explains the basics of PHP Sessions.
Assumptions:
Basic PHP knowledge is required (variables, arrays and such)
HTML Forms.
What are Sessions?
Sessions are a way of storing data. When developing interactive web applications we often find ourselves in need of a safe place to put certain pieces of information, such as User ID's and names. Somewhere it won’t be lost every time the browser is refreshed or redirected. This is exactly what Sessions do. They store your data on the server, so you can access it at any time, from within any server-side script.
To make this possible a file is created on the server, it is linked to a SessionID that is generated and sent to the browser as a cookie or through the URL as GET data.
Then, any time your browser is refreshed/redirected the server-side code reads this SessionID and loads the information stored in the file on the server.
Why would I use Sessions?
There are endless possible uses for this tool. It is commonly used to keep track of user information, such as Usernames and UserID's.
For example, if you take a look at the top of the Bytes page your are currently on. If you are logged in you will see a welcome message and some user controls. These fields will stay the same no matter where you go on the Bytes web. To make this possible, your user info must be stored somewhere safe, where the server-side script will be able to read it. This is the very reason Sessions exists, to make things like this possible.
How do I use Sessions?
Using Sessions in PHP is very simple. First of all, you need to tell your script that you are going to be using Sessions.
This is done by invoking the start_session() function. This function will either create a new session or re-open an existing one. Because this function needs to send header data to your browser, it must be called before any output is sent.
Once you have told your browser to use sessions, you can access your session data by calling the $_SESSION super-global. This is an array, that works pretty much like any other PHP array. You can add, edit, read and unset it's fields just like you would a normal array.
This is a little example of how to create a session and use the $_SESSION array:
[code=PHP]
// Start the session
session_start() ;
// Create a session variable
$_SESSION['MyVar'] = "This is my session variable";
// Use the session variable
echo "MyVar: ". $_SESSION['MyVar'];
// Edit a session variable
$_SESSION['MyVar'] = "I just edited my first variable";
// Delete a session variable
unset($_SESSION['MyVar']);
[/code]
Once you have set a field inside the $_SESSION array, it will be available to any server-side script on the web until the browser is closed or until the field is manually unset.
A simple example:
Earlier in the article I talked about storing user data with Sessions. This little example shows how you can gather user information and store it in the PHP Session array.
It simply asks the user for a username through a HTML form and adds it to the Session. Then when the user has logged in, it prints a welcome message and gives the user the option to log out. If the user chooses to log out, it simply unsets the Session field. effectively logging the user out.
[CODE=php]
<?php
// Start the session
session_start() ;
// Check if a username is stored in the session
if(isset($_SESS ION['Username']))
{
// Check if the user has pressed the logout link
if(isset($_GET['logout']))
{
// Unset the SESSION variable Username
unset($_SESSION['Username']);
echo "You have been logged out <br /> <a href='?'>Contin ue</a>";
}
else
{
// Print the weclome message
$sUsername = htmlentities($_ SESSION['Username']);
echo "Your are signed in as '{$sUsername}'< br /><a href='?logout=t rue'>Logout</a>";
}
}
else
{
// Check If the user has posted any data
if(isset($_POST['Username']))
{
// Set the SESSION variable Username
$_SESSION['Username'] = $_POST['Username'];
echo "You have been logged in! <br /><a href='?'>Contin ue</a>";
}
else
{
// Print the login form
echo '
<form action="?" method="post">
Username: <input name="Username" type="text" /><br />
<input type="submit" value="Login" />
</form>';
}
}
?>[/CODE]
Sessions are one of the simplest and more powerful tools in a web developers arsenal. This tool is invaluable in dynamic web page development and it is one of those things every developer needs to know how to use.
This article explains the basics of PHP Sessions.
Assumptions:
Basic PHP knowledge is required (variables, arrays and such)
HTML Forms.
What are Sessions?
Sessions are a way of storing data. When developing interactive web applications we often find ourselves in need of a safe place to put certain pieces of information, such as User ID's and names. Somewhere it won’t be lost every time the browser is refreshed or redirected. This is exactly what Sessions do. They store your data on the server, so you can access it at any time, from within any server-side script.
To make this possible a file is created on the server, it is linked to a SessionID that is generated and sent to the browser as a cookie or through the URL as GET data.
Then, any time your browser is refreshed/redirected the server-side code reads this SessionID and loads the information stored in the file on the server.
Why would I use Sessions?
There are endless possible uses for this tool. It is commonly used to keep track of user information, such as Usernames and UserID's.
For example, if you take a look at the top of the Bytes page your are currently on. If you are logged in you will see a welcome message and some user controls. These fields will stay the same no matter where you go on the Bytes web. To make this possible, your user info must be stored somewhere safe, where the server-side script will be able to read it. This is the very reason Sessions exists, to make things like this possible.
How do I use Sessions?
Using Sessions in PHP is very simple. First of all, you need to tell your script that you are going to be using Sessions.
This is done by invoking the start_session() function. This function will either create a new session or re-open an existing one. Because this function needs to send header data to your browser, it must be called before any output is sent.
Once you have told your browser to use sessions, you can access your session data by calling the $_SESSION super-global. This is an array, that works pretty much like any other PHP array. You can add, edit, read and unset it's fields just like you would a normal array.
This is a little example of how to create a session and use the $_SESSION array:
[code=PHP]
// Start the session
session_start() ;
// Create a session variable
$_SESSION['MyVar'] = "This is my session variable";
// Use the session variable
echo "MyVar: ". $_SESSION['MyVar'];
// Edit a session variable
$_SESSION['MyVar'] = "I just edited my first variable";
// Delete a session variable
unset($_SESSION['MyVar']);
[/code]
Once you have set a field inside the $_SESSION array, it will be available to any server-side script on the web until the browser is closed or until the field is manually unset.
A simple example:
Earlier in the article I talked about storing user data with Sessions. This little example shows how you can gather user information and store it in the PHP Session array.
It simply asks the user for a username through a HTML form and adds it to the Session. Then when the user has logged in, it prints a welcome message and gives the user the option to log out. If the user chooses to log out, it simply unsets the Session field. effectively logging the user out.
[CODE=php]
<?php
// Start the session
session_start() ;
// Check if a username is stored in the session
if(isset($_SESS ION['Username']))
{
// Check if the user has pressed the logout link
if(isset($_GET['logout']))
{
// Unset the SESSION variable Username
unset($_SESSION['Username']);
echo "You have been logged out <br /> <a href='?'>Contin ue</a>";
}
else
{
// Print the weclome message
$sUsername = htmlentities($_ SESSION['Username']);
echo "Your are signed in as '{$sUsername}'< br /><a href='?logout=t rue'>Logout</a>";
}
}
else
{
// Check If the user has posted any data
if(isset($_POST['Username']))
{
// Set the SESSION variable Username
$_SESSION['Username'] = $_POST['Username'];
echo "You have been logged in! <br /><a href='?'>Contin ue</a>";
}
else
{
// Print the login form
echo '
<form action="?" method="post">
Username: <input name="Username" type="text" /><br />
<input type="submit" value="Login" />
</form>';
}
}
?>[/CODE]
Comment