【问题标题】:How can I make my email code work PHP?如何使我的电子邮件代码工作 PHP?
【发布时间】:2013-07-11 01:02:35
【问题描述】:

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

//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 个将一个一个消失?

【问题讨论】:

标签: php email


【解决方案1】:

要进行自己的回调,您不能只传递常量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;
  }
}

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

【讨论】:

  • 它不工作你可以在blanky-store.net/access/new_reg_e.php查看页面
  • 也许你应该在 PHPglue.com 下载 PHPglue 库。查看文档并单击Downloads 选项卡。默认情况下,它会自动测试您的字段是否为空。实际上,它将生成您的 HTML 并处理您的 Sticky Form,包括客户端和服务器端。不过,您将不得不制作一个电子邮件正则表达式。这是给你的一个:'/^.{1,62}@.{1,62}\.[a-zA-Z]{2,4}$/'。它应该进入errorDiv() 方法。您可能再也不需要编写复杂的代码来再次处理您的 Stick Forms。当然是我写的!
猜你喜欢
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 2018-07-15
  • 2012-08-17
  • 2016-12-06
相关资源
最近更新 更多