最近我把程序从一个虚拟主机商那里移到另外一个提供商的服务器上,都是linux服务器。以前这些php程序运行了很久,肯定没问题。但是移到新的空间里后,发现php的其它方面都很正常,就是session不起作用。
新的虚拟主机目录里有php.ini的文件,需要特别配置吗?比如要打开session功能之类(以前用的虚拟主机从来没有配置过,目录里也没有这个文件)
还是我其它地方出错了。为什么session不起作用了?程序没做任何修改。
用phpinfo看了新服务器,PHP Version 5.1.6,register_globals是off,session.auto_start是off
老服务器是PHP Version 4.3.11,register_globals是on,session.auto_start是off
如果仅对比两个服务器的session部分,完全是一样的。
已经尝试将新服务器的register_globals打开为On,但是依然session不出来。
直接写了一个简单的小程序,专门测试session,还是原服务器没问题,新服务器不行。而且是在打开register_globals情况下尝试的。
测试代码:
session_start();
session_register('abc');
$abc = $_SESSION['abc'];
$username = @$_POST['username'];
$abc['Cook']['UserName'] = $username ;
从前页输入一个username,给session存起来,下页点击一个简单的link,再翻一页,在第3页输出session
session_start();
$username = $abc['Cook']['UserName'];
echo $username;
新服务器没数据,老服务器没问题。
是怎么回事?这是否说明就是新服务器的php设置有技术问题?
但是又觉得不可能,因为新服务器的主机提供商在美国,是全球最大的服务商,有600万个企业用户,PC Magazine虚拟主机服务商排名第一
还是就是php5和php4的差别?如果是,这么改一下php5的php.ini文件呢?
谢谢指教!