如果我解释得好,这应该是一个简单的。
我正在尝试创建一个网页,当用户输入名称时会话开始,名称会不断显示,直到用户按下注销按钮;哪个应该结束会议。我得到的最接近的是:
<if (isset($_POST['name'])) {
$_SESSION['name'] = $_POST["name"];
echo "<input type='submit' name='logout' method='logout' value='Log out'>";
echo "</form>";
echo "</h1>";
echo "</div>";
if(isset($_POST['logout']) && ($_POST['logout'] == "Log out")) {
session_destroy(); }
但它不会结束会话,并且一旦输入,名称将不断显示。即没有办法结束会议。
如果您需要更多解释或更多代码需要了解,请告知我们。非常感谢任何帮助。
答案 0 :(得分:1)
您可以按session_destroy()
更改unset($_SESSION['name'])
,如下所示:
if (isset($_POST['name'])) {
$_SESSION['name'] = $_POST["name"];
echo "<input type='submit' name='logout' method='logout' value='Log out'>";
echo "</form>";
echo "</h1>";
echo "</div>";
if(isset($_POST['logout']) && ($_POST['logout'] == "Log out")) {
unset($_SESSION['name']);
}
}
答案 1 :(得分:0)
使用session_unset()
销毁会话中的所有已注册变量,如果要取消设置name
等特定变量,请使用unset($_SESSION['name'])
不要用unset($_SESSION)
取消整个$ _SESSION,因为这将禁用通过$ _SESSION超全局注册会话变量。
答案 2 :(得分:0)
您可以尝试在session_destroy()之后添加对session_commit()的调用;
答案 3 :(得分:0)
下面的代码处理Logout超链接,因此它创建全局变量logout并取消会话
<a href="?logout">Log out</a>
<?php
if(isset($_GET['logout'])) {
session_unset();
}
?>