2017-01-31 99 views
-1

當管理員登錄時,管理員將在導航欄上有一個管理頁面。 當成員登錄時,成員將在導航欄上有一個配置文件頁面。無法註銷php

但是,可以說當管理員註銷時,它會轉到註銷頁面說註銷,當管理員回到主頁時,管理員仍然登錄並且管理頁面仍然在導航欄。

這是我的登錄和註銷代碼。

<?php 
//checks if login session variable exist? If it does, display Logout 
session_start(); 
if(isset($_SESSION['login']) && $_SESSION['login']!="") { 
    //link to page logout.php and displays the word Logout + username 
    echo"<li><a href='logout.php'>Logout ".$_SESSION['login']."</a></li>"; 
    if(isset($_SESSION['login'])&& $_SESSION['usertype'] !="admin") { 
     echo ("<li><a href='profile.php'>Profile</a></li>");       
    } else { 
     echo ("<li><a href='AdminPage.php'>Administrator</a></li>"); 
    } 
    if($_SESSION['login'] == "") { 
     header("Location:login.php"); 
    } 
    if($_SESSION['login'] != "" && $_SESSION['usertype'] =="member") { 
     header("location:home.php"); 
    } 
} else { 
    //else link to pagelogin.php and display the word Login 
    echo("<li><a href ='pagelogin.php'>Login</a></li>"); 
} 
?> 

如何糾正錯誤,以便當用戶登錄時用戶可以成功註銷。

在logout.php文件
+0

「當管理員回到主頁,管理員仍然登錄和管理頁面仍然在導航欄」。意味着管理員從瀏覽器後退按鈕鏈接返回? –

+0

這可能不是問題的答案,但'if($ _ SESSION ['login'] ==「」)'將永遠不會是真的,因爲它在'if($ _ SESSION ['login']!=「 「)'test – Kaddath

回答

0

你只需要做的基本:在註銷

<?php 

session_start(); 

session_destroy(); 

header("Location: pagelogin.php"); // or whatever your login file is called 
?> 
+0

這很好,它的工作原理,但我怎麼仍然在退出主頁之前在退出頁面上顯示」您已成功退出「的文本? –

+0

你不必完全按照我建議的標題位置的方式來完成它。您可以使用消息將註銷轉移到loggedout.php。但通常你會這樣做,如果登錄用戶無法看到登錄屏幕。 – Option

+0

如果您對答案感到滿意,請將其標記爲已解決。 – Option

0

你必須摧毀用戶的會話:在你的註銷頁面寫代碼

session_destroy(); 

第二個方法 是從您的會話變量中刪除數據, 在您的登出頁面中寫入代碼

$_SESSION['login'] = ''; 
$_SESSION['usertype'] = ''; 
session_destroy(); 

破壞後的會話和會話變量,把他送回登錄頁面

header('location:login.php?msg="You Have successfully logout....!!"'); 
0

代碼銷燬會話,註銷條件等是必需的,但你不必在瀏覽器的後退按鈕控制,你必須編寫代碼以清除緩存及其最大年齡等搜索下面提到的細節。您可能需要在html標頭/ php標頭中添加更多代碼。

<?php 

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 
?> 

您可以檢查此鏈接可能會幫助How to prevent Browser cache for php site