我想制作一个小联系表单,用户输入他的姓名,电子邮件和邮件。 表单与ajax一起提交到php文件,该文件必须执行以下操作:
1-检查3个发布的变量是否存在而不是NULL 2-清理并验证恶意代码的3个变量和一些标准,如名称必须和电子邮件必须.. 3-用php的邮件发送数据()。
如何使用php filter
实现第一步和第二步注意:我看了一下php的手册,我什么都不懂。
感谢。
答案 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)