登录表单:无论它显示“用户名/密码组合不正确”的消息[关闭]

Posted

技术标签:

【中文标题】登录表单:无论它显示“用户名/密码组合不正确”的消息[关闭]【英文标题】:Login form: no matter what it displays the message of "Username/Password combination incorrect" [closed] 【发布时间】:2017-09-20 06:34:38 【问题描述】:

到目前为止,我已经制作了一个 home.html,它是必须链接到 login.php 和 register.php 的主页,我有 login.php 和 register.php。我也有 member.php,如果注册了,用户会被重定向到该页面。

我的目的是让每个已注册的用户都能登录。 注册页面成功重定向到 members.php 页面,但如果用户名存在于数据库中并且与密码匹配,我无法匹配...登录用户。 无论我在用户名和密码字段中输入什么,它都会显示“用户名/密码组合不正确”的消息。

这是我的 login.php 代码:

    <?php
    session_start();
    //connect to database
    $db=mysqli_connect($host_name, $username, $password, $database);
    if(isset($_POST['submit']))
    
         $username=($_POST['username']);
         $password=($_POST['password']);
         $password=md5($password);
         $sql="SELECT * FROM users WHERE username='$username' AND password='$password'";
         $result=mysqli_query($db,$sql);

         if(mysqli_num_rows($result)==1)

             $_SESSION['message']="You are now Loggged In";
             $_SESSION['username']=$username;
             header("location:members.php");
             exit();
          
         else
            $_SESSION['message']="Username/Password combination incorrect";
                
     
    ?>

【问题讨论】:

真是一个惊喜,一个他们不教 sql 注入的学校项目,太棒了! 编辑: 即使查看了md5(),幸运的是下一代已经准备好被黑了! 这是 2017 年。人们还在使用 md5 作为密码吗? @getl0st mysqli_* 支持prepared statements,所以没有理由去PDO。问题在于准备好的语句,而不是库。 如果你的学校教的是这个,首先要做的就是要求退款。 人们应该停止支持这样的问题 【参考方案1】:
$sql = "SELECT * FROM users WHERE username = '$username' and password = '$password'"

这对我有用,不知道为什么它不适用于您猜测它的数据库设置,这可能会被“黑客入侵”

【讨论】:

以上是关于登录表单:无论它显示“用户名/密码组合不正确”的消息[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

无论用户是通过 facebook connect 还是我自己的表单登录,如何开始会话?

为啥在 Django 的登录表单中显示错误?

任务计划程序在注销和登录后无法显示应用程序的 GUI(无论用户是不是登录都运行)

9款大气实用的HTML5/CSS3注册登录表单源码

用于 JQuery 登录的 HTML 表单或 div?

Drupal 以编程方式呈现登录表单