2015-09-17 1 views
-1

Я намерен использовать функции password_hash и password_verify для безопасного хранения паролей.PHP 5.5 Password_Verify Не работает при извлечении данных из базы данных

Когда я использую приведенный ниже. Что работает

$hash = password_hash('test',PASSWORD_DEFAULT); 
$state= password_verify('test',$hash); 

if($state){ 
    echo "OK"; 
} 
else{ 
    echo "No!"; 
} 

Но когда я пытаюсь написать пароль в базу данных и получить его. Это не работает.

$Pass= password_hash($pass,PASSWORD_DEFAULT); 
$query= "INSERT INTO user(email, password) VALUES('$Email','$Pass')"; 
mysqli_query($link,$query); 

$query= "SELECT password FROM user WHERE email='[email protected]'"; 
if($result=mysqli_query($link,$query)){ 
     $Array=mysqli_fetch_array($result); 
     $isComplete=password_verify($pass,$Array[1]); 
     if($isComplete){ 
       echo "OK!" 
     }else{ 
       echo "Not OK!"; 
     } 
} 

Это моя колонка

enter image description here

+2

Пожалуйста, пост кода, который извлекает пароль из базы данных, слишком – dimlucas

+0

я добавил код базы данных –

ответ

1

пароль в $Array[0] не в $Array[1].

Но вы должны обязательно использовать Prepared Statements для защиты приложения от атак Injection потенциала SQL

+0

Спасибо за @dimlucas вклада, но проблема в том, не об этом. Я напечатал массив [1], и там находится пароль. –

+0

Затем попробуйте изменить настройку базы данных на 'utf8_general_ci' – dimlucas

Смежные вопросы