我有一个用PHP7编写的网页,它使用会话变量在页面之间传递数据。到目前为止,这在使用重定向Header:type命令时起作用,但对于我的生活,我在使用链接时无法使其工作。
当我的应用程序转到使用此页面的页面时
<a class="" href="page2.php" accesskey="2" title="Page2"></a>
无法访问任何会话变量。
我在page2.php上运行测试,看看发生了什么,并得到了这些结果:
The session status is: 2
Session id is 90dg0e5opfrj8ojqvcm11okif7
Cookie domain is
session file: /var/lib/php/sessions/sess_90dg0e5opfrj8ojqvcm11okif7 size: 174
Displaying GLOBALS:
我检查了sessions文件夹,文件确实在那里,并且确实有会话变量,是的,我在页面顶部有一个session_start。事实上,我尝试了它并没有在那里,它没有任何区别。
我还在调用页面上检查会话ID是否相同而且是。
我完全难过,无法弄清楚为什么,即使PHP清楚地知道会话是什么,显然可以写入但不想打球?
任何线索?
答案 0 :(得分:0)
抱歉,我刚才意识到我在看错了。
当我检查$ _SESSION数组时,它们就在那里。 我正在寻找的是它遗忘的全局变量。
即使在上一页中定义全局也无法始终有效。
我已经读过全局变量是一件坏事,所以我要检查我使用全局变量的替代方法。
我在Stackoverflow中看到了这个,它解释了什么是错误的
global variables in php not working as expected
$ var =&#34; test&#34 ;; //这可以在所有其余代码中访问,甚至包含一个
function foo2()
{
global $var;
echo $var; // this print "test"
$var = 'test2';
}
global $var; // this is totally useless, unless this file is included inside a class or function
最后一行向我解释了为什么它不起作用。 现在很有意义。