@Naamee
Кроткий текст

Почему не обрабатывает скрипт?

короче говоря веду форму авторизации логи ни пароль все правильно проверял с помощью print_ r все введенный данные совпадают с данными в бд, но по какой-то причине у меня пишет неверный логин или пароль, хотя все указано верно. В чем проблема так и не понимаю
Вот обработчик:
$db = new PDO('mysql:host=localhost;dbname=site', 'root', '');
if(isset($_POST['submit1'])) {
$result= $db->prepare('SELECT mail, password FROM accreg WHERE mail=:mail LIMIT 1');
$result -> bindParam(':mail', $_POST['mail'], PDO::PARAM_STR);
$result -> execute();
$data = $result->fetch();
if($data['password'] == md5($_POST['password'])) {
echo 'Все работает';
}
else {
echo 'Неверный логин или пароль';
}
}
?>

Форма авторизации:
<form action="chek.php" method="post">
  <input type="text" name="mail" placeholder="Логин Эл. почта" id="formlog"></br>
  <input type="password" name="password"   placeholder="Пароль" id="formpass"></br>
  <input type="submit" name="submit1" value="Авторизоваться" id="open"></br>
  </form>

Без расшифровки все работает
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 2
PretorDH
@PretorDH
HTML5, CSS3, PHP, JS - люблю в чистом виде.
$result -> bindValue(':mail', $_POST['mail'], PDO::PARAM_STR);      
   // Параметр из массива не тянется... только значение


P.S. md5 ОБЯЗАТЕЛЬНО выкинь из паролей, пользуйся как минимум sha. Изучи функцию password_hash...
Ответ написан
@ipokos
== - это оператор сравнения.
= - это присваивания.

Все я нашел ошибку там просто нужно только одно = а у меня ==.

Если нашли ошибку тут:
if($data['password'] == md5($_POST['password'])) {
то это не ошибка.

В каком виде пароли хранятся в БД?

п.с. md5 - давно не используется
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы