我在使用基本的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";
即使它们都在同一个目录中?
答案 0 :(得分:0)
如果这是您的文件结构:
v2/
|
|-- assets/
| |
| |-- actions/
| | |
| | |-- action.php
| |
| |-- database.php
|
|-- index.php
然后在include '../database.php'
上添加action.php
即可。如果不是,那么您的PHP文件可能有问题。您也可以使用require '../database.php';
来查看给出的错误,因为它会抛出有关database.php的错误。