无法注销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的主要内容,如果未能解决你的问题,请参考以下文章