1

所以我只是在学习PHP。我正在尝试运行我构建的登录脚本,但我收到了这个错误。

Warning: require_once(../../configs/db_config.php): failed to open stream: No such file or directory in C:\xampp\htdocs\test\assets\includes\logininc.php on line 4

Fatal error: require_once(): Failed opening required '../../configs/db_config.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\test\assets\includes\logininc.php on line 4

这是因为这条路径不正确吗?

此代码在页面上。

require_once "../../configs/db_config.php";
require_once "../../includes/memberfunc.php";

db_config 位于我运行的页面目录下的文件夹中(logininc.php)

更新:这是有问题的代码。它位于 index.php 旁边的基本目录中

<form id="login-form" method="post" action="assets/includes/logininc.php"> <fieldset> 
  <legend>Login </legend> 
  <p>Please enter your username and password to access the administrator's panel</p>

   <label for="username"> <input type="text" name="username" id="username" />Username: </label> <label for="password"> <input type="password" name="password" id="password" />Password: </label> <label for="submit"> <input type="submit" name="submit" id="submit" value="Login" /> </label> </fieldset> </form>
4

6 回答 6

0

使用DIR指定相对于当前文件的路径:

require_once __DIR__ "/../../configs/db_config.php";

否则,路径相对于包含执行开始的脚本的目录。

于 2013-07-22T20:29:21.327 回答
0

要进行调试或准确查找 require_once 期望您的文件所在的位置,请使用realpath(),它将为您提供绝对路径。然后,您可以决定如何从那里导航,这意味着添加/删除..s的数量

echo realpath("../../configs/db_config.php");

于 2013-07-22T21:53:29.400 回答
0

其他人指出,你的路径是错误的。

.. means you are going back a directory from the current

您提到您是初学者,我建议您始终指定完整路径,直到您感到舒适为止

编辑:如果配置和包含都在资产中,那么它们应该是这样的:

require_once("/test/assets/configs/db_config.php"); 
require_once("/test/assets/includes/memberfunc.php");

这样你就永远不会迷茫

于 2013-07-22T21:09:44.137 回答
0

该错误意味着您试图要求或包含指定目录中不存在的文件Failed to open streamNo such file or directory

这可能有几个原因:

  • 您尝试要求的文件不存在

  • 您指定了错误的路径

我希望这可以帮助你!

于 2013-07-22T20:35:20.593 回答
0

给定(组成的)路径/home/sites/example.com/html/logininc.php,那么

../../configs/db_config.php将评估为/home/sites/configs/db_config.php
并将
../../includes/memberfunc.php评估为/home/sites/includes/memberfunc.php

如果,如您所说, db_config 位于 logininc.php 所在目录下方的文件夹中,那么您需要更像

require('subdir/logininc.php');
于 2013-07-22T20:30:24.510 回答
0

尝试这个:

require_once dirname(dirname(dirname(__FILE__))) . "/configs/db_config.php";

dirname根据目录级别调整数量。调试路径:

echo dirname(dirname(dirname(__FILE__))) . "/configs/db_config.php";
于 2013-07-22T20:31:31.417 回答