php - why isn't my code working to check if username has already been taken? -
$ query = ("उपयोगकर्ताओं से चयन करें"); $ परिणाम = mysqli_query ($ कनेक्शन, $ क्वेरी); यदि (! खाली ($ _ POST)) {जबकि ($ पंक्ति = mysqli_fetch_assoc ($ परिणाम)) {if ($ username == $ row ['username']) {गूंज "उपयोगकर्ता नाम ले लिया, पुनः प्रयास करें"; } और अगर (खाली ($ उपयोगकर्ता नाम) ||! Isset ($ username)) {echo "कृपया एक मान्य उपयोगकर्ता नाम दर्ज करें"; } Else if (खाली ($ ईमेल) || | isset ($ email)) { मैं यह जानना चाहता हूं कि क्या उपयोगकर्ता नाम पहले से ही लिया गया है जब वे अपने विवरण को अपडेट या रजिस्टर करते हैं मैंने देखा है कि मुझे पता है कि यूज़रनेम फ़ील्ड रिक्त है और इसके बाद सेट किया गया है कि मैं इसकी जांच कर रहा हूं कि क्या इसकी गई है। मैं इसे बदलूंगा। हालांकि, मैं अब भी एक उपयोगकर्ता नाम पंजीकृत कर सकता हूं जो पहले ही लिया गया है?
कुछ टिप्पणियों की तरह, चलो मैं आपके लिए फिर से मुहावरा हूं।
आदर्श रूप में, आपको यह देखना चाहिए कि उपयोगकर्ता के नाम पर सभी यूजरनेम लाने और प्रत्येक (जो कि अनावश्यक और जरूरी नहीं है) की जांच के बजाय उपयोगकर्ता नाम मौजूद है।
तो आपको करना चाहिए:
यदि (! खाली ($ _ POST)) {सबमिट किए गए यूज़रनेम प्राप्त करें $ username = mysqli_real_escape_string ($ connection, $ _ POST ['username ']); // यूज़रनेम प्राप्त करें जहां यूज़रनेम = उपयोगकर्ता नाम = $ query = mysqli_query ($ कनेक्शन, "प्रयोक्ता नाम से यूज़रनेम चुनें जहां उपयोगकर्ता नाम = '{$ username}'); // क्वेरी से उपरोक्त पंक्तियों की संख्या प्राप्त करें $ count = mysqli_num_rows ($ query); // अगर कोई पंक्ति मिलती है, तो इसका अर्थ है कि उपयोगकर्ता नाम मौजूद है / इसलिए त्रुटि के बाद ($ count == 1) {गूंज "उपयोगकर्ता नाम ले लिया, पुनः प्रयास करें"; }} तैयार कथनों पर mysqli पर गौर करें यह स्वतः आपके लिए mysqli_real_escape_string () फ़ंक्शन करता है और इंजेक्शन से अधिक सुरक्षित है। मैंने अभी पीडीओ पर यह सीखना शुरू कर दिया है इसलिए मैं mysqli के तरीके से परिचित नहीं हूं और इस जवाब के साथ इसे नहीं रख सकता।
Comments
Post a Comment