-1

请不要在这里评论告诉我我的 SQL 注入,我已经知道了 :)...

每次我使用我的 login.html 页面(链接到 login.php 文件)时,代码都会生成以下消息:“请输入有效的用户名和密码!” 代码之前工作正常,所以我不确定我做错了什么......

代码如下:

<?php
$username = $_POST['username'];
$password = $_POST['password'];

if ($username&&$password)
{
    $connect = mysql_connect("localhost","user_ben","password") or die ("Couldn't Connect!");
    mysql_select_db("user_phplogin"); //select database

    $query = mysql_query("SELECT * FROM users WHERE username='$username'");
    if(mysql_num_rows($query))
    {
        while ($row = mysql_fetch_assoc($query))
        {
            $dbusername = $row['username'];
            $dbpassword = $row['password'];
        }
        // check to see if they match

        if ($username==$dbusername&&$password==$dbpassword)
        {
            echo "Youre in! <a href='members.php'> Visit your user profile! </a>";
        }
        else
        {
            echo "Incorrect Password! <a href='login.html'> Return to login page</a>";
        }
    }
    else
    {
        die("That user doesnt exist! <a href='login.html'> Return to login page</a>");
    }
}
else
{
    die("Please enter a valid username and a password! <a href='login.html'> Return to login page</a>");
}

?>

这是我的表单代码...

<form action='login.php' method='submit'>
    Username: <input type='text' name='username'/><br>
    Password: <input type='password' name='password'/><br>
    <input type='submit' value='Log In'/>
</form>
4

3 回答 3

1

检查喜欢

if(!empty($username) && !empty($password))

它会检查非空用户名和密码是否已设置

<form action='login.php' method='POST'>

因为它默认是GET(这意味着如果你不输入方法,它将是 GET)

你也在使用method="submit"没有任何提交方法

method      (GET|POST)     GET       -- HTTP method used to submit the form--

w3 form:17.3 表单元素

于 2012-12-09T12:34:07.243 回答
0

改变

<form action='login.php' method='submit'>

<form action='login.php' method='POST'>
于 2012-12-09T12:34:19.740 回答
0

改变

<form action='login.php' method='submit'>

<form action='login.php' method='POST'>

用这行开始 login.php 并回答:

<?php print_r($_POST);

看看帖子里有什么

于 2012-12-09T12:42:46.013 回答