我想在不重新加载页面的情况下将用户注销,只需更新一些div。这就是我所拥有的,但显然不起作用。只有在重新加载页面后,会话才会取消设置。
$.ajax({
url: "logout.php",
method: "post",
data: "account_type=twitter",
success: function () {
/*****do something***********/
}
});
logout.php中的
<?php
session_start();
if(isset($_POST['account_type']) && $_POST['account_type'] == "twitter") {
unset($_SESSION['twitterId']);
unset($_SESSION['twitterName']);
unset($_SESSION['twitterPic']);
unset($_SESSION['twitterUrl']);
unset($_SESSION['access_token']);
unset($_SESSION['token_oauth']);
header("Location: index.php");
}
?>
一些帮助将不胜感激。谢谢!
答案 0 :(得分:1)
从技术上讲,你在做什么并没有错。
问题是期望注销会改变已经显示的内容。
当您通过ajax调用将用户注销时,旧的登录内容仍将显示在页面上,直到您实际重新加载整个页面或重新加载显示已登录内容的div的内容为止
例如,如果您有一个显示You are logged in
的框,只需通过ajax注销将不会更改该内容,直到您使用ajax重新加载该div或重新加载整个页面,以便服务器然后告诉页面您是没有登录。
已经发送给用户的内容将始终保持原样,除非您在注销后使用ajax或通过重新加载页面上的所有内容进行专门更改。
答案 1 :(得分:0)
<?php
session_start();
if(isset($_POST['account_type']) && $_POST['account_type'] == "twitter") {
session_destroy();
header("Location: index.php");
}
?>
答案 2 :(得分:0)
会话正在被ajax调用取消设置,但是你需要在成功注销ajax调用之后相应地操作div,比如隐藏用户名放置登录按钮或删除任何用户区....