PHP:验证并清理电子邮件地址

时间:2020-01-09 10:43:01  来源:igfitidea点击:

问题描述:如何使用PHP编程语言验证输入数据,例如电子邮件地址?

解决方法:您需要使用旨在安全处理输入参数的PHP过滤器。
它可以验证和过滤来自某些不安全来源的数据,例如通过过滤器扩展的用户输入。
该扩展是PHP Core 5.20及更高版本的一部分,但您始终可以在Linux下安装它。
您可以使用过滤器来验证以下数据类型:

  • 正则表达式
  • 网址
  • 电子邮件
  • 字符串
  • magic_quotes
  • 常规数据类型,例如int,float等

验证电子邮件地址

这是一个示例代码:

<?
$email="[email protected]";
if ( filter_var($email, FILTER_VALIDATE_EMAIL)  == TRUE) {
	echo 'Valid Email Address';
}
else
{
	echo 'Invalid Email Address';
}
?>

filter_var()将使用指定的过滤器过滤变量。
在这种情况下,您使用了FILTER_VALIDATE_EMAIL过滤器。
您可能还想使用以下代码来清理电子邮件:

$out=filter_var($email, FILTER_SANITIZE_EMAIL);

这是另一个示例:

<?php
// form.php
//....
//......
$_POST['email'] = stripslashes(trim($_POST['email']));
$tmpEmail=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
if ( filter_var($tmpEmail, FILTER_VALIDATE_EMAIL)  == TRUE) {
	// callSmtp
	fireSmtp();
}
else{
	//show error
	echo 'Invalid Input - an error has occurred when trying to send this email';
}
///....	
 
?>