Php 会话已启动-忽略会话_start()Xampp

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'])

我有问题的家伙,我有这个登录代码和这个错误,当我想进入该页面

会话已启动-忽略会话\u start()

我试图以这种方式生成代码,但当我想进入页面时,不想加载:

<?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();
        }
    ?>