2017-02-25 5 views
-1

check username und e-mail existiert bereits in php mysql, ich habe überprüfen alle eingaben leer ist oder nicht und wenn es keine leeren dann überprüfen sie benutzername und passwort ist bereits in der datenbank oder nicht, wenn es ist nicht in der Datenbank dann Echo ALRIGHT, funktioniert der Code gut, aber das Problem ist, druckt es nicht in Ordnung, wenn ein neuer Eintrag vorgenommen wird. Hiercheck username und e-mail existiert bereits in php mysql

ist der Code:

<?php 
error_reporting(E_ALL & ~E_NOTICE); 
require_once('dbcon.php'); 
if(isset($_POST["create"])) 
{ 
    if (isset($_POST['username']) && !empty($_POST['username'])) { 
     $username=mysqli_real_escape_string($conn,trim($_POST['username'])); 
    }else{ 
     $empty_username="Username Cannot be empty."; 
     echo $empty_username.'<br>'; 
    } 
    if (isset($_POST['email']) && !empty($_POST['email'])) { 
     $email=mysqli_real_escape_string($conn,trim($_POST['email'])); 
    }else{ 
     $empty_email="Email cannot be empty."; 
     echo $empty_email.'<br>'; 
    } 

    if (isset($_POST['category']) && !empty($_POST['category'])) { 
     $category=mysqli_real_escape_string($conn,trim($_POST['category'])); 
    }else{ 
     $empty_category="Category cannot be empty."; 
     echo $empty_category.'<br>'; 
    } 

    if (isset($_POST['password']) && !empty($_POST['password'])) { 
     $psw=mysqli_real_escape_string($conn,trim($_POST['password'])); 
    }else{ 
     $empty_password="Password cannot be empty"; 
     echo $empty_password.'<br>'; 
    } 

    if (isset($_POST['re_password']) && !empty($_POST['re_password'])) { 
     $repsw=mysqli_real_escape_string($conn,trim($_POST['re_password'])); 
    }else{ 
     $empty_repassword="Retype password cannot be empty"; 
     echo $empty_repassword.'<br>'; 
    } 

    $password=password_hash('$psw',PASSWORD_BCRYPT); 
    $date=mysqli_real_escape_string($conn, trim('now()')); 
    if($psw!=$repsw) 
    { 
     echo"password not Matched"; 
    } 
     $sql="select * from account_info where (username='$username' or email='$email');"; 
     $res=mysqli_query($conn,$sql); 
     if (mysqli_num_rows($res) > 0) { 
     // output data of each row 
     $row = mysqli_fetch_assoc($res); 
     if ($username==$row['username']) 
     { 
      echo "Username already exists"; 
     } 
     elseif($email==$row['email']) 
     { 
      echo "Email already exists"; 
     } 
     else{ 
      echo "alright"; 
     } 
    } 
} 
?> 
+0

ok, also was ist dein Problem die Funktion checkusername() und Anzeigeergebnis beginnt laufen? –

+0

Was ist das Ergebnis, wenn Sie den Code ausführen, und was ist das gewünschte Ergebnis – SaggingRufus

+0

es fast funktioniert, aber es druckt nicht die "in Ordnung", wenn ich neuen Benutzernamen und E-Mail gibt es nicht in der Datenbank. Sory für mein Englisch. – learner

Antwort

0

Sie müssen nur noch else cond ition am richtigen Ort

Try this: -

<?php 
    error_reporting(E_ALL & ~E_NOTICE); 
    require_once('dbcon.php'); 
    if(isset($_POST["create"])) 
    { 
     $error = 0; 
     if (isset($_POST['username']) && !empty($_POST['username'])) { 
      $username=mysqli_real_escape_string($conn,trim($_POST['username'])); 
     }else{ 
      $error = 1; 
      $empty_username="Username Cannot be empty."; 
      echo $empty_username.'<br>'; 
     } 
     if (isset($_POST['email']) && !empty($_POST['email'])) { 
      $email=mysqli_real_escape_string($conn,trim($_POST['email'])); 
     }else{ 
      $error =1; 
      $empty_email="Email cannot be empty."; 
      echo $empty_email.'<br>'; 
     } 

     if (isset($_POST['category']) && !empty($_POST['category'])) { 
      $category=mysqli_real_escape_string($conn,trim($_POST['category'])); 
     }else{ 
      $error = 1; 
      $empty_category="Category cannot be empty."; 
      echo $empty_category.'<br>'; 
     } 

     if (isset($_POST['password']) && !empty($_POST['password'])) { 
      $psw=mysqli_real_escape_string($conn,trim($_POST['password'])); 
     }else{ 
      $error = 1; 
      $empty_password="Password cannot be empty"; 
      echo $empty_password.'<br>'; 
     } 

     if (isset($_POST['re_password']) && !empty($_POST['re_password'])) { 
      $repsw=mysqli_real_escape_string($conn,trim($_POST['re_password'])); 
     }else{ 
      $error = 1; 
      $empty_repassword="Retype password cannot be empty"; 
      echo $empty_repassword.'<br>'; 
     } 

     $password=password_hash('$psw',PASSWORD_BCRYPT); 
     $date=mysqli_real_escape_string($conn, trim('now()')); 
     if($psw!=$repsw) 
     { 
      echo "password not Matched"; 
     } 

     if(!$error) { 
      $sql="select * from account_info where (username='$username' or email='$email');"; 
      $res=mysqli_query($conn,$sql); 
      if (mysqli_num_rows($res) > 0) { 
      // output data of each row 
      $row = mysqli_fetch_assoc($res); 
      if ($username==$row['username']) 
      { 
       echo "Username already exists"; 
      } 
      elseif($email==$row['email']) 
      { 
       echo "Email already exists"; 
      } 
     }else { //here you need to add else condition 
      echo "alright"; 
     } 
     } 
    } 
    ?> 
+0

es zeigte die "in Ordnung", aber ich möchte nicht drucken, wenn alle Eingaben leer sind. Dieser Code druckt "in Ordnung", auch wenn alle Eingaben leer sind. OUTPUT: -Username Kann nicht leer sein. Die E-Mail darf nicht leer sein. Passwort kann nicht leer sein Passwort wiederholen kann nicht leer sein in Ordnung – learner

+0

Ich möchte überprüfen, ob alle Eingaben check sind oder nicht und $ psw! = $ Repsw sowie der Benutzername und die E-Mail-Adresse sind in der Datenbank oder nicht. Drucken Sie ALRIGHT nur, wenn alle diese Bedingungen erfüllt sind – learner

+0

Jetzt sehen Sie meine Antwort Ich aktualisierte Code. – shubham715

2

Sie dies in falsch gesetzt haben, wenn die Bedingung

$sql="select * from account_info where (username='$username' or email='$email');"; 
     $res=mysqli_query($conn,$sql); 
     if (mysqli_num_rows($res) > 0) { 
     // output data of each row 
     $row = mysqli_fetch_assoc($res); 
     if ($username==$row['username']) 
     { 
      echo "Username already exists"; 
     } 
     elseif($email==$row['email']) // change it to just else 
     { 
      echo "Email already exists"; 
     } 
     else{ 
      echo "alright"; // don't put it here 
     } 
    } 

die in Ordnung So drucken Sie auch außerhalb der stellen, wenn und elseif nur anders ändern wie folgt:

$sql="select * from account_info where (username='$username' or email='$email');"; 

     $res=mysqli_query($conn,$sql); 

     if (mysqli_num_rows($res) > 0) { 
     // output data of each row 
     $row = mysqli_fetch_assoc($res); 
     if ($username==$row['username']) 
     { 
      echo "Username already exists"; 
     } 
     else($email==$row['email']) 
     { 
      echo "Email already exists"; 
     } 

     } else{ // if condition ends here if it is new entry, echo will work 
      echo "alright"; 
     } 
+0

ja. besser erklärt als in meinem Kommentar +1 –

+0

Ich habe Ihren Kommentar nicht gesehen, ich habe seinen Code getestet, können wir zusammen gepostet :) –

+0

können Sie die gefälschten Internet-Punkte – SaggingRufus

0

das Sie heraus für die Validierung helfen kann ich Ihnen nur für Benutzernamen es duplizieren und für E-Mail diese Ajax-Skript machen, ist auf der gleichen Seite ausgeführt keine Notwendigkeit, eine externe Datei zu machen, was ich meine ist sagen wir, dass Sie auf login.php validieren. Dieses Ajax unten bleibt auf login.php alle Skripte auf der gleichen Seite, ändern Sie den PHP-Code zu Ihrer Spezifikation. Gegliedert, was die oninput = username sagt, ist, wenn der Benutzer eingeben

 <input type ="text" oninput="checkusername()" id="uname" placeholder="Your username for check" class="oshe"> 

     <span id="usernamestatus"></span> 

//ajax script on the same page do not make a new file function checkusername 
<script> function checkusername(){ 
var status = document.getElementById("usernamestatus"); 
var u = document.getElementById("uname").value; 
if(u != ""){ status.innerHTML = '<b style="color:red;">checking...</b>'; var hr = new XMLHttpRequest(); 
hr.open("POST", "a.php", true); 
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); hr.onreadystatechange = function() { 
if(hr.readyState == 4 && hr.status == 200) { 
status.innerHTML = hr.responseText; 
} } 
var v = "name2check="+u; hr.send(v); } } 
</script> 



//the php script to search database 
<?php 
if(isset($_POST["name2check"]) && $_POST["name2check"] != ""){ 
include_once 'connect.php'; 
$username = ($_POST['name2check']); 
$sql_uname_check = mysqli_query($con, "SELECT matric FROM users WHERE matric='$username' LIMIT 1"); 
$uname_check = mysqli_num_rows($sql_uname_check); 
if (strlen($username) < 2) { 
echo '<b style="color:white;">2 - 35 characters please</b>'; 
exit(); 
} 
if (!filter_var($username, FILTER_VALIDATE_EMAIL) === false) { 
echo '<b style="color:white;">Email not allowed</b>'; 
exit(); 
} 
if (is_numeric($username[0])) { 
echo '<b style="color:white;">First character must be a letter</b>'; 
exit(); 
} 
if ($uname_check < 1) { 
echo '<strong style="color:white; text-transform:lowercase!important;">' . $username . ' is available </strong> '; 
exit(); 
} else { 
echo '<strong style="color:white; text-transform:lowercase!important;">' . $username . ' is taken </strong>'; 
exit(); 
} 
} 
?> 
+0

er vergessen zu erwähnen, sein aktuelles Problem, das ist nicht das, was er sucht, lesen Sie bitte die Kommentare. –

+0

Ich habe Schwierigkeiten, mein Problem auszudrücken, weil Englisch nicht meine Muttersprache ist. Entschuldigung dafür – learner

+0

Ich habe bereits Ihr tatsächliches Problem in Ihrer Frage hinzugefügt, es ist in der Genehmigungswarteschlange, wird angezeigt, sobald es von Ihnen oder einem Peer-Reviewer genehmigt wurde. –

Verwandte Themen