2013-07-23 6 views
5

मैं यह पता लगाने की कोशिश कर रहा हूं कि मेरा रजिस्टर PHP कोड कैसे जांचें कि रजिस्टरी का उपयोगकर्ता नाम पहले ही लिया गया है या नहीं, और यदि ऐसा है, तो इसे पंजीकृत न करें, उपयोगकर्ता को यह बताएं कि यह लिया गया है। यहां मेरी पूरी पंजीकरण प्रसंस्करण फ़ाइल है।जांचें कि उपयोगकर्ता नाम phs के माध्यम से mysql तालिका में मौजूद है या नहीं?

<?php 
$con=mysqli_connect("localhost","root","","users"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$hpassword = hash('sha512', $_POST['password']); 
$eusername = mysqli_real_escape_string($con, $_POST['username']); 
$eemail = mysqli_real_escape_string($con, $_POST['email']); 
$fusername = str_replace(' ', '', $eusername); 

$sql="INSERT INTO users (username, password, email) 
VALUES 
('$fusername','$hpassword','$eemail')"; 

if (!mysqli_query($con,$sql)) 
    { 
    die('Error: ' . mysqli_error($con)); 
    } 
mysqli_close($con); 
?> 
+2

'username' पर एक अद्वितीय बाधा सेट पेस्ट, तो' mysqli_error ($ चोर) को पढ़ने ', एक दें डेटाबेस पर हिट करें। –

+0

संपादित करें: मैं यह भी जानना चाहता हूं कि सदस्य को सूचित करना संभव है कि वह अपने उपयोगकर्ता नाम में रिक्त स्थान का उपयोग नहीं कर सकता है। अभी यह रिक्त स्थान को हटाने के लिए सेट है और फिर इसे सम्मिलित करें। –

+0

रिक्त स्थान निकालें, फिर मूल इनपुट के साथ तुलना करें, यदि यह अलग है, तो उनके पास रिक्त स्थान हैं! –

उत्तर

5

या तो आप डेव तरह से उपयोग कर सकते हैं और जाँच 'त्रुटि कोड, या आप Precheck कर सकते हैं उपयोगकर्ता मौजूद है या नहीं

$sql="SELECT FROM users (username, password, email) WHERE username=$fusername" 

अब इस के परिणामों की जाँच करें। यदि कोई पंक्ति प्राप्त की जाती है, तो उपयोगकर्ता मौजूद है। इसे उपयोगकर्ता को इंगित करें। यदि नहीं, तो उपयोगकर्ता पर सूरज चमक रहा है। उसे एक कुकी

+0

ऐसा मत करें। यह क्रोध है। –

+0

रैसी। इसका क्या मतलब है? –

+1

इसका मतलब है कि इसमें एक [दौड़ की स्थिति] शामिल है (http://en.wikipedia.org/wiki/Race_condition)। ऐसा मौका है कि कोई अन्य उपयोगकर्ता 'SELECT' और' INSERT' के बीच उपयोगकर्ता नाम ले सकता है। –

5
include ('database_connection.php'); 
if (isset($_POST['formsubmitted'])) { 
    $error = array(); 
    if (empty($_POST['username'])) { 
     $error[] = 'Please Enter a name '; 
    } else { 
     $username = $_POST['username']; 
    } 

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

     if (filter_var($_POST['e-mail'], FILTER_VALIDATE_EMAIL)) { 
      //for email validation (refer: http://us.php.net/manual/en/function.filter-var.php) 

      $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)) 

    { // If everything's OK... 


     $query = "SELECT * FROM members WHERE username ='$username'"; 
     $result = mysqli_query($dbc, $query); // here $dbc is your mysqli $link 
     if (!$result) { 
      echo ' Database Error Occured '; 
     } 

     if (mysqli_num_rows($result) == 0) { // IF no previous user is using this username. 

      $query = "INSERT INTO `members` (`username`, `email`, `password`) VALUES ('$name', '$email', '$password')"; 

      $result = mysqli_query($dbc, $query); 
      if (!$result) { 
       echo 'Query Failed '; 
      } 

      if (mysqli_affected_rows($dbc) == 1) { //If the Insert Query was successfull. 

       // Send an email 

       // Finish the page: 
       echo '<div class="success">Thank you for registering! A confirmation email has been sent to ' . $email . ' Please click on the Activation Link to Activate your account </div>'; 

      } else { // If it did not run OK. 
       echo '<div class="errormsgbox">You could not be registered due to a system error. We apologize for any inconvenience.</div>'; 
      } 

     } else { // The username is not available. 
      echo '<div class="errormsgbox" >That username has already been registered. 
</div>'; 
     } 

    } else { //If the "error" array contains error msg , display them.... e.g.... 

     echo '<div class="errormsgbox"> <ul>'; 
     foreach ($error as $key => $values) { 

      echo ' <li>' . $values . '</li>'; 

     } 
     echo '</ul></div>'; 

    } 

    mysqli_close($dbc); //Close the DB Connection 

} // End of the main Submit conditional. 
16
$sql=mysql_query("SELECT FROM users (username, password, email) WHERE username=$fusername"); 
if(mysql_num_rows($sql)>=1) 
    { 
    echo"name already exists"; 
    } 
else 
    { 
    //insert query goes here 
    } 

आप डेटाबेस उपयोगकर्ता मौजूद है या नहीं से जांच कर सकते हैं और उसके बाद कोड

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