My session don’t seem to be saved. I have a log in page that saves the users id as a session. But when I leave the page and click on another page the sessions are not saved.
Here are my code. I have a main page called index.php that look like this:
<?php
if(!isset($_SESSION)){
session_start();
}
?>
<!DOCTYPE html> <HTML> <HEAD> </HEAD> <BODY>
<?php
$page_content = 'startpage.php';
if (isset($_GET['link']) && !empty($_GET['link']) ) {
$page_content = $_GET['link'];
}
include "$page_content";
include 'menu.php';
include 'footer.php';
?>
To login I use this page called admin.php. Within this page I have loggin code that works fine.
If the user has written right username and password then this happens:
$_SESSION['user_id'] = $user_id;
print_r($_SESSION);
The code above shows the current sessions variables. But as soon one click on another page the variables are left empty.
At the bottom of index.php are the footer.php page included, and it looks like this:
<?php
if(!isset($_SESSION['user_id']) ){
echo "The sessions are not initiated. ";
}
if (empty ($_SESSION['user_id']) ) {
echo "The sessions are empty. ";
}
echo "<a href='index.php?link=admin.php'>Administration</a>";
?>
In this footer I have put two if questions to check the sessions.
After I have succeded to logg in and clicked on an another page the if questions detect that my session are empty and not initiated.
How should I get the sessions to work?
Perhaps I should add that I use a rent database that use MySql.
Before you can use
$_SESSIONyou should always start it with:Also,
session_start()must always be called before you output anything on the page, otherwise it will not work properly