PHP包含路径服务器500错误

时间:2017-05-19 13:20:18

标签: php

我在使用基本的php include时遇到了非常令人困惑的问题。

我目前正在开发网站的第2版,所以我的index.php位于

www.mywebsite.co.uk/v2/index.php

我有一个位于

内的数据库配置文件
www.mywebsite.co.uk/v2/assets/database.php

我有一个位于

内的表单操作
www.mywebsite.co.uk/v2/assets/actions/action.php

我需要在action.php文件中包含我的database.php文件,但我似乎找不到合适的包含路径。

我试过

include "database.php";
include "assets/database.php";
include "../assets/database.php";
include "../../assets/database.php";
include "../database.php";
include "../../database.php";
include "../../../database.php";
include "../../../assets/database.php";

我甚至开始使用

include(dirname(__FILE__)."../database.php");

但无论我尝试什么,都找不到包含文件,我的操作页面返回500服务器错误。

我做错了什么?

更新

我遇到了一个最奇怪的问题,我真的无法弄清楚它们是怎么回事。

我正常包含我的所有文件,并且它们都运行良好,但只要涉及到表单操作文件,就包括拒绝工作。

我在网站的标题中包含了一个数据库OOP文件,效果很好。然后,我有一个表单,使用POST提交到一个操作文件,一旦我将数据库包含在我的操作文件中,它就拒绝工作。它只有在我使用

时才有效
dirname(__FILE__)."my/path"

操作文件的位置与使用include函数的所有其他文件位于同一文件夹中,因此路径绝对正确,但每当我尝试包含在我的操作文件中时,我都会收到500服务器错误,除非我使用dirname( FILE )。“my / path”方法。

有什么想法吗?

更新2

出于某种原因,我必须在同一位置为2个不同的文件使用不同的包含路径。

例如database.php,home-slider.php和includes.php都在同一个目录中。如果我想让database.php访问包含文件,我可以使用

include "assets/includes.php";

但如果我想使用home-slider.php页面访问包含文件,我必须使用

include "../assets/includes.php";

即使它们都在同一个目录中?

1 个答案:

答案 0 :(得分:0)

如果这是您的文件结构:

v2/
|
|-- assets/
|      |
|      |-- actions/
|      |      |
|      |      |-- action.php
|      |
|      |-- database.php
|
|-- index.php

然后在include '../database.php'上添加action.php即可。如果不是,那么您的PHP文件可能有问题。您也可以使用require '../database.php';来查看给出的错误,因为它会抛出有关database.php的错误。