我正在尝试创建一个登录系统,如果输入了正确的详细信息,该系统会重定向到相应的页面。
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
”。
我真的不知道这里出了什么问题。
答案 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()
之前,错误(在之前的代码中)或任何输出都可能导致您的错误。