在同一域

时间:2017-06-22 10:30:26

标签: php href

我有一个用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清楚地知道会话是什么,显然可以写入但不想打球?

任何线索?

1 个答案:

答案 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

最后一行向我解释了为什么它不起作用。 现在很有意义。