托管到服务器时,php会话变量值为null

时间:2012-07-18 13:54:30

标签: php session session-variables shared-hosting

我在会话中遇到一个奇怪的问题..这是在我的本地计算机上的WAMP服务器中工作..我的问题是在美国托管到服务器但它无法正常工作..

我这样做:

session_start();
$_SESSION['test'] = 'testing login..';

在我正在做的另一个页面中:

session_start();
echo('my session value is : '.$_SESSION['test']);

但我只是得到了 我的会话值是:

我的会话值未设置..

我检查了服务器的cPanel中的session.save_path,它是/ tmp。

请帮忙.. 提前谢谢。

4 个答案:

答案 0 :(得分:2)

也许你的脚本已经死了,因为session_start失败且“已经发送了标题”?例如,如果您的测试机器和生产服务器不以相同的方式编码新行,则可能发生这种情况......

错误可能不会显示在您的生产服务器上,请尝试以下操作:

ini_set('display_errors', 1);
session_start();

看看你是否得到了有用的东西。

答案 1 :(得分:0)

检查session.save_path上的权限。该位置需要由Apache / httpd用户写入。

另请检查session.save_path是否包含任何sess_前缀文件。

答案 2 :(得分:0)

感谢所有的帮助。

我的问题是/ tmp文件夹中的安全权限。一旦它纠正了它的工作。

平均时间不要仅使用数字作为SESSION ID,(例如。$ _SESSION ['12345'])因为在linux托管中它不采用仅数字索引并跳过它。 (所以使用$ _SESSION ['ACS12345'])..

答案 3 :(得分:0)

php开始标记必须写在php文件的第一行。这种方法帮助我解决了这个问题。