Php 会话已启动-忽略会话_start()Xampp
我有问题的家伙,我有这个登录代码和这个错误,当我想进入该页面 会话已启动-忽略会话\u start() 我试图以这种方式生成代码,但当我想进入页面时,不想加载:Php 会话已启动-忽略会话_start()Xampp,php,Php,我有问题的家伙,我有这个登录代码和这个错误,当我想进入该页面 会话已启动-忽略会话\u start() 我试图以这种方式生成代码,但当我想进入页面时,不想加载: <?php if($_SESSION['IS_LOGEDIN'] == 'Y') { header("location:index.php?page=home"); exit(); } ?> 解决方案是什么?您的代码完全错误: <?php if(!isset($_SESSION['IS_LOGEDIN'])
<?php
if($_SESSION['IS_LOGEDIN'] == 'Y')
{
header("location:index.php?page=home");
exit();
}
?>
解决方案是什么?您的代码完全错误:
<?php
if(!isset($_SESSION['IS_LOGEDIN']) == 'Y')
{
session_start();
header("location:index.php?page=home");
exit();
}
?>
您在尝试测试会话中(可能)的值后启动会话。同样,isset()
返回布尔值true/false。它永远不会返回字符串,并且它将不会返回您正在测试的变量中可能设置的任何值。所以基本上你得到的是if(true/false='Y')
,这毫无意义
你可能想要更像这样的东西:
if(!isset($_SESSION['IS_LOGEDIN']) == 'Y')
session_start()
“如果用户从未登录或未登录,则重定向。”您可以尝试
session_start()
if (!isset($_SESSION['IS_LOGEDIN']) || ($_SESSION['IS_LOGEDIN'] != 'Y')) {
header('....');
}
他们注销时您是否破坏了会话?如果您包含了会话_start()代码>在包含的/必需的文件中,则可能导致它。你应该把session_start()代码>在顶部。加上这个如果(!isset($\u SESSION['IS_LOGEDIN'])=='Y')
你应该使用两个条件,而不是一个。如果未设置,请检查,&&
如果等于。或者它是反向等效的如果(isset($\u SESSION['IS'u LOGEDIN'])&($\u SESSION['IS'u LOGEDIN']='Y'){//do something}或者{//do something}
,这可能是OP想要实现的。不过,OP到底想实现什么目标还不太清楚。他们发布了两个不同的代码块;哪一个是好的/坏的,或者两者兼而有之,这是任何人的猜测。会话已经启动通常意味着有另一个session_start()副本代码>某处。
<?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();
}
?>