【问题标题】:How do I destroy a session by clicking a button?如何通过单击按钮来销毁会话?
【发布时间】:2015-01-18 19:21:21
【问题描述】:

如果我解释清楚的话,这应该很容易。

我正在尝试创建一个网页,当用户输入名称时会话开始,名称不断显示,直到用户按下注销按钮;这应该结束会话。我最接近的是:

<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(); }

但它不会结束会话,并且输入后会不断显示名称。即无法结束会话。

如果您需要更多解释,或者需要更多代码来理解,请告诉我。非常感谢任何帮助。

【问题讨论】:

  • 我认为不需要检查 $_POST['logout'] 值,但请尝试使用 unset($_SESSION);
  • 尝试去掉“&& ($_POST['logout'] == "Log out")”。
  • 你确定if里面的代码确实已经到达了吗?
  • method='logout' 那是什么? <form>。你的表单标签在哪里?
  • 我注意到你错过了一个缩进,其中包含&lt;if (isset($_POST['name'])) { 删除不应该在那里的&lt;。您需要出示您的完整代码。

标签: php forms session logout destroy


【解决方案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']); 
    }
}

【讨论】:

    【解决方案2】:

    使用session_unset() 销毁会话中所有已注册的变量,如果您想取消设置特定变量,例如name,请使用unset($_SESSION['name'])

    不要使用unset($_SESSION) 取消设置整个 $_SESSION,因为这将禁用通过 $_SESSION 超全局变量注册会话变量。

    【讨论】:

      【解决方案3】:

      您可以尝试在 session_destroy() 之后添加对 session_commit() 的调用;

      【讨论】:

        【解决方案4】:

        下面的代码处理了注销超链接,因此它创建了全局变量 logout 并取消了会话

            <a href="?logout">Log out</a>
            <?php
            if(isset($_GET['logout'])) {
            session_unset();
            }
            ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-11-11
          • 2020-04-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多