I have a problem with a login on my site. The script starts session and login works, sets session id and i can return that and echo it in variable, but when i navigate to a different file on my server, even one in the same directory, it says i'm not logged in.
login script
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
session_start();
include_once "scripts/connect_to_mysql.php";
if (isset($_POST['username'])){
$username = $_POST['username'];
$hash = sha1($_POST['password']);
$sql = "SELECT * FROM members WHERE username= '".$username."' AND password='".$hash."' LIMIT 1";
$res = mysql_query($sql);
if(mysql_num_rows($res) == 1){
$row = mysql_fetch_assoc(mysql_query("$sql"));
if($row['id'] > 0){
$_SESSION['id'] = $row['id'];
$_SESSION['username']= $row['username'];
$_SESSION['email']= $row['email'];
$id = ($_SESSION['id']);
$username = ($_SESSION['username']);
$email = ($_SESSION['email']);
}
echo "<font color='green'>Login successful.</font>";
echo $id;
exit();
}
else{
echo "<font color='red'>Login not successful. Please try again.</font>";
exit();
}
}
?>
and i can put this on any other page and it says im not logged in
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
if(!isset($_SESSION['id']) || empty($_SESSION['id'])) {
print 'You are not logged in';
die();
}
if(isset($_SESSION['username'])){
print 'LOGGED IN!!!';
}
?>
No errors are returned.
If anyone has any idea for me it is much appreciated.