我有一个使用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
始终具有相同的值。这是一个很好地展示问题的场景:
我在文本字段中输入'455'并单击button1。 test1.php
回应'455'。
我点击button2。 test2.php
回应'455'。
我在文本字段中输入'324',然后单击button1。 test1.php
回应'324'。
我点击button2。 test2.php
回应'455'。我期待'324'。
现在test2.php
将有'455'作为整个会话$_SESSION['testVar']
的值,我无法更改它。有谁知道这里发生了什么事?