使用 require() 不加载 php 文件

Using require() doesn't load php file

//index.php

    if(isset($_GET["action"])){
        if($_GET["action"]=="add_admin"){
            require("../gbl_admin/admin_header.php");
            require("../gbl_admin/admin_add.php");
        }
    }

//admin_header.php

    require("../gbl_admin/db/db_ini.php");
    require("../gbl_admin/classes/dbmgmt.php");
    require("../gbl_admin/configuration/passwordhash.php");

我在 dbmgmt 中创建了一个来处理数据库,但是在通过 index.php 调用它并提交表单后,它给我 "Creating default object from empty value " 错误以及来自 [=17] 的 "Call to undefined function create_hash()" 错误=] 文件。这意味着 index.php 未加载文件。我该如何解决这个问题??

我建议您始终使用绝对路径 __DIR__,或者对于低于 PHP 5.3 的版本,请使用 dirname(__FILE__)

这意味着您的包含应该遵循

require(__DIR__."/../gbl_admin/admin_header.php");

但是,由于您正在使用 require,并且您说不需要这些文件,唯一合乎逻辑的解释是您的 if 条件不满足。

尝试:

if(isset($_GET["action"])){
        if($_GET["action"]=="add_admin"){
            require("../gbl_admin/admin_header.php");
            require("../gbl_admin/admin_add.php");
        }else{
           die('error 1');
        }
}else{
    die('error 2');
}