Доброе утро, пытаюсь сделать "лёгкое окошко авторизации", но не получаю никакого ответа от эхо, пароль в bcrypt уже, не пишет абсолютно ничего друзья, в вардампом и постом, передается всё идеально, а не обрабатывается бывает пролетает раз через раз ошибка
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in D:\OpenServer\domains\localhost\login.php:23 Stack trace: #0 D:\OpenServer\domains\localhost\login.php(23): PDOStatement->execute() #1 {main} thrown in D:\OpenServer\domains\localhost\login.php on line 23
на строку $query->execute(); Мне туда заглушку поставить нужно?
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['login'])){
$login = trim($_POST['login']);
$pass = trim($_POST['pass']);
$query = $dbh->prepare("SELECT * FROM login WHERE login=:?");
$query->bindParam("login", $login, PDO::PARAM_STR);
$query->execute();
$result = $query->fetch(PDO::FETCH_ASSOC);
if (password_verify($pass, $result['pass'])) {
echo 'успех';
} else {
echo 'нет успеха';
}
}
// echo '<pre>';
// var_dump($_POST);
echo '<form method="POST" action="">';
echo 'Cost: <input type="text" name="login"><br />';
echo 'Cost: <input type="text" name="pass"><br />';
echo '<input name="login" type="submit" value="sign"></form>';
пароль хеширую так:
$password_hash = password_hash($pass, PASSWORD_BCRYPT);