我不能调试我的代码有什么问题。下面是我正在做的:
对于Ajax查询,我设置了一个会话变量:sessiontoken,并且我编码和解码以确保请求来自正确的会话/页面,如下所示,下面的代码出现在每个页面上,然后在javascript中我回显这个变量并在Ajax调用中使用:
我的问题是,虽然脚本在本地服务器(xampp)的每个页面上都工作得很好,但在实时服务器上它正在给出问题。当我登录现场时,在主页上解码的值在javascript函数中正确显示,但是当我点击链接到我的个人资料或转到任何其他页面时,解码的sessiontoken值显示奇怪的字符。你能让我知道什么可能是问题,因为在本地它工作得很好。谢谢。
<?php
session_start();
if(!(isset($_SESSION['id']) && isset($_SESSION['username']))) {
header("location: index.php");
exit();
}
if(!isset($_SESSION['sessiontoken'])) {
$thisRandNum = rand(999999,99999999);
$_SESSION['sessiontoken'] = base64_encode($thisRandNum);
} else {
$thisRandNum = base64_decode($_SESSION['sessiontoken']);
}
?>
<html>
<head>
<script type="text/javascript">
function refreshWall() {
$.post('scripts/refreshlist.php', {thistoken: <?php echo $thisRandNum ?>},
function(data) {
}, "json");
}
</script>
</head>
<body>
</body>
</html>
我将PHP版本升级到5.3,它解决了我的问题。