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