【问题标题】:Warning: include_once(../lib/Database.php): failed to open stream: No such file or directory警告:include_once(../lib/Database.php):打开流失败:没有这样的文件或目录
【发布时间】:2018-03-01 23:18:16
【问题描述】:

警告:include_once(../lib/Database.php):打开流失败:否 这样的文件或目录在 C:\xampp\htdocs\project\e-commerce\classes\Adminlogin.php 在第 4 行

警告:include_once():无法打开“../lib/Database.php” 包含(include_path='C:\xampp\php\PEAR') C:\xampp\htdocs\project\e-commerce\classes\Adminlogin.php 在第 4 行

致命错误:找不到类“数据库” C:\xampp\htdocs\project\e-commerce\classes\Adminlogin.php 在第 17 行

我该如何解决这个问题?我的代码在这里...

<?php
    include '../lib/Session.php';
    Session::checkLogin();
    include_once '../lib/Database.php';
    include_once '../helpers/Format.php';
?>
<?php
    /**
    * Adminlogin Class
    */
    class Adminlogin {
        private $db; 
        private $fm; 

        public function __construct(){
            $this->db = new Database();
            $this->fm = new Format();
        }

        public function adminLogin($adminUser,$adminPass){
            $adminUser = $this->fm->validation($adminUser);
            $adminPass = $this->fm->validation($adminPass);

            $adminUser = mysqli_real_escape_string($this->db->link, $adminUser);
            $adminPass = mysqli_real_escape_string($this->db->link, $adminPass);

            if (empty($adminUser) || empty($adminPass)) {
                $loginmsg = "Username and Password must not be empty..!!";
                return $loginmsg;
            } else {
                $query = "SELECT * FROM tbl_admin WHERE adminUser = '$adminUser' AND adminPass = '$adminPass'";
                $result = $this->db->select($query); 
                if ($result != false) {
                    $value = $result->fetch_assoc();

                    Session::set("adminlogin", true);
                    Session::set("adminId", $value['adminId']);
                    Session::set("adminName", $value['adminName']);
                    Session::set("adminUser", $value['adminUser']);
                    header("Location:dashbord.php");
                } else{
                    $loginmsg = "Username and Password not match !!";
                    return $loginmsg;
                }
            }
        }
    }
?>

【问题讨论】:

  • 那么,您对“找不到文件”有何看法?除非问题中有解释,否则其他人如何知道您的目录结构的关系? (顺便说一句,相对路径通常是相对于 invocation 脚本的,不相互包含。)

标签: php html css mysql


【解决方案1】:

试试这个方法:

<?php 
    define('__ROOT__', dirname(dirname(__FILE__))); 
    require_once(__ROOT__.'../../lib/session.php');
?>

【讨论】:

    【解决方案2】:

    问题是 php 试图在你的 include_path 中找到你的类,它被设置为 C:\xampp\php\PEAR

    您可以尝试使用这种方法:

    include_once $_SERVER['DOCUMENT_ROOT'] . "/lib/Session.php";
    include_once $_SERVER['DOCUMENT_ROOT'] . "/lib/Database.php";
    include_once $_SERVER['DOCUMENT_ROOT'] . "/helpers/Format.php";
    

    但我发现定义全局常量并稍后在代码中使用它会更好:

    define('HOME_DIR', 'C:\xampp\htdocs\project\e-commerce\');
    
    include_once HOME_DIR . "/lib/Session.php";
    include_once HOME_DIR . "/lib/Database.php";
    include_once HOME_DIR . "/helpers/Format.php";
    

    当您迁移到生产环境时,您必须将 HOME_DIR 重新定义为您服务器上的任何内容。

    【讨论】:

    • 它不工作...现在这个问题是警告:include_once(C:/xampp/htdocs/lib/Session.php): failed to open stream: No such file or directory in C:\ xampp\htdocs\project\e-commerce\classes\Adminlogin.php 在第 2 行警告:include_once(): 未能打开 'C:/xampp/htdocs/lib/Session.php' 以包含(include_path='C:\xampp \php\PEAR') 在 C:\xampp\htdocs\project\e-commerce\classes\Adminlogin.php 第 2 行致命错误:在 C:\xampp\htdocs\project\e-commerce 中找不到类“会话” \classes\Adminlogin.php 在第 3 行
    • @Afnan 请尝试使用 define() 的第二个代码块。如果这不适合您,请更改此项目的 DOCUMENT_ROOT,使其指向您的根项目目录 (C:\xampp\htdocs\project\e-commerce)。你可以参考这个问题:stackoverflow.com/questions/10157333/…
    【解决方案3】:

    您的文件夹和文件的结构是什么? 这个

    include_once '../lib/Database.php';
    

    意味着,您的文件夹和文件必须是 电子商务\类\Adminlogin.php 电子商务\libs\Database.php

    【讨论】:

      猜你喜欢
      • 2018-08-30
      • 2018-03-26
      • 2022-10-16
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多