是否可以运行session_destroy();点击按钮?

时间:2014-05-19 12:35:43

标签: php

是否可以点击按钮运行session_destroy();

我理解通常的用法是创建一个专用于它的页面,例如logout.php并将按钮链接到该页面,但为了简单起见,它不仅可以通过按钮点击运行它吗?

2 个答案:

答案 0 :(得分:2)

不直接。 session_destroy();在服务器上运行,在客户端上运行您的按钮。

你能做什么,就是在Button Click上对logout.php进行Ajax调用。

<强>客户端:

<script>
    $('#LogoutButton').click(function() {
        var request = $.ajax({
            url: "/path/to/logout.php",
            type: "GET"
        });

        request.done(function(msg) {
            alert("Logged Out");
        });

        request.fail(function(jqXHR, textStatus) {
            alert("Error on Logging Out");
        });
    });
</script>
<button id="LogoutButton">Logout</button>

<强> Logout.php

<?php
session_destroy();
?>

此致

答案 1 :(得分:1)

您可以将按钮包含在<form>元素中,然后将表单发布到同一页面,而不是AJAX答案。例如

<form action="" method="post">
    <input type="hidden" name="logout" value="true" />
    <button>Logout</button>
</form>

然后在你的PHP文件的头部:

if(isset($_POST['logout'])) {
    unset($_SESSION[/*your user variables here*/ ]);
    session_destroy();
}

这必须位于每个页面的首位,并且因为这样而不如AJAX答案那么整洁,但是会消除对logout.php文件的需求