PHP和Sql以及Wammp

PHP和Sql以及Wammp,php,mysql,Php,Mysql,` $host=“localhost”; $dbuser=“root”; $pass=“”; $dbname=“项目”; $conn=mysqli_connect($host、$dbuser、$pass、$dbname); if(mysqli\u connect\u errno()) { 死(“连接失败!:”.mysqli_connect_error()); } 如果(isset($_POST['submit'])){ $username=$_POST['username']; $passwor

`
$host=“localhost”;
$dbuser=“root”;
$pass=“”;
$dbname=“项目”;
$conn=mysqli_connect($host、$dbuser、$pass、$dbname);
if(mysqli\u connect\u errno())
{
死(“连接失败!:”.mysqli_connect_error());
}
如果(isset($_POST['submit'])){
$username=$_POST['username'];
$password=$_POST['password'];
//正在检查数据库中是否存在用户
$query=“从登录名中选择*,其中用户名='$username'和密码='$password';
$result=mysqli_query($conn,$query)或die(mysqli_error($conn));
$rows=mysqli\u num\u rows($result);
如果($rows>0){
$\会话['username']=$username;
header(“Location:nlogin.php”);//将用户重定向到index.php
}否则{
?>
用户名/密码不正确。
`
在这里,我必须使它连接到登录页面并匹配数据库中的密码
但它总是转到else块“不正确的密码”

您存储的密码是否经过哈希处理?您知道什么是sql注入吗?var_dump($rows)在条件出现之前查看其中的内容。可能是您没有任何具有该用户名和密码的用户,或者您的密码被哈希化,这就是为什么您的SQL查询无法从db获得任何结果的原因。Learn about statements for。甚至是不安全的!永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的是PHP版本低于5.5您可以使用
密码\u散列()
。在散列之前,无需对其使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。
$host="localhost";
$dbuser="root";
$pass="";
$dbname="project";
$conn=mysqli_connect($host,$dbuser,$pass,$dbname);
if(mysqli_connect_errno())
{
    die("Connection Failed! :" . mysqli_connect_error());
}

    if (isset($_POST['submit'])){

 $username=$_POST['username'];
    $password=$_POST['password'];       
    //Checking is user existing in the database or not
        $query = "SELECT * FROM login WHERE username='$username' and password='$password'";
        $result = mysqli_query($conn,$query) or die(mysqli_error($conn));
        $rows = mysqli_num_rows($result);
        if($rows>0){
            $_SESSION['username'] = $username;

            header("Location: nlogin.php"); // Redirect user to index.php
            }else{
                ?>
                <h1 style="color:white">Username/password is incorrect.</h1>
                <?php
                }
    }
?>`