我正在尝试制作一个登录系统,如果输入了正确的详细信息,该系统将重定向到适当的页面。
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文件之前设置,因此您需要使用.htaccess
或php.ini
文件。
这是drupal的问题吗?如果是这样,这可以帮助您:https://drupal.stackexchange.com/questions/107287/undefined-variable-session-in-template-php
你能展示session_start()
之前的代码吗?在调用session_start()
之前,可能有错误(在前面的代码中)或任何输出都可能导致您的错误。