Php 登录脚本不工作,显示回显消息

Php 登录脚本不工作,显示回显消息,php,mysql,Php,Mysql,我有一个用PHP编写的登录脚本。如果用户名或密码不正确,它将回显当前正在发生的“用户名或密码无效”(即使用户名和密码正确) 以下是我的PHP代码: <form method="POST"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" name="submit"> </form> <

我有一个用PHP编写的登录脚本。如果用户名或密码不正确,它将回显当前正在发生的“用户名或密码无效”(即使用户名和密码正确)

以下是我的PHP代码:

<form method="POST">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" name="submit">
</form>

<?php

$con = mysqli_connect("localhost","dbuser","dbpass","dbname");

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

$username = $_POST['username'];
$password = $_POST['password'];

$username = mysqli_real_escape_string($con, $username);
$password = mysqli_real_escape_string($con, $password);

$logincheck = mysqli_connect($con, "SELECT * FROM `users` WHERE username='$username' and password='$password'");
$result = mysqli_query($con, $logincheck);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
$count = mysqli_num_rows($result);
if($count == 1){
$_SESSION['login_user'] = $username;
header('Location: index.php');
}else{
echo "Username or password is invalid.";
}
}
?>


获取数据时出现一些错误,如果密码已加密,则可能会忘记使用md5,因此请首先确保

if(isset($_POST['submit'])) 
{
    $con = mysqli_connect("localhost","root","","test");

    $username = $_POST['username'];
    $password = md5($_POST['password']);

    $username = mysqli_real_escape_string($con, $username);
    $password = mysqli_real_escape_string($con, $password);

    $sql="SELECT * FROM users WHERE username='$username' and password='$password'";
    $result=mysqli_query($con,$sql);
    $row=mysqli_fetch_array($result,MYSQLI_ASSOC);

    if(mysqli_num_rows($result) == 1)
    {
        $_SESSION['login_user'] = $username;
        header('Location: index.php');
    }
    else
    {
        echo "Username or password is invalid.";
    }
}

执行
echo“从用户名='$username'和密码='$password'的用户中选择*。将该行的结果直接复制并粘贴到MySQL中。那么,它会给它一个结果吗?如果有错误,它会给出什么错误?奇怪的是,你能不能
echo$username
echo$密码$\u POST['username']
$\u POST['password']
分配这些变量之后立即执行code>。它能输出你所期望的吗?你不会接受它的,对吧?太棒了!您介意让我知道我的脚本有什么问题吗?您正在使用mysqli\u connect执行查询。你必须使用mysqli_query@PareshGami你为什么建议OP使用MD5?这是一种加密技术,我建议你使用它。作为密码存储功能使用它已经不安全了,所以请不要再建议它了,在这个世纪就不行了。也许在1993/95年,但不是今天。PHP5.5的函数或兼容性包(如果PHP<5.5)在建议MD5和将来可能给出的答案时,可能会招致反对票和/或(更多)批评。