无法注销php

时间:2017-01-31 11:00:13

标签: php mysql session

当管理员登录时,管理员将在导航栏上显示管理页面。 会员登录后,会员将在导航栏上显示个人资料页面。

但是,让我们说当管理员退出时,它将进入注销页面帽子说已注销,当管理员返回主页时,管理员仍然登录并且管理页面仍然在导航栏上

这是我登录和退出的代码。

<?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>");
}
?>

如何纠正错误,以便在用户登录时用户可以成功注销。

3 个答案:

答案 0 :(得分:0)

你的logout.php文件中的

你只需要做基本的:

<?php

session_start();

session_destroy();

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

答案 1 :(得分:0)

注销时,你必须销毁用户的会话: 在您的注销页面中编写代码

session_destroy();

第二种方法是从会话变量中删除数据, 在您的注销页面中编写代码

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

在销毁会话和会话变量之后将其发送回登录页面

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

答案 2 :(得分:0)

需要破坏会话,注销条件等的代码,但是您无法控制浏览器的后退按钮,您必须编写代码来清除缓存及其最大年龄等,并搜索下面提到的详细信息。你可能需要在html header / php header中添加更多代码。

<?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