我无法在设置它们的页面上使用会话变量,它们就像非会话变量一样.我在其他六个类似的论坛上发现了一个类似的问题,但在其他案例中的答案总是不适用.
这是我的文件:
sess1.php
User ID is: " . $_SESSION['userid'] . "" ; echo "Another variable is: " . $_SESSION['textvar'] . "
" ; ?>Go to the next page.
并且, sess2.php
The userid session variable is: " . $_SESSION['userid'] . ""; echo "The other session variable is: " . $_SESSION['newvar']. "
"; ?>
每种情况下的浏览器输出是:
sess1.php
用户ID是:10333
另一个变量是:TextVariable
转到[下一页].
并且, sess2.php
userid会话变量是:
另一个会话变量是:
转到[最后一页].
有些事情不是:
我在两个文件的顶部都有session_start().
变量目录是可写的,并且会话变量显示在那里.(我有大约一百个名为sess_b62的小文件,里面有这个:'userid | i:10333; textvar | s:12:"TextVariable";'.)
phpinfo()告诉我正在正确读取php.ini文件,并将生命周期设置为默认值0,即直到浏览器关闭.
我的智慧结束了.有什么建议?
非常感谢.
session_register()
不是必需的,可能会导致问题.阅读文档session_register()
- 它旨在使用现有变量分配会话变量.
从这里:
好吧,session_register()告诉PHP应该将某个全局变量视为会话变量.这意味着在脚本执行结束时(通常发生会话数据写入时),将使用当前启用的会话处理程序写入该全局变量的结果值.
我认为这是您遇到的问题.在脚本执行结束时,会话变量被覆盖.