嘿那里,我正试图让我的注销按钮工作。这就是我的代码中的内容:
<!-- 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终止会话并将用户发送回索引?
谢谢!
答案 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。