让我的注销按钮工作

时间:2009-09-04 18:49:57

标签: php mysql

嘿那里,我正试图让我的注销按钮工作。这就是我的代码中的内容:

<!-- Signed In -->
<?php if($_SESSION['*****']['AUTH']) { ?>




<div id="signOut">
    Sign Out
</div>
<div id="signIn">

    <form name="sendEmail" action="index.php" method="post">
        <input type="text" name="name" class="text"/> 
        <input type="submit" name="subSendEmail" value="Search" class="rounded {transparent} button" />
    </form>
</div>

我需要制作像登录一样的表格吗?或者最好的方法是什么,通过php终止会话并将用户发送回索引?

谢谢!

2 个答案:

答案 0 :(得分:5)

要将用户注销,您需要从会话中删除数据。通常,在执行此操作时清除会话没有问题,因为那里的任何数据都可能与登录的会话相关。

您可以使用session_destroy()清除会话数据。我建议创建一个简单的logout.php脚本,类似于以下内容,然后您可以链接到该脚本:

<?php
session_destroy();
header( 'Location: index.php' );

这会将用户重定向回index.php,并将其返回到“未登录”视图。

或者,如果您希望让用户提交表单以确认注销操作,您只需将表单发布到上面的脚本中,它就可以执行相同的操作:

<form method="post" action="logout.php">
    <p>Are you sure you want to log out?</p>
    <p><input type="submit" value="Log Out" /></p>
</form>

答案 1 :(得分:1)

看起来你是一个新人,所以,我将尝试尽可能简单地翻译上面的正确答案。

当有人登录时,你给他们一个$ _SESSION变量,在他们的网站周围跟随他们存储他们的“登录”信息。看起来你到目前为止已经弄明白了。

因此,从逻辑上讲,如果$ _SESSION变量告诉网站您已登录,那么删除$ _SESSION变量(或者“__SESSION变量”的“session_destroy()”将签出。

幸运的是,杀死这个变量非常简单,可以在.php页面上的任何地方完成。方法如下:

session_destroy();

是肯定的。这就对了。整个辣酱玉米饼馅。你只是把那个坏孩子放在某个地方,当php命中它时,它会破坏你的用户所进行的任何会话 - 因此“将它们签出”。

那么,你把它放在哪里?你把它放在任何你想要PHP的人记录某人。它可以在你的主页的顶部,它可以在表单提交时完成,它甚至可以完全是它自己的页面......这就是我建议的方式。

例如,正如Rob所述,你可以创建一个名为logout.php的页面。用户会以某种方式进入此页面(通过超链接,或表单,或某些东西),PHP将发挥其作用,然后PHP将签署后将其传输到其他地方。那怎么样?看看这个:

<?php
session_start(); // open the user's session on the page
session_destroy(); // kill the user's session

header("Location: somewhere.php"); // take the user somewhere else
?>

最后......有很多很好的资源。我建议你阅读它们(顺便说一句,也可以看看你的例子中的if语句的资源),直到你的大脑麻木并且你梦想着PHP。