Я проверяю переменные запроса POST, и я делал вот так:
$email = htmlentities($_POST['email']);
Но теперь я искал и узнал о filter_var, и я делаю проверку следующим образом:
$email = filter_var(htmlentities($_POST['email']), FILTER_SANITIZE_EMAIL);
Какой путь лучше? и для всех типов ввода [телефон – строка – и т. д.] Что мне нужно использовать?
Извините, что я новичок, и я изучил руководство, но я не мог много понять.
Спасибо за помощь.
Используйте только следующую строку для писем:
filter_input(INPUT_POST, "email", FILTER_SANITIZE_EMAIL);
Это позволит правильно удалить нелегальные символы с символом электронной почты (например ;
и сохранить юридические данные, такие как &
или +
Использование htmlentities
может превратить юридический адрес электронной почты в незаконный, который FILTER_SANITIZE_EMAIL
будет разорвать.
Если вы имеете дело с пользовательским вводом для меток или описаний, вы можете сохранить указанный вход нормально (используя подготовленные операторы, чтобы позволить БД избежать ввода правильно) и использовать htmlentities
при отображении его на странице . В качестве альтернативы вы можете использовать:
filter_input(INPUT_POST, "description", FILTER_SANITIZE_STRING);
Эта строка дезинфицирует теги фильтров.
Вы можете проверить больше фильтров по адресу: http://php.net/manual/en/filter.filters.sanitize.php