繁体   English   中英

简单登录表单的问题-PHP

[英]Problems with simple login form - PHP

我试图使用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>

确保传递给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创建安全登录系统的完全相同的过程。 如果还不能完全解决问题,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM