php内置过滤器

时间:2011-02-15 20:33:55

标签: php filter

我想制作一个小联系表单,用户输入他的姓名,电子邮件和邮件。 表单与ajax一起提交到php文件,该文件必须执行以下操作:

1-检查3个发布的变量是否存在而不是NULL 2-清理并验证恶意代码的3个变量和一些标准,如名称必须和电子邮件必须.. 3-用php的邮件发送数据()。

如何使用php filter

实现第一步和第二步

注意:我看了一下php的手册,我什么都不懂。

感谢。

2 个答案:

答案 0 :(得分:3)

1。 在$ _POST上使用isset()array_key_exists()查看值是否存在。

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 :(得分:1)

您可以为电子邮件执行此操作:

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));

$myinputs = filter_input_array(INPUT_GET, $args);

您可以将多个过滤器或多个标志添加到一个字段中,如下所示

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