根据MySQL数据库验证表单密码

我对PHP比较陌生,我正在尝试设置一个登录系统。 造成我麻烦的部分是试图检查从表单收到的密码是否与MySQL数据库上的相应电子邮件匹配(同时记住电子邮件地址也是在表单上提交的)。 目前我不确定要做什么,但这是我一起拉的源代码......

<html>
<body>
<?php
$servername = "localhost";
$username = "***";
$password = "***";
$dbname = "pearsem_mystore";

// Create Connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check database connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT firstName, userEmail, userPass FROM users WHERE userEmail = '".$_POST["userEmail"]."'";
$result = $conn->query($sql);
$row = $result->fetch_assoc();

if ($row["userPass"] == $_POST["userPass"]) {
    // If true... Welcome {firstname}
    echo "Welcome " . $row["firstName"];
} 
elseif ($result->num_rows == 0) {
    echo "Incorrect email address/password";
} 
else {
    echo "Error";
}
$conn->close();

?>
</body>
</html>

在此先感谢您的帮助! PS我试图尽可能最好地解释情况,但如果您需要更多信息,请提问。


首先:

如果你将原始密码存储在数据库中,那么这是一个大问题。

在写入dB之前使用password_hash。 然后在将密码与用户输入进行比较时使用password_verify。

三个链接来帮助你:

  • http://php.net/manual/en/function.password-hash.php
  • http://php.net/manual/en/function.password-verify.php
  • https://codereview.stackexchange.com/questions/124777/using-phps-password-hash-and-password-verify-for-a-login-function
  • 链接地址: http://www.djcxy.com/p/21859.html

    上一篇: Validating form password against MySQL database

    下一篇: Check if the value exist in another table and then insert