我遇到这个网站已经有一段时间了。到目前为止,我一直在查看不同用户提出的问题,并使用评论者提供的提示来解决我的问题和代码问题。可悲的是,我无法找到当前问题的相关帖子,因此我发布了我的第一个帮助主题。
我在我的应用程序中使用了'include.php'文件,其中包含了我项目的所有相关文件。该文件位于子目录'includes'中,因此其路径为'includes / include.php'。自从我开始编码直到我最后决定在我的代码中开始使用JQuery之后,一切正常。由于我对这两种语言都很陌生,所以当我尝试将某个PHP文件加载到我的一个HTML div中时,我遇到了一个恼人的问题。我不会花时间通过口头向你解释问题是什么,而是继续向你展示。
在我的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');
这里开始出现问题。从这一点开始,第一个'loadAdminMessageClass'中的'require_once'/includes/include.php'行不起作用。重新加载过程后,我的div中出现下一个错误:
警告:require_once(/includes/include.php)[function.require-once]:无法打开流:第8行的C:\ wamp \ www \ includes \ script_files \ loadAdminMessageClass.php中没有此类文件或目录
致命错误:require_once()[function.require]:在C:\ wamp \ www \ includes \中打开所需的'/includes/include.php'(include_path ='。; C:\ php5 \ pear')失败第8行的script_files \ loadAdminMessageClass.php
我一直在寻找这个问题多年,没有什么比我想要的答案更好。好像当我从JQuery调用'loadAdminMessageClass.php'文件时,它不会按照它应该的方式处理'require_once'调用。
-
我很高兴能回应我的这个问题。感谢。
答案 0 :(得分:3)
我真的很惊讶这条线有效:
require_once "/includes/include.php";
这是指服务器文件系统的根目录。你错误地认为PHP在构建包含路径时会尊重你网站的文档根目录。
您必须明确检索$_SERVER['DOCUMENT_ROOT']
以找出网站的运行位置(通常为/var/www/mywebsite
或/home/user/public_html
),然后从那里构建路径:
define('ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
require_once ROOT_PATH.'/includes/include.php';
答案 1 :(得分:1)
你应该尝试这个
require_once dirname(__FILE__) . '/includes/include.php';