php base64_decode函数在实时服务器上运行不正常

时间:2013-01-02 08:00:10

标签: php html

我无法调试我的代码有什么问题。 这就是我正在做的事情:

对于Ajax查询,我设置了一个会话变量:sessiontoken,我编码和解码以确保请求来自正确的会话/页面,如下所示,下面的代码出现在每个页面上,然后在javascript中我回显此变量并在ajax调用中使用:

我的问题是,虽然脚本在本地服务器(xampp)上的每个页面上都能正常工作,但在实时服务器上它会产生问题。 当我在实时网站上登录时,在主页上解码的值正确地显示在javascript函数中,但是当我点击myprofile的链接或转到任何其他页面时,解码的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>

1 个答案:

答案 0 :(得分:0)

我将PHP版本升级到5.3,它解决了我的问题。