您好 我正在学习PHP。 使用xampp我测试代码,register_globals为ON。 刚写了一个简单的代码来测试会话,但它不起作用我不知道为什么! 管理员使用通行证123正确登录但当我点击进入管理区域时,它会将我返回到登录页面,因为似乎没有设置会话:
这是check.php页面:
<?php
session_start();
$u = $_POST['tfUser'];
$p = $_POST['tfPass'];
if (($u == "admin") && ($p == "123"))
{
print ("Okay! Go to Admin area "."<a href='admin.php'>Click Here</a>");
$_SESSION["testSession"] = $mySession;
}
else
{
print ("Nope !");
}
?>
这是admin.php页面:
<?php
session_start();
if (isset($_SESSION["testSession"]))
{
echo "Hello !";
}
else
{
echo '<script language="javascript">
window.location.href="login.php";
</script>';
return;
}
?>
答案 0 :(得分:3)
检查$mySession
是否已定义且不为空。如果变量设置为isset
null
将返回false
答案 1 :(得分:3)
使用此
<?php
session_start();
$u = $_POST['tfUser'];
$p = $_POST['tfPass'];
if (($u == "admin") && ($p == "123"))
{
print ("Okay! Go to Admin area "."<a href='admin.php'>Click Here</a>");
$_SESSION["testSession"] = $u; // or something else (string, or any other var which must be having some values)
}
else
{
print ("Nope !");
}
您正在使用未初始化的$mysession
,因此它将设置为null。
答案 2 :(得分:3)
设置错误报告:
error_reporting(E_ALL);
ini_set('display_errors', '1');
您收到类似的错误,因为未定义mySession var。
注意:未定义的变量:在第8行的/test.php中嘿
哦,只要你学习PHP,就摆脱JavaScript并继续:
header('Location: login.php');
即使有人关闭了JavaScript,它也会有相同的结果。