警告:include_once(../lib/Database.php):打开流失败:没有这样的文件或目录
Posted
技术标签:
【中文标题】警告:include_once(../lib/Database.php):打开流失败:没有这样的文件或目录【英文标题】:Warning: include_once(../lib/Database.php): failed to open stream: No such file or directory 【发布时间】: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 脚本的,不相互包含。) 【参考方案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)。你可以参考这个问题:***.com/questions/10157333/…【参考方案3】:您的文件夹和文件的结构是什么? 这个
include_once '../lib/Database.php';
意味着,您的文件夹和文件必须是 电子商务\类\Adminlogin.php 电子商务\libs\Database.php
【讨论】:
以上是关于警告:include_once(../lib/Database.php):打开流失败:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
「PHP」include()include_once()require()require_once()的用法及区别