Как я могу запретить человеку вводить определенное имя пользователя в поле имени пользователя?

Я хочу заблокировать ввод определенного слова в поле моего имени пользователя.

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

        
       
if ($param_username == "bad-username") { echo "Something went wrong"; }
Barmar 24.12.2020 18:34

Какое это имеет отношение к коду mysqli, который вы нам показали?

Dharman 24.12.2020 18:36

потому что это каким-то образом сталкивается с моими полями имени пользователя, в основном я создаю систему входа

saurishmonga 24.12.2020 18:39

я просто хочу ограничить ввод и обработку моего имени "saurishmonga" в моей базе данных, и люди должны получить за это эхо

saurishmonga 24.12.2020 18:41

вы можете просто проверить if ($username!='saurishmonga'){//do stuff}

mufazmi 24.12.2020 18:44

@saurishmonga вы хотите использовать значение жесткого кода или хотите сначала проверить его из БД, чтобы выдать ошибку.

mufazmi 24.12.2020 18:49

@MUFAzmi, я просто хочу, чтобы отображалась ошибка, когда кто-то пишет «saurishmonga» и отправляет форму, а я не могу этого сделать.

saurishmonga 24.12.2020 18:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
7
60
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Можно было просто сравнить.

$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 переводит оба имени в верхний регистр перед сравнением.

что я должен поместить между кодом для вставки в базу данных?

saurishmonga 24.12.2020 18:45
Ответ принят как подходящий

Если вы хотите сравнить более одного значения.

Попробуйте этот код.

<?php
$reservedUsername = array('saurishmonga','users','friends','settings','logout','blahblah'));

$param_username = trim($_POST["username"]);
if (!in_array(strtolower($param_username), strtolower($reservedUsername))
{
    // 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 "You can't use a reserved username";
    }

?>

Другие вопросы по теме