इसलिए, मैंने अपनी वेबसाइट को MySQL से जोड़ा और मैंने एक लॉगिन फॉर्म बनाया। यह वह जगह है जहां टेक्स्टबॉक्स से मान सबमिट किए जाते हैं:

<?php
$username = $POST["username"];
$password = $POST["password"];

mysql_connect("localhost","opticon2_rgstr","mario106");
mysql_select_db("opticon2_rgstr");

$result = mysql_query("select * from users where username='$username' and 
password='$password'");
$row = mysql_fetch_array($result);
if ($row['username'] == $username && $row['password'] == $password)
{
echo "Successfully logged in!";
}
else
{
echo "Username or password are incorrect!";
}
?>

मैंने डेटाबेस में "व्यवस्थापक" पासवर्ड के साथ "व्यवस्थापक" नामक एक उपयोगकर्ता जोड़ा, लेकिन अगर मैं गलत उपयोगकर्ता नाम और गलत पासवर्ड टाइप करता हूं, तो भी यह कहता है: "सफलतापूर्वक लॉग इन!"

0
user8825940 26 नवम्बर 2017, 10:58
4
बहिष्कृत और असुरक्षित mysql*-functions का उपयोग न करें। PHP 5.5 (2013 में) के बाद से उन्हें बहिष्कृत किया गया है और PHP 7 (2015 में) में पूरी तरह से हटा दिया गया था। इसके बजाय MySQLi या PDO का प्रयोग करें। 2. आप SQL इंजेक्शन के लिए खुले हैं और वास्तव में इसके बजाय तैयार विवरण का उपयोग करना चाहिए यदि आप उपर्युक्त MySQLi या PDO का उपयोग करते हैं, तो आप अपने प्रश्नों को जोड़ सकते हैं।
 – 
Milan Chheda
26 नवम्बर 2017, 11:00
4
सादा टेक्स्ट पासवर्ड कभी भी स्टोर न करें! PHP प्रदान करता है password_hash() और password_verify() कृपया उनका उपयोग करें। यदि आप 5.5 से पहले के PHP संस्करण का उपयोग कर रहे हैं यहां एक संगतता पैक उपलब्ध है। सुनिश्चित करें कि आप पासवर्ड से बचें या हैशिंग से पहले उन पर किसी अन्य सफाई तंत्र का उपयोग करें। ऐसा करने से पासवर्ड बदल जाता है और अनावश्यक अतिरिक्त कोडिंग हो जाती है।
 – 
Tom Udding
26 नवम्बर 2017, 11:01
3
मैं आपका कोड नहीं समझता ... आप MYSQL में एक उपयोगकर्ता का चयन करते हैं जहाँ उपयोगकर्ता नाम और पासवर्ड मेल खाते हैं, तो आप PHP में वही स्थिति करते हैं, अजीब
 – 
Vincent Decaux
26 नवम्बर 2017, 11:01
पहले उस प्रश्न की जाँच करें जो सही है !! ... $result गूंजें और प्रदर्शित क्वेरी को phpmysql में चलाएं
 – 
deemi-D-nadeem
26 नवम्बर 2017, 12:12

2 जवाब

आपको पहली पंक्ति में त्रुटि है। यह $_POST होना चाहिए न कि $POST। सुधारना जो आपके कोड को ठीक करना चाहिए। दूसरी बात,

$result = mysql_query("select COUNT(*) as count from users where username='$username' and 
password='$password'");
$row = mysql_fetch_array($result);
if($row['count'] > 0) {
    echo "Successfully logged in!";
}

हालांकि जैसा कि मैंने ऊपर टिप्पणी की थी, पदावनत और असुरक्षित mysql*-functions का उपयोग न करें। उन्हें PHP 5.5 (2013 में) के बाद से बहिष्कृत किया गया है और PHP 7 (2015 में) में पूरी तरह से हटा दिया गया था। इसके बजाय MySQLi या PDO का प्रयोग करें। 2. आप SQL इंजेक्शन के लिए खुले हैं और वास्तव में इसके बजाय तैयार विवरण का उपयोग करना चाहिए यदि आप उपर्युक्त MySQLi या PDO का उपयोग करते हैं, तो आप अपने प्रश्नों को जोड़ सकते हैं।

2
Milan Chheda 26 नवम्बर 2017, 11:06
मुझे लगता है कि हर "mysql" को "mysqli" से बदलने से काम नहीं चलेगा।
 – 
user8825940
26 नवम्बर 2017, 11:15

अभी के लिए नीचे दिया गया कोड आपके काम आएगा

यहां मैंने आपके mysql-function को mysqli-function में बदल दिया है क्योंकि PHP5.5 के बाद से mysqli फ़ंक्शन को हटा दिया गया है

आपका कोड sql-इंजेक्शन के लिए मुफ़्त नहीं है। तो आपको तैयार बयानों के लिए देखना चाहिए।

पासवर्ड की अधिक सुरक्षा सुनिश्चित करने के लिए आप password_hash () या password_verify () फ़ंक्शन का भी उपयोग कर सकते हैं।

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

$con = mysqli_connect("localhost","opticon2_rgstr","mario106");
if (!$con) {
die('Could not connect to server' .mysqli_error($con));
}
mysqli_select_db($con, "opticon2_rgstr") or die('Database could not e connected' .mysqli_error($con));


$result = mysqli_query($con,"select * from users where username='$username' and password='$password'");
$count = mysqli_num_rows($result);
if($count > 0){
$row = mysqli_fetch_assoc($result);
if ($row['username'] == $username && $row['password'] == $password)
{
echo "Successfully logged in!";
}
else
{
echo "Username or password are incorrect!";
}
}
0
Sushank Pokharel 26 नवम्बर 2017, 14:09