$ _SESSION ['myvar']在重新加载页面时取消设置

时间:2017-03-24 18:04:06

标签: php session login session-variables

我有一个登录表单,提交一个简单的“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上运行它时,它工作正常。有解决方法吗?

1 个答案:

答案 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");
}