可以';t让ajax在localhost上调用requireonce才能工作


Can't get require_once called by ajax on localhost to work

我快疯了。

我在本地有一个简单的网站,带有联系人表单功能,只需PHP即可完美工作。

现在我想通过AJAX调用它,但由于相对路径的原因,我总是会出错。

问题是,ajax调用的php文件有两个require_one,这在那时是不起作用的。

我知道我应该使用绝对路径来实现它,我尝试了不同帖子建议的不同方法,但都导致了错误。

我试过使用

require_once __DIR__ . 'app/config/settings.php';

我在index.php中使用define('ROOT_SYS',dirname(__FILE__).'/');进行ajax调用,并在php文件中有如下需求:require_once ROOT_SYS . 'class/model/contactForm.php';

许多其他方法,如本问题中推荐的PHP,包括最佳实践问题,但都没有成功。我让它们都在php端工作,但当我使用ajax时,它总是会导致一个错误,比如:

注意:在G:''examplep''htdocs''website.de''app''class''controller''contactForm.php中使用未定义的常量ROOT_SYS-假定为"ROOT_SYS"
警告:require_one(ROOT_SYSclass/model/contactForm.php):无法打开流:在G:''examplep''htdocs''website.de''app''class''controller''contactForm.php中没有这样的文件或目录
致命错误:requireonce():无法在G:''xamp''htdocs''website.de''app''class''controller''contactForm.php6
上打开所需的ROOT_SYSclass/model/contactForm.php(include_path='.;G:''xamplep''php''PEAR')

警告:require_one(app/class/model/contactForm.php):无法打开流:在G:''examplep''htdocs''website.de''app''class''controller''contactForm.php中没有这样的文件或目录6

致命错误:requireonce():无法在G:''xamp''htdocs''website.de''app''class''controller''contactForm.php6
行打开所需的"app/calass/model/contactForm.php"(include_path='.;G:''xamplep''php''PEAR')

常量未定义,因为它未包含在内,或者打开流失败。

我的意思是,必须有办法在被调用方的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';

必须有某种方法使其工作,最好是使用在本地和Web服务器上工作的设置。

我知道这是一本很值得阅读的书,所以谢谢你抽出时间!!

使用__DIR__是可行的方法。你应该详细阐述一下这句话:

require_once __DIR__ . 'app/config/settings.php';

我想你只是错过了/,因为__DIR__会给你一条没有后面/的路径。应该是:

require_once __DIR__ . '/app/config/settings.php';