2017-04-08 138 views
-1

我正在嘗試在我的網站中創建身份驗證syatem,並且我能夠成功註冊並登錄,但登錄後我的菜單欄仍顯示登錄選項。用戶登錄後無法更改登錄菜單以註銷PHP

<div class="collapse navbar-collapse" id="myNavbar"> 
    <ul class="nav navbar-nav navbar-right"> 
    <li><a href="index.php">HOME</a></li> 
    <li><a href="#services">REGISTRATION</a></li> 
    <li><a href="download.php">DOWNLOAD</a></li> 
    <li><a href="contact.php">CONTACT</a></li> 
    <?php 
     if(isset($_SESSION['user_id']) === true){ 
     ?><li><a href="logout.php">LOGOUT</a></li><?php 
    }else{ 
     ?><li><a href="login.php">LOGIN</a></li><?php 
    } 
    ?> 
    </ul> 
</div> 
</div> 

我該怎麼辦?

+1

你確認要添加session_start();在你的頁面@ user66016 – Karthik

+0

我們不能給你一個正確的答案與你提供的代碼,告訴我們在哪裏創建會話,並在頁面 – Gert

+0

上的php代碼的頂部一塊這裏沒有mysqli,我刪除了該標籤。問題的狀態是什麼?您在下面的答案似乎是有效的解決方案。 –

回答

1

這件作品將每

if(isset($_SESSION['user_id']) === true){ 
     ?><li><a href="logout.php">LOGOUT</a></li><?php 
    }else{ 
     ?><li><a href="login.php">LOGIN</a></li><?php 
     ?> 

通常我們檢查類似這樣的會議時失敗,請檢查是否設置並檢查它是否不爲空,也修改了您的迴音方式

if(isset($_SESSION['user_id'])) && (!empty($_SESSION['user_id'])){ 
      echo '<li><a href="logout.php">LOGOUT</a></li>'; 
    }else{ 
     echo '<li><a href="login.php">LOGIN</a></li>'; 
    } 
    ?> 

也非常重要,在每頁的頂部使用此代碼在第1行和第2行,否則沒有會話功能將工作

<?php 
session_start();