Php 不使用脚本闪存的表单注销
好吧,我不知道怎么在谷歌上说,所以我来了Php 不使用脚本闪存的表单注销,php,web,Php,Web,好吧,我不知道怎么在谷歌上说,所以我来了 我有一个表单,其中包含一个用于注销脚本的提交按钮。当您单击它时,如果您观看url栏,您可以看到表单将带您到哪里,直到更改对会话变量生效后my javascript重定向启动。我不知道facebook和其他人是如何做到这一点的,而不改变页面并在注销完成时重定向您。他们向注销脚本发送ajax调用 如果您使用jQuery,例如: jQuery.ajax({ "url":"http://www.myurl.com/logout.php", "data
我有一个表单,其中包含一个用于注销脚本的提交按钮。当您单击它时,如果您观看url栏,您可以看到表单将带您到哪里,直到更改对会话变量生效后my javascript重定向启动。我不知道facebook和其他人是如何做到这一点的,而不改变页面并在注销完成时重定向您。他们向注销脚本发送ajax调用 如果您使用jQuery,例如:
jQuery.ajax({
"url":"http://www.myurl.com/logout.php",
"dataType":"json",
"success":function(response){
if(response.loggedout) {
window.location ="http://www.myurl.com/someotherpage.php"
}
}
});
当php被用作后端时,注销脚本所要做的就是注销用户,并返回类似于
{“loggedout”:true}
如果用户已注销(如果不是,则为false而不是true)
在php中,您可以通过
$response = array("loggedout"=>true);
echo json_encode($response);
如果不使用jQuery(如纯javascript),则必须构建XHR请求并响应返回(google xmlheaderrequest)您还可以在其余应用程序运行之前销毁会话 由于PHP是无状态的,它以前不知道存在会话,因此应用程序继续运行,假设用户是“来宾” 主页示例:
<?php
session_start();
if(!empty($_GET['logout'])) session_destroy();
if(!empty($_SESSION['name'])) echo "Hello, {$_SESSION['name']}!";
else echo "You are not logged in, please login!";
?>
这是有道理的,从没想过。感谢您的快速回复。添加的示例使用jQuery javascript库,因为与纯javascript相比,进行ajax调用更容易,不过我建议您学习进行ajax调用的纯javascript方法,以积累您在这方面的知识。