Этот код не работает, но я думаю, что все в порядке. Мне нужно посчитать, и если есть 0 строк, выгнать пользователя.
<?php
require 'config.php';
$email = $_POST['email'];
$codice = $_POST['codice'];
$password = $_POST['password'];
$stmt = $connect->prepare('SELECT count(*) AS conto FROM primoaccesso WHERE
email = :email AND codice = :codice AND password = :password');
$stmt->execute(array(
':email' => $email,
':codice' => $codice,
':password' => $password
));
$data = $stmt->fetch(PDO::FETCH_ASSOC);
if ($data['conto'] == 0){
header('Location: /primoaccesso.php');
}
?>
password — зарезервированное слово. Попробуйте AND `password` = :passwordкстати... вы храните пароли в виде простого текста?
@bassxzero password является ключевым словом, но не зарезервировано.
@ Лукас Это неправильно. Этот запрос всегда возвращает 1 строку, содержащую результат COUNT(*).
Этот код выглядит так, как будто он должен работать. Убедитесь, что переменные имеют ожидаемые значения с помощью var_dump($email, $codice, $password).
password_hash()пакет совместимости. Не надо избежать паролей или используйте любой другой механизм очистки перед хешированием. При этом изменения пароль и вызывает ненужное дополнительное кодирование.
Какая у вас проблема? Он пинает пользователей, которых не должен, или не пинает, когда должен?






а твоя проблема... ??