首页 > 解决方案 > 我如何限制一个人在用户名字段中输入特定的用户名?

问题描述

我想阻止在我的用户名字段中输入某个单词。

    if($stmt = mysqli_prepare($link, $sql)){
        // Bind variables to the prepared statement as parameters
        mysqli_stmt_bind_param($stmt, "s", $param_username);
        
        
        $param_username = trim($_POST["username"]);
        
     
        if(mysqli_stmt_execute($stmt)){
            /* store result */
            mysqli_stmt_store_result($stmt);
            
            **if(mysqli_stmt_num_rows($stmt) == 1) {
                *$username_err = "This username is already taken.";*
            } else{
                $username = trim($_POST["username"]);
            }**

我想添加另一个条件,我想阻止特定用户名并为其显示回显。

        } else{
            echo "Oops! Something went wrong. Please try again later.";
        }

        
       

标签: phpif-statement

解决方案


你可以比较一下。

$forbidden_name = "NameYouWantToCheck";

$param_username = trim($_POST["username"]);
if (strtoupper($param_username) !== strtoupper($forbidden_name)) {

    // insert user in the darabase
    if ($stmt = mysqli_prepare($link, $sql)) {

        // Bind variables to the prepared statement as parameters
        mysqli_stmt_bind_param($stmt, "s", $param_username);            
    
        if (mysqli_stmt_execute($stmt)) {
            // store result
            mysqli_stmt_store_result($stmt);
            
            if(mysqli_stmt_num_rows($stmt) == 1) {
                $username_err = "This username is already taken.";*
            }
            else{
                $username = $param_username;
            }
        }
        else{
            echo "Oops! Something went wrong. Please try again later.";
        }
    }
}
else {
    echo "$forbidden_name is not allowed!";
}

strtoupper 函数在比较之前将两个名称都设为大写。


推荐阅读