当前位置: 首页 > 面试题库 >

PHP的包括错误没有findind路径

潘宸
2023-03-14
问题内容

我有这个小代码,实际上是一个登录脚本,它检查寄存器是否打开,并在登录按钮后显示:

   <?php
include("../inc/db.php"); 
if(isset($_POST['user']) && isset($_POST['pass']))
{
    $password = $_POST['pass'];
    $username = $_POST['user'];

    $sql = "SELECT * FROM `users` WHERE `user` = '".$username."' AND `password` = '".$password."'";
    $rez = $pdo->query($sql);   
    if($rez->fetchColumn()  > 0)
    {
        ...

    }
    else {echo '<p align="center">...</p>';}
    }
    else { echo '<p align="center">...</p>'; }
    }
    ?>
    <table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
    <tr>
    <form name="form1" method="post" action="login">
    <td>
    <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
    <tr>
    <td colspan="3"><strong>Member Login </strong></td>
    </tr>
    <tr>
    <td width="78">Username</td>
    <td width="6">:</td>
    <td width="294"><input name="user" type="text" id="user"></td>
    </tr>
    <tr>
    <td>Password</td>
    <td>:</td>
    <td><input name="pass" type="password" id="pass"></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><input type="submit" name="Submit" value="Login"></td>
    </tr>
    <?php $sql = "SELECT setare FROM setari WHERE nume_setare = 'OPEN_REG'";
    $openreg = $pdo->query($sql)->fetch();
    if($openreg['setare'] == 1)
    {
     ?>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><a href="register">Inregistrare</a></td>
    </tr><?php } ?>
    </table>
    </td>
    </form>
    </tr>
    </table>

我的问题是这一行:

include(“ ../ inc / db.php”);
警告:include(E:/wamp/www//inc/db.php):无法打开流:第3行的E:\ wamp \ www \ proiect1-test
\ scripts \ login.php中没有此类文件或目录:include():无法在E:\ wamp \ www \ proiect1-test
\ scripts \ login.php中打开’../inc/db.php’以包含(include_path =’.; C:\ php \
pear’)在第3行

而且我不知道我哪里错了。路径是正确的,如果我按了登录按钮,它就起作用了。如果我按了不正确的用户名和密码组合按了登录按钮,警告就会消失。但是,当我第一次打开它时,它不包括在内。该登录文件包含在站点的索引中。


问题答案:

您指向该文件的路径显然不正确。当您使用文件的相对路径,然后开始将文件放置在其他目录中时,通常会发生这种情况。您应该使用文件的完整系统路径来避免此问题:

include("/path/from/root/to/inc/db.php");

常见的事情是定义一个变量或常量,该变量或常量定义Web文件的根路径。这样,如果它改变了(即,您更改了主机),则只需要在一个地方进行更改。

在您的配置文件中:

define('ROOT_PATH', '/path/from/root/to/');

在您的PHP文件中;

include(ROOT_PATH . "inc/db.php");


 类似资料:
  • 如果类位于一个文件中,则看起来不会发生严格的错误,如下所示: 但是,如果您将类定义放在单独的文件中并像这样包含它们: 抛出严格标准错误消息: 严格的标准:的声明应与c:\path\to\Cat中的兼容。php在线。。。 如果所有内容都在一个文件中,即使这样也可以: 这是预期的行为吗? 因为< code >肉是< code >食物,所以一开始就不应该有抱怨,对吗?因此,解决方案是简单明了的:将所有内

  • 这和这个问题很相似,但它是以作曲家而不是梨来表现的。 我的相关作曲家。json行: 在供应商/作曲家中创建此include_paths.php文件: 运行“php vendor/bin/phpunit”会触发错误: PHPUnit_框架_异常:PHP警告:require_once(File/Iterator/Autoload.PHP):无法打开流:在/path/to/project/vendor/

  • 问题内容: 有没有办法做这样的事情: 但是,不是调用和,而是直接传递变量? 所需的输出是: 问题答案: 不适用于array_map,因为它不处理键。 array_walk可以: 但是,它确实会更改作为参数给定的数组,因此它不完全是函数式编程(因为您有这样标记的问题)。而且,正如注释中指出的那样,这只会更改数组的值,因此键将不是您在问题中指定的键。 如果需要,您可以编写一个函数来固定自己之上的要点,

  • 问题内容: 我有一个返回内部服务器错误(500)的php应用程序时出现问题,但错误日志中未显示任何内容。 现在,我知道我要运行的内容有错误,我知道缺少某些文件,但没有丢失,但是应该在apache错误日志中显示某些内容(否则,我应该如何确切知道丢失的内容)。 我创建了一个测试脚本,该脚本在相同的vhost配置下出错,并且这些错误显示得很好,因此一切似乎都已正确配置到php / apache。是否有某

  • (以防你看过我的上一个问题:不要混淆问题的第一部分/引言是相同的。最后的问题是不同的:) 我正在使用Symfony 2.8开发一个WebApp项目。我想在页面中添加不同的语言。根据用户的区域设置,所有路由/url应从更改为/locale/some/url

  • 我有一个头页,其中包括导航栏和必要的css的,js的。 我试图从联系页面调用标题页,但出了问题。 我在联系人页面上记录了这个错误。 警告:session_start():无法发送会话缓存限制器-已在第3行C:\xampp\htdocs\test\contact.php中发送的标头(输出从C:\xampp\htdocs\test\包含\header.php:84开始) 按照联系页面代码。 heade