Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पासवर्ड हैश गलत लौट रहा है

अपनी क्वेरी को एक बार और देखें:

SELECT password FROM users WHERE email = :email

आप कॉलम पासवर्ड चुन रहे हैं,

जब आप पंक्ति लाते हैं तो आप hash . फ़ील्ड का उपयोग कर रहे होते हैं

$_SESSION['hash'] = $row1['hash'];

आपके विचार के विपरीत, आपकी स्क्रिप्ट बिल्कुल भी सरल नहीं है, आप एक ही रिकॉर्ड पर 3 प्रश्न कर रहे हैं, इस दृष्टिकोण को आजमाएं

$email = $_POST['email'];
$pass = $_POST['password'];

if($email === ''){
    $_SESSION['message1'] = 'Enter a valid email';
    header('Location: index.php');
    exit();
}

if($pass === ''){
    $_SESSION['message1'] = 'Enter a valid password';
    header('Location: index.php');
    exit();
}

$query = 'SELECT name, email, password 
          FROM users 
          WHERE email = :email LIMIT 1';


$stmt = $con->prepare($query);
$stmt->bindValue(':email', $email);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

if(!$row){
    $_SESSION['message1'] = 'User does not exist';
    header('Location: index.php');
    exit();
}

//hashed password from Database
$hash = $row['password'];

if(password_verify($pass, $hash)){
    $_SESSION['hash'] = $row['password'];
    $_SESSION['name'] = $row['name'];
    $_SESSION['email'] = $row['email'];
    header('Location: profile.php');
}else{
    $_SESSION['message1'] = 'Make sure email and password are correct';
    header('Location: index.php');
    exit();
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL अद्यतन 1-3 के बीच यादृच्छिक संख्या के साथ

  2. MySQL:किसी अन्य तालिका से COUNT के साथ अद्यतन तालिका?

  3. PHP 7 को MySQLi नहीं मिल रहा है

  4. मैक पर Emacs और MySQL

  5. MYSQL - ऑर्डर टाइमस्टैम्प मान नवीनतम से सबसे पुराने क्रम में आरोही क्रम में हैं?