我在这里几乎疯了。
我在本地有一个简单的网站,其联系表单功能与PHP完美配合。
现在我想通过AJAX调用它,因为相对路径,我总是会出错。
问题是,ajax调用的php文件有两个require_once,然后就不行了。
我知道我应该使用绝对路径来使其工作,我尝试了不同帖子建议的不同方法,但都会导致错误。
我尝试使用
require_once __DIR__ . 'app/config/settings.php';
我在index.php中使用define('ROOT_SYS',dirname(__FILE__).'/');
进行ajax调用,并在php文件中使用require,如下所示:
require_once ROOT_SYS . 'class/model/contactForm.php';
以及此问题PHP include best practices question中推荐的许多其他方法,但没有成功。我让他们都在php方面工作,但是当我使用ajax时,它总是会导致错误:
注意:使用未定义的常量ROOT_SYS - 在 G:\ xampp \ htdocs \ website.de \ app \ class \ controller \ contactForm.php 中假设为“ROOT_SYS”在线 6
警告:require_once(ROOT_SYSclass / model / contactForm.php):无法打开流: G:\ xampp \ htdocs \ website.de \ app \ class \ controller中没有此类文件或目录\ contactForm.php 在 6 行上
致命错误:require_once():在 G:\ xampp中打开所需的'ROOT_SYSclass / model / contactForm.php'(include_path ='。; G:\ xampp \ php \ PEAR')失败\ htdocs \ website.de \ app \ class \ controller \ contactForm.php 在线 6
OR
警告:require_once(app / class / model / contactForm.php):无法打开流: G:\ xampp \ htdocs \ website.de \中没有此类文件或目录在线 6 的app \ class \ controller \ contactForm.php
致命错误:require_once():无法在 G中打开所需的'app / class / model / contactForm.php'(include_path ='。; G:\ xampp \ php \ PEAR'): \ xampp \ htdocs \ website.de \ app \ class \ controller \ contactForm.php 在线 6
未定义常量,因为它未包含或打开流失败。
我的意思是必须有办法让它在calles PHP文件中使用require_once
。
您有什么经验可以与我分享吗?我现在真的很绝望.. :(
我的文件夹结构如下:
app
-class
--controller
--helper
--model
--view
-config
-template
docroot
lib
system
-css
-js
index.php
我在localhost上的项目路径:
G:\xampp\htdocs\website.de
http://localhost/website.de/
我的ajax电话
$.ajax({
type: "POST",
url: "app/class/controller/contactForm.php",
data: content
})
在被叫contactForm.php中的要求我从一开始就拥有它们。
require_once 'app/class/model/contactForm.php';
require_once 'app/config/settings.php';
必须有一些方法才能使其正常工作,最好使用本地和网络服务器上的设置。
我知道这是很多东西,所以谢谢你的时间!!
答案 0 :(得分:1)
使用__DIR__
是可行的方法。你应该详细说明这个陈述:
require_once __DIR__ . 'app/config/settings.php';
我猜你错过了/
因为__DIR__
会给你一条没有尾随/
的路径。它应该是:
require_once __DIR__ . '/app/config/settings.php';