2017-10-14 52 views
2

我试图做一个简单的注册系统在PHP中。我有一个名为Admin的类(内部控制器文件夹),它扩展了DBConnection.php类。管理员类有一个注册方法让adming注册但在那里遇到问题。错误发生在'include_once'处,并且错误显示'Warning:include_once(../ Database/DBConnection.php):未能打开流:C:\ xampp \ htdocs \ WoodlandsAway \ controller \ Admin.php中没有这样的文件或目录第15行----- ' '警告:include_once():在C:\ xampp中打开用于包含(include_path ='C:\ xampp \ php \ PEAR')的'../Database/DBConnection.php'失败\ htdocs \ WoodlandsAway \ controller \ Admin.php on line 15 ----- ' '致命错误:Class'DBConnection'未在C:\ xampp \ htdocs \ WoodlandsAway \ controller \ Admin.php中找到第17行'include_once():未能打开流:没有这样的文件或目录 - PHP

这里是我的include_once代码

include_once ('../Database/DBConnection.php'); 

And here is my folder structure

--DBConnection.php

class DBConnection { 
//put your code here 
private $host; 
private $user; 
private $pass; 
private $database; 
private $conn; 

function DBConnection() { 
    $this->host = 'localhost'; 
    $this->user = 'root'; 
    $this->pass = ''; 
    $this->database = 'woodlands_away'; 
} 

public function getConnections() { 
    $this->conn = new mysqli($this->host, $this->user, $this->pass, $this->database) or 
    die($this->conn->error); 

    return $this->conn; 
} 

}

而且admin.php的

include_once ('../Database/DBConnection.php'); 

class Admin extends DBConnection { 
public function Admin() { 
    parent::DBConnection(); 
} 

public function signup($username, $password) { 
    $sql = "insert into users values(".$username.", ".$password.")"; 

    return $this->getConnections()->query($sql); 
}} 
+0

一旦你在你的目录结构中进行验证,你就可以使用相对路径了,一个目录上并检查数据库文件夹是否可用 – Hkachhia

+0

试试'include_once(__DIR__。/../ Database/DBConnection.php')' – HtmHell

+0

是admin.php也包含在内?还是你直接调用该文件? – Jeff

回答

1

首先,我建议你来声明表示根路径不变你的项目。该常数必须以一种独特的方式来声明这样的index.php文件或类似,但在你的项目的根目录:

define('PROJECT_ROOT_PATH', __DIR__); 

那么你包括呼叫应该看起来像这样:

include_once (PROJECT_ROOT_PATH . '/Database/DBConnection.php'); 

(始终指定前导斜杠)

问题是,目前您的代码可能依赖于Working directory,因此您可能会收到意外的工作目录。

相关问题