Я выполнил аутентификацию с помощью PIN-кода на своем веб-сайте и не хочу, чтобы мой пользователь использовал обычные PIN-коды, такие как 12345, 11111, 121212 и т. д.
я пробовал это
if ($PIN= = "111111" || $PIN = "222222"){
echo "This PIN is common";
}
Но я думаю, что это будет слишком долго для простой функции? Как это упростить?
Скорее всего, вы не хотите заниматься аутентификацией самостоятельно. Вы пробовали искать существующие библиотеки?
Ваша проблема на самом деле довольно проста: вы хотите, например, избегать выводов, которые имеют несколько итераций одного и того же символа в строке ИЛИ/И избегать выводов, в которых один и тот же символ повторяется более X раз в строке.
Используя регулярное выражение, мы можем легко добиться чего-то вроде этого: например, следующее вернет 1, если в строке 3 или более символов.
<?php
$pin = '111025';
if ( preg_match( '/(.)\1{2}/', $pin ) ) {
return true;
} else {
return false;
}; ?>
RegEx
.
Регулярное выражение — это последовательность символов, формирующая поисковый запрос. шаблон. Когда вы ищете данные в тексте, вы можете использовать этот поиск образец для описания того, что вы ищете.
preg_match()
Возвращает 1, если шаблон найден в строке, и 0, если нет
( )
Вы можете использовать круглые скобки ( ), чтобы применить квантификаторы ко всем шаблонам. Их также можно использовать для выбора частей шаблона, которые будут использоваться в качестве соответствия.
.
Найти только один экземпляр любого символа
n{x}
Соответствует любой строке, содержащей последовательность X n
PHP RegEx
@ https://www.w3schools.com/php/php_regex.asp
регулярные выражения... вы определяете шаблон для проверки PIN-кода. Тем не менее, это требует, чтобы ВЫ знали, чего вы хотите, а чего нет.