2

我已经阅读了有关会话的几个关于 stackoverflow 的问题,但从未找到答案:-)

session_start() 应该放在任何其他代码之前 - 甚至在响应会话问题的每个人都强调 html 标记之前。我主要通过这个网站学习 PHP,并在我去的时候建立我的第一个 php 网站。除了应该将它们放在页面上的位置之外,我已经了解所有关于 unset、destroy 和 clear 的内容。

我知道这一定是一个非常基本的问题,但是在阅读了四天关于注销的答案但没有找到它之后,我有点绝望了。

非常感谢任何帮助,谢谢

4

5 回答 5

1

无论您是在顶部还是底部编写代码都没有关系。您需要做的是,当单击注销按钮时,应该调用 logout() 函数,并且在该函数内部应该有这段代码。您还可以调用另一个名为 logout.php 的 php 文件,其中包含这么多代码

于 2013-06-27T17:02:38.880 回答
0

session_destroy应该像这样放置在您的注销页面中以破坏用户的会话

session_start(); // start session
session_destroy(); // destroy the current session of user
echo "You are logged out"; // place here greetings that user is logged out
// you can also redirect user to your login page
于 2013-06-27T11:25:10.893 回答
0

您应该取消设置已初始化的会话变量,并在注销按钮操作中使用 session_destroy()。

   function logout() {
          unset($_SESSION['username']);
          session_destroy();
   }
于 2013-06-27T11:31:42.483 回答
0

在回答有关放置 session_destroy() 的问题之前,您可能已经知道 unset($_SESSION['username']) 和 session_destroy 之间的区别。如果你想销毁整个注册会话,那么你可以使用 session_destroy,如果你想销毁特定的注册会话,那么你应该 unset($_SESSION['username'])。对于你的答案,在你的注销页面中写下下面的代码:

<?php
session_start();
session_destroy();//destroy all registered session
header('location:login.php');
?>

希望这会奏效

于 2013-06-27T11:55:18.697 回答
0

通常我们在 logout.php 页面中添加关闭会话的代码,然后重定向到登录页面。logout.php 页面有以下几行

<?php
session_start();
session_destroy();
header('location:login.php');
?>
于 2013-06-27T13:55:31.480 回答