我的网站有以下文件夹结构:
Admin/
Tech/
index.php
classes/
include/
core/
除了我尝试从Admin / index.php
调用以下代码时,一切似乎都有效<?php
#including our init.php
require '../core/init.php';
$general->logged_in_protect();
?>
由于某种原因,我收到以下错误。我无法弄清楚该怎么做才能修复它,或者它是否可以修复它。
core / init.php文件包含以下代码:
<?php
#starting the users session
session_start();
require 'include/database.php';
require 'classes/users.php';
require 'classes/general.php';
$users = new Users($db);
$general = new General();
$errors = array();
?>
我收到的错误:
PHP Warning: require(include/database.php): failed to open stream: No such file or directory in
有人可以帮帮我吗?
答案 0 :(得分:1)
你可能只需要:
require '../include/database.php';
require '../classes/users.php';
require '../classes/general.php';
但是如果你使用了很多相对路径,它可能会很快变得混乱,所以你可能想要考虑使用你的基本目录(例如你也可以使用变量或常量):
require $_SERVER['DOCUMENT_ROOT'] . '/include/database.php';
require $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
require $_SERVER['DOCUMENT_ROOT'] . '/classes/general.php';
答案 1 :(得分:0)
如果您使用相对于当前脚本位置的路径,请执行以下操作:
<?php
require(dirname(__FILE__).'/../core/other.inc');
...
?>
无论include_path
PHP ini设置如何,您始终都可以控制它。
在您的情况下,您应该具备以下条件:
<?php
#including our init.php
require(dirname(__FILE__).'/core/init.php');
$general->logged_in_protect();
?>
和core/init.php
将如下所示:
<?php
#starting the users session
session_start();
require(dirname(__FILE__).'/../include/database.php');
require(dirname(__FILE__).'/../classes/users.php');
require(dirname(__FILE__).'/../classes/general.php');
$users = new Users($db);
$general = new General();
$errors = array();
?>
希望这有帮助。