2013-10-29 46 views
0

我从来没有遇到过这个问题,我一直试图解决这个问题很长一段时间了。在他们创建的目录之外访问会话变量

我在main.php页面上设置了会话变量,当我在根目录的页面上做了var_dump()(注意路径)时,它打印出一个空数组。

它似乎只在它们创建的同一个目录中选取会话变量。但是,我需要至少访问下面提到的两个目录中的会话变量。这可能吗?我很感激有关如何完成此任务的任何建议。

重要的是我对一个目录中的会话变量所做的更改反映在另一个目录中(即未设置,更新值等)。

编辑:所有会话都在同一个父目录中启动,唯一的问题是很多会话变量都在子目录中创建,然后需要在父(根)目录中访问。

非常感谢提前!

动作/搜索/ main.php

session_start(); 
$_SESSION['id'] = 22; 
$_SESSION['name'] = 'Bob'; 

manageajax.php

session_start(); 

if(isset($_GET['handleSess']) && $_GET['handleSess']==1){ 
    //do stuff with session vars 
    var_dump($_SESSION); // output array(0) {} 
} 

回答

0

如果我没有记错的话,你必须设置会话/在你的域的根饼干(MYDOMAIN .com /),以便您可以从根路径中的任何位置访问它们。你在什么路径(或文件)开始会话?

+0

感谢您的回复。我真的不明白你的答案。它更适合作为评论。看到我原来的帖子,所有的会话都是在同一个父目录下启动的,唯一的问题是很多会话变量都是在子目录下创建的,然后需要在父(root)目录下进行访问。你可以请我展示一个解决这个问题的例子吗? – AnchovyLegend

+0

如果您想从根目录访问它们,则需要在根目录中创建您在子目录中创建的目录!或者更好,你在索引(或根目录)中启动会话,然后向其中添加变量,如果不需要,不要创建其他会话。 –

+0

这不起作用。我正在研究一个非常大的应用程序,我无法访问正在启动会话的位置,或者阻止创建多个会话。我正在研究你的第一个建议,但是你删除了它...... – AnchovyLegend