我在让PHP会话正常工作时遇到问题。我有以下两页作为测试。我希望sess2.php输出' bing'但它没有做。
sess1.php
<?php
session_start();
$_SESSION['usr'] = 'bing';
echo '<a href="sess2.php">go</a>';
sess2.php
<?php
session_start();
echo $_SESSION['usr'];
我错过了什么吗?
答案 0 :(得分:1)
有var / lib / php / session文件夹写的权限吗?
有时执行apache的用户/组与root用户/用户/组不同,这取决于特定的内置配置。
尝试将chmod 777添加到您的会话存储路径,您可以执行session_save_path()来查看特定文件夹或查看您的phpinfo()
答案 1 :(得分:0)
尝试修改这样的文件以查看问题所在:
sess1.php
<?php
session_start();
$_SESSION['usr'] = 'bing';
echo '<a href="sess2.php">go</a>';
echo '<pre>' . print_r($_SESSION, true) . '</pre>'
sess2.php
<?php
session_start();
echo '<pre>' . print_r($_SESSION, true) . '</pre>'
如果您在$_SESSION
看到空sess1.php
,那么打开和/或设置会话本身的问题;如果sess1.php
没问题,但sess2.php
已空$_SESSION
,那么在请求之间传递会话会出错(例如已停用的Cookie)。无论哪种方式,这将为您提供问题所在的线索,并从那里找出解决方案。