我有一个登录表单,提交一个简单的“checklogin”文件,启动会话并在“username”和“password”匹配时重定向到索引页面。在索引页面上,如果会话ID不再匹配,我有一个重定向回登录表单页面的函数。
我在索引页面上做了echo $_SESSION['sid'];
,而session_id似乎已经结束了。但是,当我重新加载页面时,$_SESSION['sid']
未设置,并且不再分配值。它继续重定向回登录页面。
以下是我的代码。任何帮助表示赞赏。
文件1 - checklogin.php
<?php
session_start();
$uid = username;
$pw = password;
if (($uid == 'username' and $pw == 'password'))
{
$_SESSION['sid']=session_id();
header("location:index.php");
exit();
}
?>
文件2 - index.php
<?php
session_start();
if ($_SESSION['sid'] !== session_id()) {
header("location:login.php");
}
?>
其他信息: 服务器运行PHP 5.4。但是,当我通过XAMPP(PHP 7)在localhost上运行它时,它工作正常。有解决方法吗?
答案 0 :(得分:0)
文件1 - checklogin.php
session_start();
$uid = username;
$pw = password;
if (($uid == 'username' and $pw == 'password'))
{
$_SESSION['login_status'] = 'logged_in';
header("location:index.php");
exit();
}
文件2 - index.php
session_start();
if( $_SESSION['login_status'] != 'logged_in' )
{
header("location:login.php");
}