Ну, $var1 or $var2 or $var3
, очевидно, совершенно не так. Вы не можете or
строки и ожидать достойного результата. В большинстве случаев результат будет true
, а это не то, что вам нужно.
Это заставляет меня усомниться в вашем утверждении: «Он работает с обоими кодами».
И да, если я проверю руководство на preg_match , очевидно, что он не принимает несколько предметов, разделенных запятыми.
Так что обе версии не работают .
Кроме того, это более общая проблема. Вы пытаетесь использовать preg_match()
, чтобы ограничить возможное содержимое переменных от 1 до 12 символов из "a-zA-Z._"
. Это очень ограничительно. считается плохой практикой ограничивать имена пользователей и пароли следующим образом.
Вы также просто die();
, когда не найдено совпадение с образцом, это не очень информативно для пользователя.
Таким образом, «более чистая» версия - исключить этот код.
Извините, что я не могу быть более позитивным ... Возможно, намек поможет?
Посмотрите на filter_input () , это то, что я сейчас использую для фильтрации ввода.