Филтри

Валидиране на данни = определяне дали данните са в правилната форма. Почистване на данни = премахване на всякакъв нежелан знак от данните.

Разширението PHP филтър

PHP филтрите се използват за валидиране и почистване на външни входящи данни. Разширението за филтри на PHP притежава много от необходимите ни функции за проверка на входните данни на потребителя и е проектирано така, че валидациите да се извършват много лесно и удобно. Функцията filter_list() може да се използва, за да покаже какво предлага PHP разширението:

Опитайте сами »

Защо да използваме филтри?

Много уеб приложения работят с външни входни данни. Тези външни входящи данни могат да бъдат различни типове. Да разгледаме следният списък:

  • Потребителски входни данни от HTML форма
  • Бисквитки
  • Данни от други уеб базирани услуги
  • Сървърни променливи
  • Данни заяваени от бази данни

Винаги трябва да преглеждаме входящите данни! Има един израз сред програмистите: никога не вярвай на потребителите – тоест какви данни ще въведат. Некоректно изпратени данни могат да доведат до проблеми със сигурността и да счупят страницата ни. Чрез употребата на PHP филтрите можем да се подсигурим, че нашето приложение ще приеме коректни данни.


PHP filter_var() функцията

Функцията filter_var() едновременно валидира и почиства входните данни като филтрира една променлива със специфичен филтър. Тази функция приема две стойности като параметри:

  • Променливата, която искаме да проверим
  • Използвания тип за проверка

Следващият пример ползва функцията filter_var() за да премахне всички HTML тагове от съответният стринг:

Опитайте сами »

Следващият пример отново ползва функцията filter_var() за да провери дали променливата $int е със стойност от типа „цяло число“/integer/. Ако $int е с такава стойност, изходният резултат от функцията ще бъде: Integer is valid. Ако $int не е със стойност от типа „цяло число“ функцията ще изведе: Integer is not valid:

Опитайте сами »

Tip: filter_var() и проблемът, който се явява когато имаме числото 0. В примера долу ако на променливата $int беше зададена стойност 0/нула/, горната функция ще върне „Integer is not valid“. За да решим този проблем ще ползваме следващият код:

Опитайте сами »

Следващият пример ползва функцията filter_var() за да провери дали променливата $ip е валиден IP адрес:

Опитайте сами »

Следващият пример ползва функцията filter_var() първо за да премахне всички невалидни знаци от променливата $email, като след това проверява дали въведения адрес е валиден:

Опитайте сами »

Следващият пример ползва функцията filter_var() първо за да премахне всички невалидни знаци от URL-а, като след това проверява дали въведения адрес /$url/ е валиден URL:

Опитайте сами »