我想制作一个小小的联系表单,用户输入他的姓名,电子邮件和邮件。 形式与阿贾克斯提交到必须做以下PHP文件:php内置过滤器
1-检查,如果3张贴存在变数,而不是NULL 2 - sanitize方法和验证3个变量的恶意代码和一些标准,如名称必须是,电子邮件必须是。 3-使用php的邮件()发送数据。
我怎么能做到第一,使用PHP过滤器第二步骤
NB:我看了一下PHP的手册,我明白什么。
谢谢。
我想制作一个小小的联系表单,用户输入他的姓名,电子邮件和邮件。 形式与阿贾克斯提交到必须做以下PHP文件:php内置过滤器
1-检查,如果3张贴存在变数,而不是NULL 2 - sanitize方法和验证3个变量的恶意代码和一些标准,如名称必须是,电子邮件必须是。 3-使用php的邮件()发送数据。
我怎么能做到第一,使用PHP过滤器第二步骤
NB:我看了一下PHP的手册,我明白什么。
谢谢。
1. 使用isset()或array_key_exists()在$ _ POST增加,看是否存在价值。
if (isset($_POST['a_field']))
// or
if (array_key_exists('a_field', $_POST))
你也可以使用filter_has_var,但它也有一个你需要知道的“gotcha”。它不适用于PHP的superglobals,而是依赖于发送到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))
您可以只使用`!empty`,因为它也在内部执行`isset`检查。 – RobertPitt 2011-02-15 21:12:18
你可以为电子邮件做到这一点:
filter_var('[email protected]', 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)
您可以为每个字段添加更多选项,或将电子邮件的过滤器更改为FILTER_VALIDATE_EMAIL – AmirModiri 2011-02-15 21:14:36
请记住,提交这样的电子邮件可能具有有效的语法,但不正确或属于用户。特别是不要直接邮寄()任何东西 - 这是进入垃圾邮件黑名单的一种简单方法。 – aaz 2011-02-15 21:07:14