1

我有许多包含多个文件的文件,如下所示,

File1包含在File2,然后File2File3

现在我想site_user_conutry从 File1 声明一个会话变量,然后我正在检查 File2,如果会话变量中没有任何值,那么只有我包含 File1.php

我已经添加session_start();了每个 [age 但仍然无法正常工作??

请告诉我如何使会话在上述条件下工作。

4

4 回答 4

2

在 File2 内

if ($_SESSION["site_user_country"] != null) 
{
    include_once(File3);
}
于 2009-05-29T21:50:19.783 回答
2

在第一行代码中只执行一次 session_start。

文档说:从版本 4.4.3 开始,在会话已经启动时调用 session_start() 将导致 E_NOTICE 级别的错误。此外,第二个会话开始将被忽略

如果 file1 包含在 file2 中,则 file2 中的代码在 file1 之前完成。因此,如果您在 file1 中声明某些内容,则可能在 file2 中看不到(取决于代码...),无论如何这不是现代的 pf php 编程方式。(见 oo 和 __autoload)

于 2009-05-29T21:56:56.150 回答
1

你如何设置会话变量?您应该尝试像这样设置它:

$_SESSION['site_user_conutry'] = 'United-Kingdom';

您是否将 session_start() 放在文档的最顶部,或者至少在输出任何信息之前?

于 2009-05-29T21:50:48.690 回答
1

假设您包含具有代码执行而不是函数的文件。

在第一次迭代中,必须在 File2 上的代码之前执行包含 File1 并设置会话变量的代码。

在接下来的迭代中,会话将为您保存这些值。

要设置会话变量,请使用 $_SESSION 全局数组。


$_SESSION["name"] = "value";
于 2009-05-29T21:53:09.263 回答