PHP - 奇怪的会话变量行为

时间:2016-02-21 09:18:04

标签: php session

我有一个使用PHP 5.6.11开发的网站,我正在尝试在使用5.3.29的网络主机上部署,不幸的是我遇到了一些问题。在我的本地环境中,一切都按预期工作,但在Web服务器上,我无法更改会话变量的值。我制作了一些简单的测试脚本来重现问题:

testmain.php:

<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    </head>
    <body>
        <input type="text">
        <button onclick="callTest1();">button1</button>
        <button onclick="callTest2();">button2</button>

        <script>
            function callTest1() {
                var text = $("input").val();
                $.get("test1.php?text="+text);
            }

            function callTest2() {
                $.get("test2.php");
            }
        </script>
    </body>
</html>

test1.php:

<?php
session_start();
$_SESSION['testVar'] = $_GET['text'];
echo $_SESSION['testVar'];

test2.php

<?php
session_start();
echo $_SESSION['testVar'];

这里的问题是test2.php。无论我调用$_SESSION['testVar']多少次更改它,test1.php始终具有相同的值。这是一个很好地展示问题的场景:

  1. 我在文本字段中输入'455'并单击button1。 test1.php回应'455'。

  2. 我点击button2。 test2.php回应'455'。

  3. 我在文本字段中输入'324',然后单击button1。 test1.php回应'324'。

  4. 我点击button2。 test2.php回应'455'。我期待'324'。

  5. 现在test2.php将有'455'作为整个会话$_SESSION['testVar']的值,我无法更改它。有谁知道这里发生了什么事?

0 个答案:

没有答案