在服务器从5.2.17升级到5.3.13时,我的$ _SESSION变量不再在页面之间传递。
在第1页中,我设置$ _SERVER [“isLoggedIn”] = true,在第2页我正在测试,但发现所有$ _SESSION变量都未设置。
我已经删除了一个简单示例的代码,如下所示: 的login.html:
<?php
session_start();
$_SESSION["isLoggedIn"] = true;
$_SESSION['visitorLanguage'] = "en" ;
if ($_SESSION["isLoggedIn"] == true ){
print "<p> Log in successful. </p>";
print "<script>window.location='index.html? lang=".$_SESSION['visitorLanguage']." '</script>";
}
?>
的index.html:
<?
session_start();
echo "Version: ".phpversion();
echo " Session Data: ";
echo "Is logged in: " . $_SESSION["isLoggedIn"]. "<br/>";
echo "Visitor Language: " . $_SESSION["visitorLanguage"];
?>
返回:
Version: 5.3.13 Session Data: Is logged in:
Visitor Language
and in 5.2:
Version: 5.2.17 Session Data: Is logged in: 1
Visitor Language: en
答案 0 :(得分:0)
类似的问题只花了我3天左右,请确保在php.ini或会话变量中注释掉 request_order = None 或设置为“ GPCS ”不会被添加到超级全局数组REQUEST。
答案 1 :(得分:-1)
据我所知,一个没有以.php结尾的名字的页面根本不应该进入php处理器。它在5.2中工作比在5.3中不起作用更神秘。简而言之,制作你的索引页面index.php,一定要删除服务器上的index.html(也在本地,你不希望它再次上传)......一切都应该好。要回答您的问题,安装5.2是一个安装,5.3的安装是其他安装。可以为另一个设置不同的选项。