简单登录表单的问题 - PHP

时间:2014-02-12 18:51:09

标签: php mysql login

我试图使用PHP和mysqli创建简单的登录表单,但它不起作用。 到目前为止,我创建了成功将数据发送到数据库的注册表,我还使用sha1加密了密码。 当我尝试使用下面附带的代码访问我之前存储的用户名和密码时,问题就开始了。 无论我提交什么,它显示为:错误的用户名或密码。 有人可以帮我吗?它花了我3天时间,仍然无法弄清楚如何使它工作。

<?php 
include_once ('includes/connection.php');
?>

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Login Form</title>
    </head>
    <body>
<?php
if(isset($_POST['submit_login'])) {

    $username = $mysqli->real_escape_string($_POST['username']);
    $password = sha1($_POST['password']);

    $login_query = $mysqli->query("SELECT user_username, user_password FROM sd_users WHERE user_username = '$username' AND user_password = '$password'");

    $count = $login_query->num_rows;

    if ($count == 1) {

            echo 'You are succesfully login!';

        } else {

            echo 'Wrong username or password';

    }

}
?>
        <div class="login-form">
            <h3>LOGIN</h3>
            <form action="index.php" method="post">
                <p>Username:
                    <input type="text" name="username" value=""/>
                </p>
                <p>Psssword:
                    <input type="password" name="password" value=""/>
                </p>
                <input type="submit" name="submit_login" value="Login"/>
            </form>
        </div>
    </body>
</html>

1 个答案:

答案 0 :(得分:-2)

确保传递给MySQL查询的变量格式正确。要将PHP变量放入MySQL查询,请将其更改为:

$login_query = $mysqli->query("SELECT user_username, user_password FROM sd_users WHERE user_username = '".$username."' AND user_password = '".$password."'");

请注意我如何设置$username$password变量。

我知道你来自哪里,因为我几个月前完成了使用PHP和MySQL创建安全登录系统的完全相同的过程。如果这不能完全回答这个问题,请告诉我。

相关问题