Я хочу заблокировать ввод определенного слова в поле моего имени пользователя.
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.";
}
Какое это имеет отношение к коду mysqli, который вы нам показали?
потому что это каким-то образом сталкивается с моими полями имени пользователя, в основном я создаю систему входа
я просто хочу ограничить ввод и обработку моего имени "saurishmonga" в моей базе данных, и люди должны получить за это эхо
вы можете просто проверить if ($username!='saurishmonga'){//do stuff}
@saurishmonga вы хотите использовать значение жесткого кода или хотите сначала проверить его из БД, чтобы выдать ошибку.
@MUFAzmi, я просто хочу, чтобы отображалась ошибка, когда кто-то пишет «saurishmonga» и отправляет форму, а я не могу этого сделать.
Можно было просто сравнить.
$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 переводит оба имени в верхний регистр перед сравнением.
что я должен поместить между кодом для вставки в базу данных?
Если вы хотите сравнить более одного значения.
Попробуйте этот код.
<?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";
}
?>
if ($param_username == "bad-username") { echo "Something went wrong"; }