php include错误未找到路径

php include错误未找到路径,php,mysql,Php,Mysql,我有一个小代码,它实际上是一个登录脚本,用于检查寄存器是否打开,并在登录按钮后显示: <?php include("../inc/db.php"); if(isset($_POST['user']) && isset($_POST['pass'])) { $password = $_POST['pass']; $username = $_POST['user']; $sql = "SELECT * FROM `users` WHERE `u

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

   <?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>
我的问题是这一行:

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


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

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

include("/path/from/root/to/inc/db.php"); 
常见的做法是定义一个变量或常量,用于定义web文件的根路径。这样,如果它发生更改,即您更改主机,您只需在一个位置更改它

在配置文件中:

define('ROOT_PATH', '/path/from/root/to/');
在PHP文件中

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

如果它告诉您找不到文件,则路径不正确。你应该信任这台计算机。如果路径正确,PHP不会抱怨。在前端控制器中定义一个固定路径常量,并在以后引用它。我不理解它说它不正确,但使用登录按钮,我使用该文件中的信息。一个经常遇到此错误的人,为了快速排除故障,按照以下步骤操作:stackoverflow.com/a/36577021/2873507如果它是一个inccorect路径,那么脚本将根本无法工作。它在第一次使用时不起作用,在点击“登录”按钮后,效果很好。对绝对路径进行编码也是一种非常糟糕的做法,因为它使代码很难移植到其他系统。@user3054345因为您使用的是“包含”而不是“不需要”,所以脚本不会失败。嗯,我想我已经找到了问题所在。。register.php和index.php不在同一个文件夹中,因此如果我使用简短的表单,路径是不同的,这就是我在回答的开头所说的