【发布时间】:2014-06-02 23:59:41
【问题描述】:
我有一个 php 脚本,它检查会话值是否与 db 值匹配,如果不匹配,则用户退出并转到主页。目前,当通过打开每个页面(它作为包含添加)触发脚本时,这工作正常,但我试图使用带有 ajax 的 jQuery setInterval 函数调用它
jQuery
setInterval(function() {
$.ajax({
type: "POST",
url:"includes/multi_check.php"
});
}, 5000); //5 seconds
php
$id = $_SESSION['user_id'];
$sql = "SELECT * FROM user WHERE userID = '$id'";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
$row = mysqli_fetch_array($result);
$db_token = $row['session_token'];
$taken = $row['taken_over'];
if($_SESSION['session'] != $db_token){
$_SESSION['taken_over_by'] = $taken;
header("location:http://www.x-rayqa.co.uk/index.php");
}
在控制台中监视调用时,调用正在工作,如果我在 if 参数中回显一个值,则在条件为真时显示正确的值,但我无法使页面重定向。它完全忽略了标头重定向。
另外,当使用手动触发的方法重定向用户时,运行 jQuery 函数的会话不会传递到主页,只要我注释掉 jQuery 方法,手动方法就会按预期工作
【问题讨论】:
-
你能检查一下你的ajax调用返回了什么吗?也许会成功:function(data) { console.log(data); } 在你的 ajax 调用中......确保一切都从你的 php 页面返回就好了
-
可能缓存了 jQuery 响应?检查您的网络流量
标签: javascript php jquery ajax