如何让我的电子邮件代码能够运行PHP?

时间:2013-07-11 01:02:36

标签: php email

嘿,此代码假设在电子邮件表单上未输入输入时添加错误消息,并且假设在最终输入代码时删除错误消息。我有两个人使用以下代码:

//Generate a unique code
function getUniqueCode($length = "")
{   
$code = md5(uniqid(rand(), true));
if ($length != "") return substr($code, 0, $length);
else return $code;
} 

//Generate an activation key
function generateActivationToken($gen = null)
{
do
{
    $gen = md5(uniqid(mt_rand(), false));
}
while(validateActivationToken($gen));
return $gen;
}

和这段代码:

//Checks if an email is valid
function isValidEmail($email)
{
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    return true;
}
else {
    return false;
}
}

我已经创建了自己的代码,当电子邮件表单上没有输入时会显示错误消息,但是当我在电子邮件表单上输入正确的内容时,它不会将错误消息从错误消息框中取出。这是代码:

//Checks if a name is valid
function isValidName($name)
{
if (filter_var($name, MAIL_NAME_ERROR)) {
    return true;
}
else {
    return false;
}
}

总而言之,当没有像这样的输入时,所有5个都在工作:

  
      
  • 请输入您的全名
  •   
  • 请输入有效的电子邮件地址
  •   
  • 请输入您的电话号码
  •   
  • 请输入您的密码
  •   
  • 安全问题失败
  •   

但是当我输入我的电子邮件地址和安全码时,只有我的安全和电子邮件正常工作:

  
      
  • 请输入您的全名
  •   
  • 请输入您的电话号码
  •   
  • 请输入您的密码
  •   

名称,电话和密码无法正常工作,只能通过显示代码来工作,但在输入正确信息时不会删除代码。

如何修复我的代码,使所有3代码逐渐消失?

1 个答案:

答案 0 :(得分:0)

要进行自己的回调,您不能只传递常量MAIL_NAME_ERROR。如果你想通过自己的功能,你必须做类似的事情:

function mail_name_error(){
  //do your thing here
}
function isValidName($name){
  if(filter_var($name, FILTER_CALLBACK, array('options' => 'mail_name_error'))){
    return true;
  }
  else {
    return false;
  }
}

请参阅http://php.net/manual/en/function.filter-var.php上的options部分。