встроенный фильтр php - PullRequest
       4

встроенный фильтр php

3 голосов
/ 15 февраля 2011

Я хочу сделать небольшую контактную форму, где пользователь вводит свое имя, адрес электронной почты и сообщение.Форма отправляется с ajax в php-файл, который должен выполнять следующие действия:

1 - проверять, существуют ли 3 опубликованные переменные, а не NULL 2 - проверять и проверять 3 переменные на наличие вредоносного кода и некоторых критериев,как имя должно быть, а адрес электронной почты должен быть .. 3- отправьте данные с помощью php mail ().

как я могу выполнить первый и второй шаги с php filter

NB:Я взглянул на руководство php и ничего не понял.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 15 февраля 2011

1. Используйте isset () или array_key_exists () в $ _POST, чтобы увидеть, существуют ли значения.

if (isset($_POST['a_field']))

// or

if (array_key_exists('a_field', $_POST))

Вы также можете использовать filter_has_var, но у него также есть "недоработка", о которой вам нужно знать. Он не работает с суперглобалами PHP, а полагается на данные, отправляемые в PHP. Если вы вручную объявите что-то в своем скрипте, например, $_POST['test'], filter_has_var не увидит его.

Как использовать filter_has_var:

if (filter_has_var(INPUT_POST, 'test'))



2. Вы хотите очистить данные или проверить их? (две разные вещи).

Утверждение, что имя и адрес электронной почты имеют значения, и этот адрес электронной почты является действительным:

if (!empty($_POST['name']))

if (!empty($_POST['email']) && filter_input(INPUST_POST, 'email', FILTER_VALIDATE_EMAIL))
1 голос
/ 15 февраля 2011

Вы можете сделать это для электронной почты:

filter_var('name@domain.com', FILTER_VALIDATE_EMAIL)

Возвращает отфильтрованные данные или FALSE в случае сбоя фильтра.

Вы можете просто проверить значениесделать это с массивом. $args = array( 'name' => array('filter' => FILTER_VALIDATE_BOOLEAN, 'flags' => FILTER_NULL_ON_FAILURE), 'email' => array('filter' => FILTER_VALIDATE_BOOLEAN, 'flags' => FILTER_NULL_ON_FAILURE), 'message' => array('filter' => FILTER_VALIDATE_BOOLEAN, 'flags' => FILTER_NULL_ON_FAILURE));</p> <p>$myinputs = filter_input_array(INPUT_GET, $args);</p> <p>

Вы можете добавить несколько фильтров или несколько флагов к одному полю, как это

email => array("filter" => array(FILTER_VALIDATE_EMAIL ,FILTER_VALIDATE_BOOLE)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...