Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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)_Php_Session_Login - Fatal编程技术网

会话变量清除自身(PHP)

会话变量清除自身(PHP),php,session,login,Php,Session,Login,作为一个非常简单的登录脚本的一部分,我使用用户名创建了一个会话变量(或者至少我认为它的名称),并使用它来检查用户是否登录。使用以下代码在登录脚本中设置变量: if($count==1) { session_start(); $_SESSION['ed_user'] = $ed_user; header("location:main.php"); } else { echo "Incorrect user or password, please try again.

作为一个非常简单的登录脚本的一部分,我使用用户名创建了一个会话变量(或者至少我认为它的名称),并使用它来检查用户是否登录。使用以下代码在登录脚本中设置变量:

if($count==1) {
    session_start();
    $_SESSION['ed_user'] = $ed_user;
    header("location:main.php");
} else {
    echo "Incorrect user or password, please try again.";
}
我知道if语句的第一部分是运行的,因为我没有收到错误消息。在指向(
main.php
)的页面上,代码的第一行应检查是否设置了
$\u会话['ed\u user']
,如果不是这样,则返回到
index.php
。这是通过以下代码完成的:

if(!$_SESSION['ed_user']){
    header("location:index.php");
}
然而,它似乎总是在登录后返回index.php。我尝试使用以下行检查变量是否存在:

<p><?php echo"Current user: ".$_SESSION['ed_user'];?></p>

这表示变量为空。我做错了什么

你需要打电话

session_start();

在每个页面上。

在您的
main.php
文件上

session_start();
if(!isset($_SESSION['ed_user'])){
    header("location:index.php");
}

您需要调用
session\u start()
来访问会话变量。

这似乎有点违反直觉,但谢谢:-)。“它现在开始工作了。”@Noceo:不用担心,治疗很痛苦。