<?php
if($_SESSION['IS_LOGEDIN'] == 'Y')
{
header("location:index.php?page=home");
exit();
}
?>
我有问题的人,我有这个登录代码和这个错误,当我想进入该页面。
会话已经开始 - 忽略session_start()。
我尝试以这种方式制作代码但是当我想要进入页面时,不想加载:
<?php
if(!isset($_SESSION['IS_LOGEDIN']) == 'Y')
{
session_start();
header("location:index.php?page=home");
exit();
}
?>
解决方案是什么?
答案 0 :(得分:2)
你的代码错了:
if(!isset($_SESSION['IS_LOGEDIN']) == 'Y')
session_start()
您开始会话 AFTER 您尝试测试会话中的值(可能)。同样,isset()
返回布尔值true / false。它永远不会返回一个字符串,它将 NOT 返回您正在测试的变量中可能设置的值。所以基本上你已经if (true/false == 'Y')
没有任何意义。
你可能想要更像这样的东西:
session_start()
if (!isset($_SESSION['IS_LOGEDIN']) || ($_SESSION['IS_LOGEDIN'] != 'Y')) {
header('....');
}
&#34;如果用户从未登录或未登录,则重定向&#34;。
答案 1 :(得分:0)
你可以尝试
<?php
session_start(); //must be at the start of the page
if(!isset($_SESSION['IS_LOGEDIN']) or empty($_SESSION['IS_LOGEDIN'])) {
$_SESSION['IS_LOGEDIN'] = 'Y';
header("location:index.php?page=home");
exit();
}
?>