आपके कोड में कई समस्याएं हैं, त्रुटि प्राप्त करने का मुख्य कारण यह है कि $usertype
और $userstatus
पूर्वनिर्धारित और मान्य नहीं हैं।
लेकिन मेरी राय में यह आपके कोड के साथ एक मुख्य मुद्दा नहीं है।
कुछ सवाल हैं जो मैं आपसे पूछना चाहता हूं:
- यदि आपको एक पंक्ति लाने की आवश्यकता है तो दो लूप क्यों बना रहे हैं?
- यदि आप पहले से ही उत्तर जानते हैं तो डेटाबेस को दो बार क्वेरी क्यों करें?
- क्या आप
$username
से बच रहे हैं और$पासवर्ड
mysql_real_escape_string
विधि?
यहां एक उदाहरण दिया गया है कि यह कोड कैसा दिखना चाहिए:
$query1 = "SELECT user_type,user_staus FROM `user_info` WHERE name='{$username}' AND password='{$password}' LIMIT 1";
$fetched = mysql_query($query1);
//check if record exists otherwise you would receive another notice that can
//break redirect functionality
if (mysql_num_rows($fetched))
{
$record = mysql_fetch_assoc($fetched);
// make sure that value is integer
if ((int)$record["user_staus"])
{
exit("Please login after some time");
}
else
{
$url = (bool)$record["user_type"] ? 'admin_form.php' : 'user_form.php';
header("Location: {$url}");
exit(0);
}
}
else
{
echo "please register to login";
}
अपडेट करें
जैसा कि nikc.org
द्वारा सुझाया गया है , तीसरे स्तर को हटा दिया if
नेस्टिंग और टर्नरी तुलना के साथ प्रतिस्थापित