是否可以点击按钮运行session_destroy();
?
我理解通常的用法是创建一个专用于它的页面,例如logout.php
并将按钮链接到该页面,但为了简单起见,它不仅可以通过按钮点击运行它吗?
答案 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
文件的需求