$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));
आपके पास अभी जो है उसके बजाय।