2017-01-31 76 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