PHP -未定义会话



我正在尝试制作一个登录系统,如果输入了正确的详细信息,该系统将重定向到适当的页面。

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 "。

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

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

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

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

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

你能展示session_start()之前的代码吗?在调用session_start()之前,可能有错误(在前面的代码中)或任何输出都可能导致您的错误。

最新更新