【问题标题】:Accesing configuration file in PHP fails在 PHP 中访问配置文件失败
【发布时间】:2013-10-30 20:48:01
【问题描述】:

好吧,我有一段代码可以访问 .php 文件(包含数据库连接数据的文件)。问题是当我尝试在包含的函数中执行此操作时,它不允许我这样做。

我在 index.php 文件中有这两个代码:

这个不起作用,说:警告:mysqli_connect():(HY000/1045):C:\xampp\htdocs\giveaways\includes 中的用户''@'localhost'(使用密码:NO)的访问被拒绝\user.php 在第 43 行

require 'includes/user.php';
$user->GetUnreadMessages($_COOKIE['userID']);

还有user.php类,包含方法:

public function GetUnreadMessages()
{
    require('config.php');
    $connectionHandle = mysqli_connect($host, $user, $password, $database);
    ...
}

另一方面,这段代码运行良好:

require('includes/config.php');
$connectionHandle = mysqli_connect($host, $user, $password, $database);

最后,我不得不说,这只发生在我在 XAMPP 上运行它时,而不是当我上传到 webhost 时。

【问题讨论】:

  • 如果文件未加载,require 也应该返回警告...
  • 您所描述的是一个完全可以解释和预期的操作。我在任何地方都没有看到问题。
  • 具有该功能的文件是否已包含在根级别的页面中?如果是这样,您需要从根级别到脚本的路径
  • __DIR__ 在这两个文件中的结果是什么?

标签: php


【解决方案1】:

尝试改变:

public function GetUnreadMessages()
{
    require('config.php');
    $connectionHandle = mysqli_connect($host, $user, $password, $database);
    ...
}

到:

public function GetUnreadMessages()
{
    require('includes/config.php');
    $connectionHandle = mysqli_connect($host, $user, $password, $database);
    ...
}

【讨论】:

  • TS 声明 user.php 在包含目录中。问题在于使用 XAMPP;因为它正在主机上运行。
  • @Luceos Yah,那么他应该提交一份关于 XAMPP 无法正常工作的错误报告。显然它不可能是代码。不是说我的代码可以解决问题,而是这个人在父文件夹中调用 require config.php,这可能包括位于父文件夹中的另一个 config.php 文件
  • index.php 文件加载require 'includes/user.php';,其中配置通过include 'config.php'; 加载。实际上,这完全没问题。您不需要添加子文件夹包含,因为您正在尝试从includes/includes/config.php 包含。
  • 顺其自然。除了require 在函数内部,我看不到他发布的任何其他狡猾的东西,这是一个有风险的设计决策。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 2022-01-04
  • 2020-04-27
  • 2021-07-10
相关资源
最近更新 更多