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

PHP mySQL जांचें कि क्या उपयोगकर्ता नाम और पासवर्ड डेटाबेस में हैं

आप उपयोग कर सकते हैं mysql_num_rows() और अपनी क्वेरी को संयोजित करें - फ़ुटनोट देखें

if(isset($_POST["name"], $_POST["password"])) 
    {     

        $name = $_POST["name"]; 
        $password = $_POST["password"]; 

        $result1 = mysql_query("SELECT username, password FROM Users WHERE username = '".$name."' AND  password = '".$password."'");

        if(mysql_num_rows($result1) > 0 )
        { 
            $_SESSION["logged_in"] = true; 
            $_SESSION["naam"] = $name; 
        }
        else
        {
            echo 'The username or password are incorrect!';
        }
}

अपने वर्तमान कोड को थोड़ा और सुरक्षित बनाने के लिए, इसका उपयोग करें:

$name = stripslashes($_POST["name"]); 
$name = mysql_real_escape_string($_POST["name"]);

$password = stripslashes$_POST["password"]); 
$password = mysql_real_escape_string($_POST["password"]); 

लेकिन तैयार बयानों और पासवर्ड हैशिंग का उपयोग करने के बारे में नीचे दिए गए लिंक को देखें।

फुटनोट:

आपका वर्तमान कोड SQL इंजेक्शन के लिए खुला है . तैयार किए गए स्टेटमेंट का इस्तेमाल करें , या तैयार बयानों के साथ PDO . अधिक जानकारी के लिए उन लिंक पर जाएं।

मैंने देखा है कि आप सादे पाठ में पासवर्ड संग्रहीत कर रहे होंगे। अगर ऐसा है, तो यह बेहद हतोत्साहित करने वाला है।

यदि आप हैं और यह एक लाइव साइट है, तो आप अंततः हैक हो जाएंगे।

मैंने आपको CRYPT_BLOWFISH का उपयोग करने का सुझाव दिया है या PHP 5.5 का password_hash() समारोह। PHP <5.5 के लिए password_hash() compatibility pack का उपयोग करें .

mysql_* कार्य बहिष्कार नोटिस:

http://www.php.net/manual/en/intro.mysql .php

यह एक्सटेंशन PHP 5.5.0 के रूप में बहिष्कृत है, और नया कोड लिखने के लिए अनुशंसित नहीं है क्योंकि इसे भविष्य में हटा दिया जाएगा। इसके बजाय, या तो mysqli या PDO_MySQL एक्सटेंशन का इस्तेमाल किया जाना चाहिए। यह भी देखें MySQL API सिंहावलोकन MySQL API चुनते समय और सहायता के लिए।

ये फ़ंक्शन आपको MySQL डेटाबेस सर्वर तक पहुँचने की अनुमति देते हैं। MySQL के बारे में अधिक जानकारी » http://www.mysql.com/ पर मिल सकती है। ।

MySQL के लिए दस्तावेज़ीकरण » http://dev.mysql.com/doc/ पर पाया जा सकता है। ।

संपादित करें: ओपी की मदद करने के लिए (पासवर्ड हैशिंग से संबंधित मेरे द्वारा दिए गए लिंक देखें)।

बदलने का प्रयास करें

        if(mysql_num_rows($result1) > 0 )
        { 
            $_SESSION["logged_in"] = true; 
            $_SESSION["naam"] = $name; 
        }
        else
        {
            echo 'The username or password are incorrect!';
        }

साथ:

while($row=mysql_fetch_assoc($result1))
{
$check_username=$row['username'];
$check_password=$row['password'];
}

if($username == $check_username && $password == $check_password){
echo "Matches.";
}

else{
echo "No match found.";
}


  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 योग और केस का उपयोग कर रहा है

  2. मैं प्रथम स्तर की श्रेणी को केवल एक बार प्रदर्शित करने के लिए कैसे प्राप्त करूं?

  3. केवल टेबल कैसे प्राप्त करें, SHOW TABLES का उपयोग करके विचार नहीं?

  4. php mysql समूह नवीनतम रिकॉर्ड प्राप्त करने के लिए, पहले रिकॉर्ड नहीं

  5. सॉकेट '/var/lib/mysql/mysql.sock' के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता (2)