主页未立即识别会话PHP

主页未立即识别会话PHP,php,session,Php,Session,我有一个网站,根据用户是否登录,显示两个不同版本的导航部分 <?php if(isset($_SESSION['myusername'])){ echo '<a href="'.$baseRoot.$defaultPage.'?com=logout&cxid='.uniqid(),'">Log Out</a>'; }else{ echo '<a href="'.$baseRoot.$defaultPag

我有一个网站,根据用户是否登录,显示两个不同版本的导航部分

<?php 
    if(isset($_SESSION['myusername'])){
        echo '<a href="'.$baseRoot.$defaultPage.'?com=logout&cxid='.uniqid(),'">Log Out</a>';
    }else{
        echo '<a href="'.$baseRoot.$defaultPage.'?com=login&cxid='.uniqid(),'" class="signupbutton">Sign Up</a>';
    }
?>

当用户登录并在未注销的情况下关闭浏览器(并且假设他们在浏览器退出时未清除缓存/cookie)时,就会发生此问题

当他们稍后打开浏览器并返回站点时,导航将显示为他们未登录。如果他们随后单击网站上其他地方的链接,即我的帐户,则导航将更改以显示他们已登录


你知道这是什么原因吗?我希望导航显示他们在返回站点后立即登录。

首先,检查
session\u start()
在任何html,甚至是!DOCTYPE规则

现在,在索引页上添加以下内容:

 <?php
  session_start();
  if(isset($_SESSION['username'])){
  header("location: home.php"); // or whatever page you want your users to be redirected to... 

  }else {
  ?>
  //  here your html page should start 
  <html><head></head><body>
  // all the DOM elements on your page
  </body></html>
  <?php  
   } // closing end of the else block started above  
  ?>

//您的html页面应该从这里开始
//页面上的所有DOM元素
必须如下所示

ob_start();
session_start();
//code to check session and other

ob\u start()
用于省略已发送的标题错误。

您是否在每页顶部都有
session\u start()
功能?您的站点是否有
让我登录/记住我
功能?