Есть ли какие-нибудь короткие руки для проверки пользовательского ввода в php? - PullRequest
0 голосов
/ 22 апреля 2011

например, у меня есть функция регистрации, которая требует, чтобы пользователь вводил свои "имя пользователя", "адрес электронной почты" и "пароль".

Мне нужно проверить все параметры от пользователя, которые не равны NULL, кроме того, мне нужно проверить их длину ввода, достаточно короткую для хранения в БД. Кроме того, мне нужно проверить, есть ли дублированные имя пользователя и адрес электронной почты в БД. Кроме того, мне нужно проверить, является ли адрес электронной почты действительным форматом электронной почты.

Создайте только достаточно простую регистрационную функцию, мне нужно много проверять. Есть ли короткие руки для проверки некоторых базовых вещей? например, который не равен нулю для увеличения производительности.

1 Ответ

5 голосов
/ 22 апреля 2011

Вы должны проверить все это, потому что он не может проверить себя.

PHP имеет ряд полезных функций, помогающих ...

isset()

isset() для обеспечения установки переменных GET / POST. Эти пропуски, как правило, вызваны только тем, что люди возятся.

Пример

if ( ! isset($_POST['email'])) {
   $this->addError('You did not supply your email');
}

trim() и empty()

trim() и empty() для проверки того, что кто-то ввел какой-либо текст, кроме пробелов. Обратите внимание, что empty() является конструкцией и должна вызываться для переменной, , а не строка, возвращаемая trim() напрямую (я думаю, потому что она хочет исследовать блок в памяти, а не значение в стеке ).

Пример * * 1 032 $email = trim($_POST['email']); if (empty($email)) { $this->addError('You didn\'t type any non whitespace characters'); } Конечно, используйте лучшую ошибку, понятную вашим конечным пользователям. Это также используется так часто, что вы можете сделать вспомогательную функцию, которая делает это. filter_var() Вы можете использовать filter_var() для проверки таких вещей, как проверка электронной почты, IP-адресов и целых чисел. Пример

if ( ! filter_var($email, FILTER_VALIDATE_EMAIL)) {
   $this->addError('You did not enter a valid email');
}

Регулярные выражения

Регулярные выражения могут многое сделать сами, например, проверять действительные символы, шаблоны и длины.

* * Пример одна тысяча пятьдесят пять * * тысяча пятьдесят шесть
if ( ! preg_match('/^\w{4,12}\z/', $username)) {
   $this->addError('You did not enter a valid email');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...