2013-07-19 5 views
5

मैं लॉगिन/पंजीकरण प्रणाली बना रहा हूं और मैं कोड के अपने रजिस्टर हिस्से को पूरा करने के करीब आ रहा हूं। एकमात्र समस्या जो मैं चल रहा हूं वह यह है कि इसे कैसे बनाया जाए ताकि उपयोगकर्ता डुप्लिकेट किए गए उपयोगकर्ता नामों के साथ पंजीकरण नहीं कर सकें। मैं इसे काम करना चाहता हूं ताकि मेरा डेटाबेस जानकारी स्वीकार न करे, और यह उपयोगकर्ता को त्रुटि के बारे में बताएगा। किसी भी मदद की सराहना की है।लोग पंजीकरण करते समय डुप्लिकेट उपयोगकर्ता नाम कैसे रोकें? PHP/MySQL

मेरे पीएचपी

<?php 
include ('database_connection.php'); 
if (isset($_POST['formsubmitted'])) { 
$error = array();//Declare An Array to store any error message 
if (empty($_POST['name'])) {//if no name has been supplied 
    $error[] = 'Please Enter a name ';//add to array "error" 
} else { 
    $name = $_POST['name'];//else assign it a variable 
} 

if (empty($_POST['e-mail'])) { 
    $error[] = 'Please Enter your Email '; 
} else { 


    if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST['e-mail'])) { 
     //regular expression for email validation 
     $Email = $_POST['e-mail']; 
    } else { 
     $error[] = 'Your EMail Address is invalid '; 
    } 


} 


if (empty($_POST['Password'])) { 
    $error[] = 'Please Enter Your Password '; 
} else { 
    $Password = $_POST['Password']; 
} 


if (empty($error)) //send to Database if there's no error ' 

उत्तर

7

आप इस तरह यह कर सकते हैं उपयोगकर्ता उदाहरण के लिए उपयोगकर्ता नाम पोस्ट और आप इस कोड लिखने या अपने संशोधन के साथ अपने कोड में जोड़ सकते हैं सबमिट क्लिक करें जब:

<?php 
$connect = mysql_connect('whatever','whatever','whatever'); 
$database = mysql_select_db('your dbname'); 
$username = $_POST['username']; 
if(isset($username)){ 
$mysql_get_users = mysql_query("SELECT * FROM table_name where username='$username'"); 

$get_rows = mysql_affected_rows($connect); 

if($get_rows >=1){ 
echo "user exists"; 
die(); 
} 

else{ 
echo "user do not exists"; 
} 



} 
?> 
+0

प्रतीक्षा के लिए खेद है, लेकिन यह मेरी समस्या पूरी तरह से हल हो गया! मैंने इसे लगभग 10 मिनट पहले अपने कोड में रखा था और यह अब डुप्लिकेट किए गए उपयोगकर्ता नाम स्वीकार नहीं करेगा और एक त्रुटि आउटपुट करेगा। – Zippylicious

+0

मेरे लिए + प्रतिनिधि के लिए बहुत बहुत धन्यवाद, और मुझे खुशी है कि यह उत्तर आपके लिए काम करता है, मैं आपको कुछ कहना चाहता हूं, जब आप उपयोगकर्ता का कॉलम बनाते हैं तो आप इसे अद्वितीय बना सकते हैं, उदाहरण के लिए टेबल उपयोगकर्ता बनाएं (उपयोगकर्ता नाम varchar (350) शून्य अद्वितीय नहीं), शुभकामनाएं :) –

1

मुझे लगता है कि कुछ इस तरह आप जो खोज रहे हैं:

if (isset($_POST['user'])) 
{ 
    $user = $_POST['user']; 

    if (mysql_num_rows(yourFunctionForQueryingMySQL("SELECT * FROM tablename WHERE user='$user'"))) 
      echo "Name is taken"; 
    else echo "Name available"; 
} 
1

दो चीजें हैं तुम्हें करना चाहिए।

  1. उपयोगकर्ता को डेटाबेस तालिका में प्राथमिक कुंजी बनाएं। यह आसानी से phpmyadmin का उपयोग कर किया जाता है।

  2. सम्मिलित करने से पहले मान्य करें।

दूसरे चरण के लिए, यहां एक एल्गोरिदम है। आप इसे पीडीओ, माइस्क्ली या यहां तक ​​कि mysql का उपयोग करके अपने तरीके से कार्यान्वित कर सकते हैं (हालांकि अब इसकी अनुशंसा नहीं की जाती है)।

अपने कोड के अंत में एल्गोरिथ्म (अर्थात, अगर वहाँ कोई त्रुटियां नहीं है) ...

चयन रिकॉर्ड कि USERNAME पोस्ट में आपूर्ति से मेल खाते हैं।

यदि यह मौजूद है, तो एक त्रुटि दें।

यदि यह अस्तित्व में नहीं है, तो इसे सम्मिलित करें।

आशा है कि मदद करता है।

0

आपको ऐसी स्थिति बनाना है (यदि) उपयोगकर्ता नाम पहले से मौजूद है तो पंजीकरण को रोक सकता है।

$sql="SELECT username FROM tablename WHERE username='".$username."'";//looking through existing usernames 
    $resul=mysql_query($sql); 
    $num = mysql_num_rows($resul); 

    if ($num !=0){ //If there is already such username... 

    die("There is user with that username."); // ...kill the script! 
} else //continue with the script 
0

मैंने पीडीओ और कक्षा विधि का उपयोग किया, कुछ उपयोग हो सकता है।

//function for checking if the user already exists in the database 
public function userExists($username){ 

//prepared statements for added security 
$query = $this->db->prepare("SELECT COUNT(`id`) FROM `users` WHERE `username`= ?"); 
$query->bindValue(1, $username); 

try{ 
    //execute the query 
    $query->execute(); 
    $rows = $query->fetchColumn(); 

    //if a row is returned...user already exists 
    if($rows == 1){ 
     return true; 
    }else{ 
     return false; 
    } 
//catch the exception 
}catch (PDOException $e){ 
    die($e->getMessage()); 
} 
}//end function userExists 

टिप्पणी तैयार बयान भी - निश्चित रूप से आगे

0

जिस तरह से आप इस तरह कर सकते हैं:

<?php 

//---put this code before "if (empty($error))"------ 

$username = $_POST['username']; 
//---if your table user is "table_user" and fieldname username is "username" 
$query = 'SELECT username FROM table_user WHERE username = "' . $username . '" LIMIT 1'; 
$result = mysql_query($query) 
$totalNumRowResult = mysql_num_rows($result); 

if($totalNumRowResult > 0) { 
    $error[] = 'User exist'; 
} 

?> 

आशा है कि मदद करता है।

संबंधित मुद्दे