【问题标题】:PHP string validatorPHP 字符串验证器
【发布时间】:2013-07-10 03:11:47
【问题描述】:

嘿,我正在寻找一个适用于该代码的 PHP 字符串验证器:

if(!isValidName($name))
{
    $errors[] = lang("MAIL_NAME_ERROR");
}   

这是我现在设置的代码我已经尝试了这两个代码,它们不返回输出的值这里是我尝试的代码:

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

这是我尝试过的一个,它输入错误消息但不返回值或重置值,另一个我尝试过但不起作用的是:

function isValidName($name)
{
   if (strcspn($name, '0123456789') != strlen($name))
      return FALSE;
   $name = str_replace(" ", "", $name);
   $result = explode("_", $name);
   if(count($result) == 2)
      return TRUE;
   else
      return FALSE;
}

基本上我想做的是,当我没有在我的电子邮件表单上输入我的名字时,我想会收到这样的错误消息:

请输入您的全名

当我这样做时,消息应该会消失。好吧,当字段为空时,我会收到消息,但是当缺少任何其他值时,我会像这样收到所有消息:

Please enter your full name
Please enter your telephone number
Please enter your password
Failed security question

有没有人知道可以处理我的字符串或设置另一个字符串的字符串验证器?

【问题讨论】:

  • MAIL_NAME_ERROR是什么过滤器??
  • 你需要澄清你想要做什么。您是否只是查看该字段是否已填写(不太可能)?您是否要查看名称是否仅包含字母?
  • 否决了您,因为这是您第二次被指向无效的过滤器类型:stackoverflow.com/questions/17583429/…

标签: php


【解决方案1】:

如果您只需要验证是否设置了输入,只需执行以下操作:

if(isset($_POST["name"]) && !empty($_POST["name")){
// Name was entered
}
else{
// Name was not entered
}

正如 PeeHaa 所建议的,您可以使用 filter_var($email_a, FILTER_VALIDATE_EMAIL),这是一个内置的 PHP 函数,可以验证不同的东西,在这种情况下是电子邮件。更多详情请查看doc

你也可以更进一步,使用这个方法:Using MX records to validate email addresses

【讨论】:

  • "对于电子邮件和地址,我使用正则表达式和 preg_match" uhhhmm 只是不,除非你真的真的擅长正则表达式:stackoverflow.com/questions/12026842/…
  • 好吧,有时您别无选择,因为 filter_var 适用于 PHP >= 5.2,但我也编辑了我的答案以建议 filter_var
  • 是的,这就是为什么我在回答中提供了我怀疑您正在使用的正则表达式的原因。我也不怀疑 OP 只需给他一个链接到 preg_match 手册页和 www.regular-expressions.info
  • 不,我的意思是,如果您要回答,至少要让它有所帮助,而不是让 OP 走上错误的道路来寻求他/她的解决方案。顺便说一句,我完全支持在这里为人们提供复制面食解决方案。 FWIW :-)
  • 同意 OP 缺乏努力。刚刚发现已经有人指出他的代码中的一个缺陷(请参阅我在 OP 下的评论)。
猜你喜欢
  • 1970-01-01
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
相关资源
最近更新 更多