Этот вопрос задан раньше, чем строки, однако * ни один из вопросов, которые я просмотрел (не моды не удаляют или не сообщают нам, что это дубликат, пожалуйста) на самом деле отвечают на мой вопрос ,Проверьте, является ли элемент массива в строке
У меня есть целевая страница с простой регистрацией через почтовый ящик. В последнее время люди злоупотребляют им, введя иностранные символы, такие как *, #, $,%, а также с использованием ненормативной лексики (вы всегда можете сказать). У меня есть массив запрещенных символов и слов, я использую следующие
$banned = array("f**k", "f******", "blah", "*", "#", "$", "%");
я могу сказать наверняка кто был преднамеренно пытается снова и снова, чтобы пройти через это, потому что я пропустил некоторые символы и вдруг пучка адресов введена, не имеет никакого смысла. Мне нужно знать, как использовать цикл, чтобы пройти и найти, если следующий содержит какой-либо из запрещенных слов в массиве
$email = $_POST['email'];
Я попытался с помощью
$arrlen = count($banned);
for($i=0; $i < $arrlen; $i++) {
if(stripos($email, $banned[$i] !== false) {
echo 'Banned word or character!';
}
else {
echo 'Email signed up!';
}
}
Это не работает в все! Я попробовал старую функцию is_str_contain, но ошибка функции не существует.
Я пробовал нормальные strpos также, все еще не радость.
Что: * Это не работает вообще * означает? У вас есть: «Предупреждение PHP: не работает вообще в строке 4»? Также добавьте отчет об ошибках ('ini_set (" display_errors ", 1); \t error_reporting (E_ALL);') в начало вашего файла (ов) и проверьте наличие ошибок + Дайте нам реальный пример – Rizier123
Sidenote: если это предназначено для перехода на db и/или в качестве подписки, вы должны в идеале использовать метод подтверждения. Если письмо не подтвердилось, не впускайте его. Вот как вы держите riff-raff вне ;-) –
Просто чтобы добавить это в комментарии, вам не хватает скобки ')' в вашем операторе if – Rizier123