【发布时间】:2015-06-08 18:05:48
【问题描述】:
//index.php
<html>
<head>
<!--utf html5 declareren-->
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="cssreset.css">
</head>
<body>
<form action="login.php" method="POST">
username: <input type="text" name="usernamebox" required> <br>
password: <input type="password" name="passwordboxlogin" required> <br>
<input type="submit" value="Login">
</form>
<form action="register.php">
<input type="submit" value="Click here if you want to register">
</form>
</body>
</html>
//login.php
<?php
session_start();
error_reporting(E_ALL);
include ('connect.php');
$username = $_POST['usernamebox'];
$password = $_POST['passwordboxlogin'];
$_SESSION['usernamebox'] = $username;
//$db->query("SELECT * FROM `users` WHERE `username` = '$username'");
//
//$db->query("SELECT * FROM `users` WHERE `password` = '$password'");
//nieuw
$hash = "SELECT password FROM users WHERE username= '$username' ";
if (password_verify($password, $hash))
{
echo 'Password is valid!';
//header("Location: userpage.php");
}
else
{
echo 'Invalid password.';
}
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
</body>
</html>
我是一名 IT 专业的学生,但我似乎无法使用这个 password_verify() 函数。
我基本上是在尝试将 mysqli 中的密码哈希与 login.php 中 POST 表单中给出的密码进行比较。密码已正确散列到我的数据库中。
【问题讨论】:
-
您实际上并没有从数据库中检索密码......您只是创建了一个包含 SQL 查询的字符串,但没有执行它;然后将该字符串与输入的密码进行比较
-
数据库中的密码是 VARCHAR64...谢谢马克!生病尝试解决它