用户名或电子邮件已存在

时间:2015-05-09 21:33:33

标签: php mysql

是否可以将Username or Email already exists拆分为特定的错误消息?

我正在处理此用户注册脚本,如果您对其余代码有任何提示,将非常感谢

if(isset($_POST['register'])){ 
  if( 
     // check if posts not empty
     empty($_POST['username']) || 
     empty($_POST['email']) || 
     empty($_POST['password']) || 
     empty($_POST['re_password']) || 
     $_POST['password'] != $_POST['re_password'] 
   ){ 
     // if a field is empty, or the passwords don't match make a message 
     error = '<p>'; 
       if(empty($_POST['username'])){ 
         $error .= 'No username given<br>'; 
        } 
        if(empty($_POST['email'])){ 
            $error .= 'No email given<br>'; 
        } 
        if(empty($_POST['password'])){ 
            $error .= 'No password given<br>'; 
        } 
        if(empty($_POST['re_password'])){ 
            $error .= 'You must re-type your password<br>'; 
        } 
        if($_POST['password'] != $_POST['re_password']){ 
            $error .= 'Passwords don\'t match<br>'; 
        } 
        $error .= '</p>'; 
    }
    else{ 
        $username = $_POST['username'];
        $email = $_POST['email'];
        $password = $_POST['password'];
        $password = $_POST['re_password'];
        $query = mysqli_query(
            $conn,"SELECT * FROM members WHERE username = '". $username ."' OR email = '". $email ."'");
        if(mysqli_num_rows($query) > 0){
            echo "Username or Email already exist";
        }       
        else {
            $sql = "INSERT INTO members (username, password, email)
                    VALUES
                      ('$_POST[username]',
                       '$_POST[email]',
                       '$_POST[password]')";
            if (mysqli_query($conn, $sql)) {
                echo "Registered";
            } else {
                echo "Error: " . $sql . "<br>" . mysqli_error($conn);
            }
        }
    } 
} 
if(isset($error)){ 
    echo $error; 
    unset($error); 
}

1 个答案:

答案 0 :(得分:2)

您只需要在此更改: -

if(mysqli_num_rows($query) > 0){
     while ($row = mysqli_fetch_assoc($query)){

       if(isset($row['username']) && !empty($row['username']) && $_POST['username'] ==$row['username'] )){
          echo "Username already exist";
        }
        if(isset($row['password']) && !empty($row['password']) && $_POST['password'] ==$row['password'] )){
         echo "Password already exist";
        }
    }
}

注意: - 如果您的密码有一些加密,那么您需要相应地更改密码部分条件(只是它的第三部分)。如果我错过任何书面的索引,请告诉我。