在不同目录中的页面之间使用$ _SESSION

时间:2013-04-17 19:09:38

标签: php session

我想知道如何使用位于两个单独目录中的页面之间的会话传递内容。例如,如果我有以下代码,我需要添加什么才能使其正常工作?

第1页:目录\ directory1 \ directory2 \ Page1.php

session_start();

$_SESSION['example'] = '123';

第2页:目录\ dir1 \ dir2 \ Page2.php

session_start();

echo $_SESSION['example'];

3 个答案:

答案 0 :(得分:1)

如果这些网页在同一个域内投放,则您的代码应该有用。

答案 1 :(得分:1)

您不必在每个页面中session_start()。只需将其写入单个文件中,然后在要保存会话的页面之间共享该文件。

所以,如果你有page1.phppage2.php以及session.php你可以在page1.php中创建会话,并在第二页检查它,如:echo var_dump($_SESSION)和vise-反之亦然

答案 2 :(得分:1)

首先,检查是否正确设置了会话cookie。某些问题(例如已发送的标头)可能导致您的会话Cookie无法设置。

如果这项工作正常,您可能需要通过session_set_cookie_params

更改会话Cookie参数

通过将第二个参数(路径)设置为/,会话cookie对您网站的根目录和所有子目录都有效。

实施例

session_set_cookie_params(0, '/');

也可以在php.ini中或通过ini_set()设置相同的设置。见Session configuration

注意:

如果启用了session.autostart,我不确定这些设置是否有效,在这种情况下,可能已经在更改之前发送了cookie标头。