gpt4 book ai didi

php - 在外部文件夹 : only works once 中加载变量

转载 作者:搜寻专家 更新时间:2023-10-31 22:16:02 24 4
gpt4 key购买 nike

我成功地使用以下脚本在我站点的其他文件夹中加载 session 变量:

<?php
require('../includes/configure.php');
ini_set('include_path', DIR_FS_CATALOG . PATH_SEPARATOR . ini_get('include_path'));
chdir(DIR_FS_CATALOG);
require_once('includes/application_top.php');
?>

此脚本允许我在之后立即加载我的标题模板,其中包括我想要的变量输出:

<?php
include('includes/templates/header.php');
?>

所以,问题是这个脚本在其他三个场景(CMS 系统)中完美运行......对于我正在处理的这个特定场景,它只在第一次运行时运行。它确实成功地正确加载了我的 header 和变量,但是下次加载页面时它不会工作

任何人都可以提供解释/解决方案吗?谢谢!

最佳答案

当您回答“它不会工作”意味着“我得到一个空白页面”的评论时,您应该做的第一件事是启用 PHP 的错误报告。放在脚本的开头:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'On'); // shows in the web page instead of just logs

然后您的页面可能不会保持空白,并且您会收到有用的错误消息。

其次,您应该将include 替换为require。这样,如果 PHP 找不到该文件,就会出现 fatal error 。根据内容,require_once 可能更适合。

然后,您应该谨慎对待 include 中的相对路径。它们并不直接与 include 所在的脚本相关。 PHP 首先尝试使用包含路径和调用脚本的路径(为此 HTTP 查询首先启动的文件)。建议使用完整路径:

require dirname(dirname(__FILE__)) . '/includes/configure.php';
require dirname(__DIR__) . '/includes/configure.php'; // PHP5.3 only

最后一件事:在处理应用程序常量 时,不要使用表达式 session 变量。 “ session ”在 PHP 和一般的 Web 开发中具有特殊含义。

关于php - 在外部文件夹 : only works once 中加载变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6162331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com