php - 用户名或电子邮件已存在

标签 php mysql

是否可以将用户名或电子邮件已存在拆分为特定的错误消息?

我正在编写这个用户注册脚本,如果您对给出的其余代码有任何提示,我们将不胜感激

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); 
}

最佳答案

您只需在此处进行更改:--

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";
        }
    }
}

注意:-如果您的密码进行了某种加密,那么您需要相应地更改密码部分条件(仅是其第三部分)。另外,如果我错过了任何书面索引,请告诉我。

关于php - 用户名或电子邮件已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30145251/

相关文章:

javascript - 如何在 CamanJS 中编辑远程图像

mysql - WHERE 子句后跟 JOIN

mysql - Eloquent 内连接计数

php - 限制 mysql 查询的多个结果

java - tomcat 5.5 可以处理的最大并发用户数

php - "manual"Woocommerce 自定义订单状态的奇怪显示样式

php - 使用 MySQL DB 调用的单个页面是否需要 SSL 证书?

javascript - 如何获取mysql.user密码的值

php - 在mysql中设置好友列表

php - CreateQuery Doctrine Symfony 2 StateFieldPathExpression