无法注销mysql和php

Posted

技术标签:

【中文标题】无法注销mysql和php【英文标题】:Can't logout mysql and php 【发布时间】:2013-06-18 00:21:26 【问题描述】:

我在我的应用程序中创建了登录/注销系统,但即使使用 session_start();session_destroy();session_unset (); 等也无法正常工作。

这是我到目前为止所做的:

第一页(登录)

<?php
    if(
    !isset($_SERVER['PHP_AUTH_USER'])||
    !isset($_SERVER['PHP_AUTH_PW'])||
    ($_SERVER['PHP_AUTH_USER'])!="admin"||
    ($_SERVER['PHP_AUTH_PW']!="admin")
     )

header('WWW-Authenticate: Basic realm="Accès refusé"');
echo 'Accès refusé';
exit;

else
session_start (); 
$_SESSION['PHP_AUTH_USER'] = "admin"; 
$_SESSION['PHP_AUTH_PW'] = "admin"; 
echo '

这是注销部分

<?php

session_start();
session_unset ();
session_destroy(); 
header("Location: index.php");
die;    
?>

问题是会话没有被破坏,即使单击注销按钮也是如此。

【问题讨论】:

这应该是if 而不是if(,然后是 而不是) 等。另外你需要在每个页面中使用session_start(); 我在每一页都有 session_start() + if(condition) 这就是我一直的工作方式 你的 "style" 非常令人困惑,即使它对你有用。 是的,我看到session_start(); 通常位于页面的顶部,而不是隐藏在else 下方。可能是它被破坏的原因。 它在 (else) 之后,因为在我的情况下,或者正确地说,我开始的条件是如果没有登录名或密码,或者在这种情况下它们是错误的,那么什么都必须发生,但在其他情况下,会话应该开始并且成员页面显示出来(在回声之后) 【参考方案1】: 您正在使用 http 身份验证 Cookie 和 Sessions 对 http 身份验证没有任何影响 "No correct way exists" to logout。

创建另一个登录/注销系统,并不难。

【讨论】:

如果我使用其他浏览器会改变什么吗? @user2507171,是的,您将能够使用 cookie 和会话处理身份验证。 如果你确定使用其他浏览器可能会改变它,但它仍然不能解决手头的“现有”问题。如果有人使用你现在正在使用的东西怎么办? @user2507171 看看***.com/a/12866277/1415724 和***.com/a/3490680/1415724 我什至没有注意到。

以上是关于无法注销mysql和php的主要内容,如果未能解决你的问题,请参考以下文章

使用 php 和 mysql 自动注销

无法弄清楚为啥我的注销按钮不起作用(php)[重复]

注销PHP / MySql后如何更新表

在浏览器关闭 PHP/MySQL 时将用户从数据库中注销

Facebook-connect:无法使用PHP SDK + JS SDK注销

再学ajax--第二天 | 基于php+mysql+ajax的表单注册登录注销