2017-02-25 55 views
-1

检查用户名和电子邮件已经存在于php mysql中,我检查每个输入是否为空或如果没有空然后检查用户名和密码是否已经在数据库中,如果它不在数据库中,然后回显ALRIGHT,代码工作正常,但问题是,它不打印好吧当新的条目进行。检查用户名和电子邮件已存在于php mysql

下面是代码:

<?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

好吧,有什么问题了吗? –

+0

执行代码的结果是什么,以及您希望得到的结果 – SaggingRufus

+0

几乎可以工作,但是当我提供新的用户名和电子邮件时,不会打印出“没问题”的数据库。对我的英语来说, – learner

回答

0

您只需要添加其他cond银行足球比赛在正确的地方

试试这个: -

<?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

它显示“正常”,但我不打印如果所有的输入都是空白的。即使所有输入都是空白,此代码也会打印“正常”。输出:-Username不能为空。电子邮件不能为空。密码不能为空重新输入密码不能为空好吧 – learner

+0

我想检查所有输入是否检查和$ psw!= $ repsw以及用户名和电子邮件是否在数据库中。只有当所有这些条件都满足时才打印ALRIGHT – learner

+0

现在查看我的回答我更新的代码。它的工作原理是 – shubham715

2

你把这个错的,如果条件

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

要打印好吗把你别的之外,如果和elseif的改变,只是别人像这样:

$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

是的。比我的评论更好地解释+1 –

+0

我没有看到你的评论,我正在测试他的代码,可能我们一起发布:) –

+0

你可以拆分假互联网点 – SaggingRufus

0

这可以帮助你来验证我只给你的用户名重复它,并让这个AJAX脚本是在同一页上运行电子邮件不需要创建外部文件,我的意思是让我们说你在login.php上进行了验证,下面的这个Ajax保留在login.php中同一页面上的所有脚本,将PHP代码更改为您的规范。看,什么oninput =用户名的意思是,当用户开始输入运行功能checkusername()和显示结果

 <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

他忘了提及他的实际问题,这不是他正在寻找的,请阅读评论。 –

+0

我很难表达我的问题,因为英语不是我的第一语言。对不起, – learner

+0

我已经在您的问题中添加了您的实际问题,它在审批队列中,一经您或任何同行审查员批准后即会显示。 –

相关问题