PHP - 未定义的会话

时间:2014-05-01 22:39:19

标签: php arrays session

我正在尝试创建一个登录系统,如果输入了正确的详细信息,该系统会重定向到相应的页面。

session_start();

$result = mysqli_query($con, "my query");
if(mysqli_num_rows($result) == 1)
{
    $_SESSION['username'] = $username;
    header("Location: home.php");
}
else
{
    header("Location: login.php");
}

但是,如果我输入正确的详细信息,我会收到:“Undefined variable: _SESSION”。

我真的不知道这里出了什么问题。

3 个答案:

答案 0 :(得分:1)

您需要确保在每个要使用session_start()超全局数组的php文件的顶部启动会话($_SESSION)。

答案 1 :(得分:1)

这听起来像session_start()来电失败了。最常见的原因是您已经开始输出到浏览器。如果您在打开<?php标记之前有空白或HTML,或者在调用{{1}之前进行任何类型的echo / print / printf类型调用,则会发生这种情况}}

确保会话始终首先启动的一种方法是使用自动添加的文件,并使该文件的全部内容为session_start()。为此,请设置auto_prepend_file INI标志。这必须在加载任何PHP文件之前设置,因此您需要使用<?php session_start();.htaccess文件。

答案 2 :(得分:0)

这是一个drupal问题吗?如果是这样,这可以帮助您:https://drupal.stackexchange.com/questions/107287/undefined-variable-session-in-template-php

您可以在session_start()之前显示其余代码吗?在调用session_start()之前,错误(在之前的代码中)或任何输出都可能导致您的错误。