2017-03-29 6 views
1

가입 코드 :로그인 문제 PHP에서 확인

$first_name = $_POST['first_name']; 
    $last_name = $_POST['last_name']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 
    $hashed_password = password_hash($password, PASSWORD_DEFAULT); 
    $contact = $_POST['contact']; 
    $address = $_POST['address']; 

    $query = "INSERT INTO `tbl_user`(`first_name`, `last_name` , `email` , `password`,`contact`, `address`) VALUES 
     ('$first_name','$last_name','$email','$hashed_password','$contact','$address')"; 
    $sql = mysqli_query($con,$query); 

로그인 코드 :

$email = $_POST['email']; 
    $password = $_POST['password']; 
    $query = "SELECT * FROM `tbl_user` WHERE `email` = '$email'"; 
    $sql = mysqli_query($con,$query); 
    $row = mysqli_fetch_array($sql); 
    if (password_verify('$password', $row['hashed_password'])) { 
     echo 'Password is valid!'; 
    } else { 
     echo 'Invalid password.'; 
    } 

그러나 매번 그것을 내가 올바른 입력해도 잘못된 암호를 보여주고있다 신임장.

+0

이'... password' ... INTO'password_verify (... $ 행 [ 'hashed_password을'INSERT ])'hmm ... –

+0

배열을 가져 와서 인덱스 번호를주지 않고 – Gert

+0

PHP에서 문자열 보간이 어떻게 작동하는지 모르지만 db에 저장 한 것을 확인하십시오. 문자 그대로''$ hashed_password ''문자열을 저장할 수 있습니까? – sas

답변

3

오류 : '$password' 대신 $password으로 사용하십시오.

변경이에 :

if (password_verify('$password', $row['hashed_password'])) { 

이 :

if (password_verify($password, $row['hashed_password'])) {