PHP include文件在JQuery调用后表现奇怪


PHP include file behaves strange after a JQuery call

自从我遇到这个网站已经有一段时间了。到目前为止,我一直在查看不同用户提出的问题,并使用评论者提供的技巧来解决我的问题和代码问题。遗憾的是,我无法找到与我当前问题相关的帖子,因此我发布了我的第一个帮助线程。

我在我的应用程序中使用和'include.php'文件,其中包括我的项目的所有相关文件。该文件位于子目录'includes'中,因此其路径为'includes/include.php'。一切都很好,因为我已经开始编码,直到我最后决定开始使用JQuery在我的代码。由于我对这两种语言都很陌生,所以在尝试将某个PHP文件加载到HTMLdiv中时遇到了一个恼人的问题。与其花时间口头向你解释问题是什么,不如直接展示给你看。

在我的PHP文件的顶部,我使用下面的代码来包含我的主包含文件:

require_once "/includes/include.php";

我的'include'文件的内容只是包含其余的文件,它是这样的:

require_once 'user.php';
require_once 'db.php';

这些文件一切正常。现在我有了一个不同的包含文件,一个脚本文件,我在代码中使用它来发布某个HTML脚本。我使用下面的代码将其加载到我的主PHP文件中:

<?php include '/includes/script_files/loadAdminMessageClass.php'; ?>

到目前为止一切都很好。当我尝试使用JQuery刷新某个div并重新加载相同的'loadAdminMessageClass'文件到该div时,问题开始了。这是我使用的代码行,以便重新加载div:

$('#div_adminMessage').load('/includes/script_files/loadAdminMessageClass.php');

问题开始了。从这一点开始,行'require_once '/includes/include.php'在第一个'loadAdminMessageClass'不起作用。下一个错误出现在我的div后重新加载过程:

警告:require_once(/includes/include.php) [function. php]C:'wamp'www'includes'script_files'loadAdminMessageClass.php on line 8

致命错误:require_once() [function。在C:'wamp'www'includes'script_files'loadAdminMessageClass.php第8行

中,打开所需的'/includes/include.php' (include_path='.;C:'php5'pear')失败

我一直在寻找这个问题多年,没有什么像我一直在寻找的答案。似乎当我从JQuery调用'loadAdminMessageClass.php'文件时,它不会以应有的方式处理'require_once'调用。

,

我很高兴能得到对我这个问题的答复。谢谢。

我真的很惊讶这一行能行:

require_once "/includes/include.php";

这是指服务器文件系统的根目录。在构建include路径时,你错误地认为PHP尊重你网站的文档根目录。

您必须明确检索$_SERVER['DOCUMENT_ROOT']以找出网站运行的位置(通常是/var/www/mywebsite/home/user/public_html),然后从那里构建路径:

define('ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
require_once ROOT_PATH.'/includes/include.php';

你应该试试这个

require_once dirname(__FILE__) . '/includes/include.php';