Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $会话[';myvar';]在重新加载页面时取消设置_Php_Session_Login_Session Variables - Fatal编程技术网

Php $会话[';myvar';]在重新加载页面时取消设置

Php $会话[';myvar';]在重新加载页面时取消设置,php,session,login,session-variables,Php,Session,Login,Session Variables,我有一个登录表单,它提交到一个简单的“checklogin”文件,该文件启动会话,如果“用户名”和“密码”匹配,则重定向到索引页。在索引页面上,我有一个函数,如果会话id不再匹配,它会重定向回登录表单页面 我做了一个echo$_会话['sid']和会话id似乎进行得很好。但是,当我重新加载页面时,$\u SESSION['sid']未设置并且不再分配值。它继续重定向回登录页面 下面是我的代码。感谢您的帮助 文件1-checklogin.php <?php session_start();

我有一个登录表单,它提交到一个简单的“checklogin”文件,该文件启动会话,如果“用户名”和“密码”匹配,则重定向到索引页。在索引页面上,我有一个函数,如果会话id不再匹配,它会重定向回登录表单页面

我做了一个
echo$_会话['sid']和会话id似乎进行得很好。但是,当我重新加载页面时,
$\u 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");
}
?>  

其他信息:
服务器运行的是PHP5.4。但是,当我通过XAMPP(PHP7)在本地主机上运行它时,它工作得很好。有解决办法吗?

索引页上是否有会话销毁?去掉那个,不。我没有会话_destroy();在我的网站上的任何地方@每次刷新会话id时,会话id都会更改,因为您在页面的开始处有会话开始。根据你查到的其他资料variable@shazyriver正确的。然而,我也试着给它一个设定值,但效果不好。检查我的答案。