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

php password_verify () हैश और पास मेल नहीं खाएगा

$2y$10$zzZCN7UlukvY2skb3ELVp.4y3Oc7NJTEsFyqdstqYxT हैश लंबाई में केवल 50 है और अमान्य/बहुत छोटा है और जैसा कि मैंने कहा, MySQL चुपचाप विफल हो जाएगा; त्रुटि रिपोर्टिंग/जांच से यहां मदद नहीं मिलती।

पासवर्ड की कॉलम लंबाई 60 होनी चाहिए (255 का सुझाव दिया गया है), इसलिए इसे मूल रूप से सही तरीके से संग्रहीत नहीं किया गया था।

आपको अपना पासवर्ड कॉलम/या टेबल साफ़ करना होगा, अपने कॉलम की लंबाई बढ़ानी होगी और फिर से शुरू करना होगा।

संदर्भ:

आप अपनी क्वेरी को इस रूप में पढ़ने के लिए संशोधित भी कर सकते हैं:

$con = new mysqli("xxx", "xxx", "xxx", "xxx");
if ($con->connect_error) {
    die('Connect Error (' . $con->connect_errno . ') '
            . $con->connect_error);
}

$query = "SELECT `pass` FROM `user` WHERE `email`='$emailLogin'";
$result = $con->query($query);

// error checking on the query
if (!$result) {
    echo "<p>There was an error in query: $query</p>";
    echo $con->error;
}

$row_hash = $result->fetch_array();
if (password_verify($passLogin, $row_hash['pass'])) {
    echo "Success!";
}

संपादित करें:

एक टिप्पणी से जोड़कर मैंने ओपी को छोड़ दिया:

आपके सत्यापित कार्य के लिए आपके डेटाबेस से कनेक्शन होना आवश्यक है, जो मुझे लगता है कि यहां हो रहा है (परिवर्तनीय दायरा)। तो आपको या तो global $con; . का उपयोग करना होगा या अपने फ़ंक्शन में कनेक्शन (चर) पास करें (जो कि ज्यादातर मामलों में बेहतर है)।

मुझे नहीं पता कि आप फ़ंक्शन के लिए "शामिल" कर रहे हैं, और यदि ऐसा है, तो दूसरी समस्या यही है।

यानी:function VUP($con, $check, $valid){ या function VUP($check, $valid){ global $con; - दोनों कोशिश करें। उपयोग $result = mysqli_query($con, $query) or die(mysqli_error($con)); आपके पास अभी जो है उसके बजाय।




  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 और Python के साथ स्वचालित रूप से अपडेट नहीं होता है

  2. MySQL 8 का विन्यास

  3. क्या एक चयन का उपयोग करके MySQL में समय अंतर की गणना करने का कोई तरीका है?

  4. MySQL:समूह फ़ंक्शन का अमान्य उपयोग

  5. Laravel:कैसे केवल 1 क्वेरी के साथ एक ही आईडी के साथ एकाधिक तालिका से पंक्तियों को हटाने के लिए?