如何获取mysql.user密码的值

时间:2016-08-08 12:42:43

标签: javascript php mysql sql web

当我登录时,我正在使用mysql.user,但如果用户有密码我无法登录。如果我使用任何用户使用密码登录,则该页面无法登录到其他php。

登录时输入的用户将用于数据库的连接。

 <?php session_start(); ?>


 <!DOCTYPE HTML>
 <html>
 <head>
 <title>Log in</title>
 <meta charset="UTF-8" />
 <link rel="stylesheet" type="text/css" href="css/reset.css">
 <link rel="stylesheet" type="text/css" href="css/structure.css">

 <?php include('connection.php'); ?>

 </head>

 <body>
 <form class="box login" method="post">
    <fieldset class="boxBody">
      <label>Username</label>
      <input type="text" tabindex="1" placeholder="Username" required  name="username" id="username">
      <label><label class="rLink" tabindex="5">Optional</label>Password</label>
      <input type="password" tabindex="2" placeholder="Password" name="password" id="password" >
    </fieldset>
    <footer>
      <input type="submit" class="btnLogin" value="Login" tabindex="4" name="sent">
    </footer>
</form>

 <?php

  if (isset($_POST['sent'])) {
    $servername = "localhost";
    $username = ($_POST['username']);
    $password = ($_POST['password']);
    $message="";

    // Create connection
    $result = $conn->query("SELECT user FROM mysql.user where user='$username' and password='$password'");
    if ($result->num_rows > 0) {                    
      $_SESSION["uname"] = "$username";
      $_SESSION["pass"] = "$password";
      echo '<script type="text/javascript">alert(<?php echo "Success!";?>)</script>';
      header("location: main.php");
  } else {
        $message = "Successfuly entered! hi! $username";
        echo '<script type="text/javascript">alert(<?php echo "$message";?>)</script>'; 
    }
}           

 // Check connection
 ?>

 </body>
 </html>

1 个答案:

答案 0 :(得分:1)

您最好检查可能发生的数据库错误

$conn->query("SELECT user FROM mysql.user where user='$username' and password='$password'");

检查查询是否先执行。 它也更好地使用这个

"SELECT * FROM mysql.user WHERE user= ?"

检查行数后。您可以使用用户的盐哈希当前密码,然后检查它们是否相等。

为了更安全,请使用准备好的语句。并检查是否也设置了$_POST['username']$_POST['password'](即使您的输入字段是“必需的”)

为了回应您的错误,您可以使用错误ID

的段落
<p id="error"></p>

回应这个

    '<script>
document.getElementById("error").innerHTML = "'.$error.'"
</script>'

我的第一个回答是抱歉英语不好。