Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327

Password_verify возвращает false, хотя данные корректны

12.02.2018, 16:58. Показов 4064. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, при использовании password_verify получаю false, параметры при этом передаю верные. Из-за чего это и как исправить?
Вот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?
 
require_once("connection.php");
 
if (isset($_POST['signin']) && isset ($_POST['user_name']) && !empty($_POST['user_name']) && isset ($_POST['user_pass']) && !empty($_POST['user_pass'])){
    $username=$_POST['user_name'];
    $userpass=$_POST['user_pass'];
 
 
    $sql= "SELECT * FROM `users` WHERE `Login`=:Login"; 
    $stmt = $db->prepare($sql);
    $stmt->bindParam(':Login', $username, PDO::PARAM_STR); 
    $stmt->execute();
    $obj = $stmt->fetchObject();
    $logincheckr=$obj->Login;
    $passcheckr=$obj->Password;
    $status=(int)$obj->Status;
    $ver=(int)$obj->Verification;
 
    
        if ((!empty($logincheckr) &&($status==1)) || (!empty($logincheckr) && ($status==2) && $ver==1)){
 
                        if(password_verify($userpass,$passcheckr)){
                            $_SESSION['logged_admin']=$username;
                            header('Location: index.php');
                            exit();
                    }
        }
}
  
 
else{
    header('Location: index.php');
    exit();
}
?>
Нужна помощь.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.02.2018, 16:58
Ответы с готовыми решениями:

CopyFile возвращает false, хотя не должен
Здравствуйте. В коде ниже CopyFile возвращает false: procedure TMainForm.N22Click(Sender: TObject); var fileName, fileName0:...

Почему-то функция возвращает undefined, хотя должна true/false
function checkUsername() { var username = $('#user').val(); var re = /^{1,32}$/; var res = re.test(username); if(!res) { ...

Функция mysql возвращает false. Хотя всё делаю правильно
Ребята почему функция mysqli_query() выдаёт Flase понять не могу где ошибка . Пол интернета перерыл и нигде толкового ответа. $Name...

18
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
12.02.2018, 17:15
password_verify() используется для проверки пароля на соотвествие хэшу, так Вы же не зашифровали свой пароль, вот он и выдает False.
1
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
12.02.2018, 17:18  [ТС]
maxoun, это скрипт авторизации, зашифрованный пароль я получаю в $passcheckr=$obj->Password;
введенный пользователем пароль в $userpass=$_POST['user_pass'];
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
12.02.2018, 17:21
Цитата Сообщение от mazahaler Посмотреть сообщение
введенный пользователем пароль в $userpass=$_POST['user_pass'];
Пароль который у тебя в БД ты его шифровал через password_hash() ?
1
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
12.02.2018, 17:23  [ТС]
Цитата Сообщение от maxoun Посмотреть сообщение
Пароль который у тебя в БД ты его шифровал через password_hash() ?
Да, в бд он у меня выглядит след. образом: $2y$10$PXtGhzgQE0nZbiBUFjGaC.tsd.0EQKkf6 ptCc5Swnbh
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
12.02.2018, 17:26
Цитата Сообщение от mazahaler Посмотреть сообщение
Да
Странно, ты выводишь все данные сравнивая логин, ты уверен что у тебя в БД нету одинаковых логинов????
1
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
12.02.2018, 17:28  [ТС]
maxoun, у меня в бд пока только 1 запись в таблице users, поэтому да, я уверен.
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
12.02.2018, 17:30
Цитата Сообщение от mazahaler Посмотреть сообщение
у меня в бд пока только 1 запись в таблице users, поэтому да, я уверен.
Какую ошибку выдает система??? Да и еще header() у тебя не сработает , он вызываеся первым, в чем твоя ошибка??? Не создает сессию?
Подожди 5 сек у себя создам и вернусь)
1
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
12.02.2018, 17:34  [ТС]
maxoun, нет ошибок, просто открывается пустой документ signin.php (скрипт авторизации).
header не срабатывает, потому что
if(password_verify($userpass,$passcheckr ))
возвращает false
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
12.02.2018, 17:59
Цитата Сообщение от mazahaler Посмотреть сообщение
header не срабатывает, потому что
if(password_verify($userpass,$passcheckr ))
возвращает false
Это не ошибка , header должен быть первым,
правильно будет так
PHP
1
2
3
4
5
if(password_verify($userpass,$passcheckr)){
                          if($_SESSION['logged_admin']=$username) {
                                    header('Location: index.php');
                          }
                    }
1
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
12.02.2018, 18:11  [ТС]
maxoun, результат тот же, просто загружается пустой лист скрипта без перехода на index.php
Код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?
 
require_once("connection.php");
 
if (isset($_POST['signin']) && isset ($_POST['user_name']) && !empty($_POST['user_name']) && isset ($_POST['user_pass']) && !empty($_POST['user_pass'])){
    $username=$_POST['user_name'];
    $userpass=$_POST['user_pass'];
 
 
    $sql= "SELECT * FROM `users` WHERE `Login`=:Login"; 
    $stmt = $db->prepare($sql);
    $stmt->bindParam(':Login', $username, PDO::PARAM_STR); 
    $stmt->execute();
    $obj = $stmt->fetchObject();
    $logincheckr=$obj->Login;
    $passcheckr=$obj->Password;
    $status=(int)$obj->Status;
    $ver=(int)$obj->Verification;
 
    
        if ((!empty($logincheckr) &&($status==1)) || (!empty($logincheckr) && ($status==2) && $ver==1)){
 
                        if(password_verify($userpass,$passcheckr)){
                            if ($_SESSION['logged_admin']=$username){
                                header('Location: index.php');
                                exit();
                            }
                            
                    }
        }
}
  
 
else{
    header('Location: index.php');
    exit();
}
?>
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
12.02.2018, 18:19
mazahaler,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
 
require_once("connection.php");
 
if (isset($_POST['signin']) && isset ($_POST['user_name']) && !empty($_POST['user_name']) && isset ($_POST['user_pass']) && !empty($_POST['user_pass'])){
    $username=$_POST['user_name'];
    $userpass=$_POST['user_pass'];
 
 
    $sql= "SELECT * FROM `users` WHERE `Login`=:Login"; 
    $stmt = $db->prepare($sql);
    $stmt->bindParam(':Login', $username, PDO::PARAM_STR); 
    $stmt->execute();
    $obj = $stmt->fetchObject();
    $logincheckr=$obj->Login;
    $passcheckr=$obj->Password;
    $status=(int)$obj->Status;
    $ver=(int)$obj->Verification;
 
    
        if ((!empty($logincheckr) &&($status==1)) || (!empty($logincheckr) && ($status==2) && $ver==1)){
 
                        if(password_verify($userpass,$passcheckr)){
                            if ($_SESSION['logged_admin']=$username){
                                header('Location: index.php');
                                
                            } 
                            
                    } else { echo 'Ошибка 1';}
        } else { echo 'Ошибка 2';}
}
  
 
else{
    header('Location: index.php');
    exit();
}
?>
Жду результат , какоя ошибка выводится? Ошибка 1 или Ошибка 2?
0
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
12.02.2018, 18:21  [ТС]
maxoun, ошибка 1
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
12.02.2018, 18:25
Цитата Сообщение от mazahaler Посмотреть сообщение
ошибка 1
Какой у тебя в БД пароль , ты точно уверен что вводишь тот же самый пароль?
И еще проверь у себя в БД какую длину ты ставишь в поле пароль 255? Если нет то ставь 255,
возможно ты поставил к примеру 10 или 20 и хеш не полностью загрузился
0
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
12.02.2018, 18:30  [ТС]
maxoun, да уверен я черт побери в правильности этого гребаного мать его, пароля.
Создал нового пользователя.
Пароль ввел "yauveren"
В базе он выглядит так: $2y$10$RhO1.rhzzduwj1BrBp96xe2uO.ez5oETR he2utQNEAT
И сук все равно не работает, та же ошибка 1
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
12.02.2018, 18:37
Лучший ответ Сообщение было отмечено mazahaler как решение

Решение

mazahaler, Измени поле пароля в БД на 255, возможно он у тебя не 255 , а другое к примеру 20 и хэш не полностью ставиться

Добавлено через 5 минут
Цитата Сообщение от mazahaler Посмотреть сообщение
И сук все равно не работает, та же ошибка 1
Я же сказал тебе , проверь поле пароля, и измени varchar или char на 255, возможно хеш не помещается
1
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
12.02.2018, 18:42  [ТС]
maxoun, действительно это так, сам бы еще долго тупил. Спасибо.
1
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
12.02.2018, 18:43
Цитата Сообщение от mazahaler Посмотреть сообщение
Спасибо.
Пожалуйста , обращайся, а на счет твоего мата до сих пор хаха ловлю :-D
2
 Аватар для gbsoftware
120 / 116 / 77
Регистрация: 19.08.2013
Сообщений: 430
13.02.2018, 22:40
Хеши для вашего пароля генерятся длинее, у вас в базе по всей видимости размер поля ограничен, судя по хешу 50, вот и режет его
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.02.2018, 22:40
Помогаю со студенческими работами здесь

Doc.save(false, False) = Всегда Возвращает False
Собственно база находится локально - не реплика f = doc.save(false, false) когда документ создаётся впервые то True если документ...

Jquery-ajax и hibernate возвращает null хотя данные в базе есть
не выводятся данные из базы.думал это из-за скорости ajax запроса.т.е он выполняется быстрее чем сервер отреагирует и настроил c3p0.все...

Запрос возвращает false
$link=mysql_connect($host,$user,$pass); mysql_select_db($db_name,$link); $ta =mysql_query(&quot;SELECT * FROM `Student`&quot;); ...

SetPixelFormat возвращает false
В общем, сидел я мирно программировал, никого не трогал, как вдруг у меня начало вылетать приложение. Добавил немного отладочных сообщений,...

BASS_Init возвращает FALSE
проблема следующая: BASS_Init(-1, 44100, 0, 0, NULL); возвращает FALSE, хотя BASS_ErrorGetCode() выдает 0. подскажите куда копать? вроде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru