我有许多包含多个文件的文件,如下所示,
File1
包含在File2
,然后File2
在File3
现在我想site_user_conutry
从 File1 声明一个会话变量,然后我正在检查 File2,如果会话变量中没有任何值,那么只有我包含 File1.php
我已经添加session_start();
了每个 [age 但仍然无法正常工作??
请告诉我如何使会话在上述条件下工作。
在 File2 内
if ($_SESSION["site_user_country"] != null)
{
include_once(File3);
}
在第一行代码中只执行一次 session_start。
文档说:从版本 4.4.3 开始,在会话已经启动时调用 session_start() 将导致 E_NOTICE 级别的错误。此外,第二个会话开始将被忽略。
如果 file1 包含在 file2 中,则 file2 中的代码在 file1 之前完成。因此,如果您在 file1 中声明某些内容,则可能在 file2 中看不到(取决于代码...),无论如何这不是现代的 pf php 编程方式。(见 oo 和 __autoload)
你如何设置会话变量?您应该尝试像这样设置它:
$_SESSION['site_user_conutry'] = 'United-Kingdom';
您是否将 session_start() 放在文档的最顶部,或者至少在输出任何信息之前?
假设您包含具有代码执行而不是函数的文件。
在第一次迭代中,必须在 File2 上的代码之前执行包含 File1 并设置会话变量的代码。
在接下来的迭代中,会话将为您保存这些值。
要设置会话变量,请使用 $_SESSION 全局数组。
$_SESSION["name"] = "value";