全局变量保持覆盖会话变量

时间:2014-07-03 20:25:30

标签: php session

下面是一个简单的测试代码,我是根据我现在面临的错误制作的。

session_start();  
if(isset($_SESSION['views']))
$_SESSION['views'] = $_SESSION['views']+ 1;
else
$_SESSION['views'] = 1;

$views = "hi";
echo "views = ". $_SESSION['views']; 

从我认为$views$_SESSION['views']完全不同的东西。在本地测试中,脚本首先给出正确的响应,然后是1然后是2,然后是3,然后打开和继续。

该错误仅存在于ipage主机上,there相同的代码每次都会输出hi

我缺少什么?

1 个答案:

答案 0 :(得分:1)

是的,理论上$views$_SESSION['views']应该完全不同。但是,PHP中曾经有一个名为register_globals的设置。它在版本5.3.0中被标记为已弃用并已从版本5.4.0中删除,但是人们使用了相当多的东西,因为那时你不必担心超级全局和所有更多涉及的东西而只能几乎可以打字。

反正。尝试查看您的主机是否使用旧版本的PHP,以及是否在服务器上激活了此功能。我敢打赌。最简单的方法:将以下脚本放在服务器上并搜索register_globals

<?php
phpinfo();