我正试着用php做一个登录站点,但是我找不到一个错误。虽然我没有得到一个错误,但它不工作。
数据库连接正常(我试过了)。
因此,在HTML中,我有一个带有两个input标记和一个submit按钮的表单:
<form action="?login=1" method="post">
<input class="form-control" type="text" name="username" required="" placeholder="Name" border-radius="3px" />
<input class="form-control" type="password" name="password" required="" placeholder="Password" border-radius="3px" font-size="caption" />
<input text-align="center" type="submit" value="Login »" class="btn btn-white-outline display-4" style="border-radius: 3px !important;">
</form>
这是php-code:
<?php
session_start();
$pdo = new PDO('mysql:host=localhost; dbname=test_db', 'user', 'password');
if(isset($_GET['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$statement = $pdo->prepare("SELECT * FROM users WHERE username= :username");
$result = $statement->execute(array('username' => $username));
$user = $statement->fetch();
if ($user !== false && password_verify($password, $user['password'])) {
$_SESSION['name'] = $user['name'];
die('<meta http-equiv="refresh" content="0; URL=/plan.php">');
} else {
$errorMessage = "<p style='color:red;'>
Incorrect username or password.
</p><br>";
}
}
?>
你能帮帮我吗。
谢谢
发布于 2017-08-22 23:24:34
函数:
password_verify()
期望第二个参数是函数创建的密码的散列:
password_hash()
或者将密码作为散列存储在数据库中。
https://stackoverflow.com/questions/45820393
复制相似问题