Php 导致写入第二个cookie的If语句

Php 导致写入第二个cookie的If语句,php,if-statement,cookies,login,Php,If Statement,Cookies,Login,我有一个登录脚本,在用户登录时创建cookies。我还有以下if语句,用于在用户登录时更改导航栏中的按钮: <?php if (isset($_SESSION['user_id'])) { echo "<li><a href='logout.php' class='btn btn-default navbar-btn' role='button'>Log Out</a></li>";

我有一个登录脚本,在用户登录时创建cookies。我还有以下if语句,用于在用户登录时更改导航栏中的按钮:

<?php
    if (isset($_SESSION['user_id'])) {
            echo "<li><a href='logout.php' class='btn btn-default navbar-btn'     role='button'>Log Out</a></li>";
            echo "<li><a href='myaccount.php' class='btn btn-default navbar-btn' role='button'>Dashboard</a></li>";
            echo "<li><a href='newlisting.php' class='btn btn-default navbar-btn' role='button'>Add New Listing</a></li>";
        } else {
            echo "<li><a href='login.php' class='btn btn-default navbar-btn' role='button'>Log In</a></li>";
            echo "<li><a href='signup.php' class='btn btn-default navbar-btn' role='button'>Sign Up</a></li>";
        }
        ?>
但是,当我登录时,出现以下错误:

警告:session_start:无法发送会话缓存限制器-标头已发送输出,在第40行的/home/kizumit/public_html/header.php:54 in/home/kizumit/public_html/dbc.php处启动


我可以登录并保持登录状态,但按钮不变。我想知道是否有一种方法可以让我在不干扰用户登录时创建的cookie的情况下,根据登录的用户更改按钮。有什么建议吗?

您的问题将出现在/home/kizumit/public_html/dbc.php的第40行。这会阻止您启动会话\u start,这意味着您的条件是如果设置了$\u会话['user\u id']{..将始终返回false。这可能会说明一些问题,dbc.php的第40行是session_start函数,该函数在显示页面之前检查用户是否登录。唯一的另一个session_start内容是登录脚本本身。但是,当我将其从dbc.php文件中取出时,它的作用就好像我没有在某个时间登录一样ll和显示了一个空白点,页面的其余部分应该加载。@Syrupandsas您可以包含该代码吗?有一些字符正在发送,这就是会话没有被实例化的原因properly@kevinabelita非常感谢!!我应该在问之前搜索一下。我只是非常沮丧。