PHP:表单验证“;全名;

PHP:表单验证“;全名;,php,Php,现在我的全名是: if(empty($_POST['full_name']) || strlen($_POST['full_name']) < 4) { $errormessage[] = "ERROR.\n"; } if(空($_POST['full_name']))| | strlen($_POST['full_name'])

现在我的全名是:

if(empty($_POST['full_name']) || strlen($_POST['full_name']) < 4)
{
$errormessage[] = "ERROR.\n";
}
if(空($_POST['full_name']))| | strlen($_POST['full_name'])<4)
{
$errormessage[]=“错误。\n”;
}
如何验证全名,以便输入的名称应包含空格

如有人进入:

约翰·安德森

没关系,但如果他进来:

约翰南德森

这不好,错误。因此,您的全名中需要一个“空格”。

如下所示:

if (strpos(trim($_POST['full_name']), ' ') !== false){
  // user has specified first and last name
}
elseif (strpos(trim($_POST['full_name']), ' ') !== true){
  // user has specified a single name
}
您需要输入
trim
功能来检查坏名称,例如:

  • justinalba[space]
  • [space]Justin Alba
  • Justin[space]
  • [space]Justin
    • 像这样:

      if (strpos(trim($_POST['full_name']), ' ') !== false){
        // user has specified first and last name
      }
      elseif (strpos(trim($_POST['full_name']), ' ') !== true){
        // user has specified a single name
      }
      
      您需要输入
      trim
      功能来检查坏名称,例如:

      • justinalba[space]
      • [space]Justin Alba
      • Justin[space]
      • [space]Justin

      您可以进行如下测试:

      $fullName = 'JohnAndersson';
      
      if ( ucfirst(strtolower($fullName)) != ucfirst($fullName) ) {
          echo 'It is not valid';
      }
      

      ucfirst(strtolower($fullName))
      将您的字符串转换为
      johnanderson
      ,它不等于
      johnanderson
      ,因此它应该包含一个空格。

      您可以执行如下测试:

      $fullName = 'JohnAndersson';
      
      if ( ucfirst(strtolower($fullName)) != ucfirst($fullName) ) {
          echo 'It is not valid';
      }
      

      ucfirst(strtolower($fullName))
      将您的字符串转换为
      Johnandersson
      ,它不等于
      Johnandersson
      ,因此它应该包含一个空格。

      您可能有两个字段,一个用于名字,一个用于姓氏


      我想你不想让一个名字的人填写你的表格,所以你会排除博诺、埃米纳姆、普林斯、斯汀、比约克、恩雅和其他一些人

      您可能有两个字段,一个是名字,一个是姓氏


      我想你不想让一个名字的人填写你的表格,所以你会排除博诺、埃米纳姆、普林斯、斯汀、比约克、恩雅和其他一些人

      您可以做的是拆分字符串,然后检查并拆分字符串部分

      $nameSplit = explode(' ', $name);
      
      if(count($nameSplit) < 2)
      {
      
      //Only one name given
      
      }
      else
      {
      
        $firstName = trim($nameSplit[0]);
        $secondName = trim($nameSplit[1]);
      
        if($secondName == '')
        {
      
          //No second name given
      
        }
      
      }
      
      $nameSplit=explode(“”,$name);
      如果(计数($nameSplit)<2)
      {
      //只有一个名字
      }
      其他的
      {
      $firstName=trim($nameSplit[0]);
      $secondName=trim($nameSplit[1]);
      如果($secondName=='')
      {
      //没有第二个名字
      }
      }
      
      您可以先拆分字符串,然后检查并拆分字符串部分

      $nameSplit = explode(' ', $name);
      
      if(count($nameSplit) < 2)
      {
      
      //Only one name given
      
      }
      else
      {
      
        $firstName = trim($nameSplit[0]);
        $secondName = trim($nameSplit[1]);
      
        if($secondName == '')
        {
      
          //No second name given
      
        }
      
      }
      
      $nameSplit=explode(“”,$name);
      如果(计数($nameSplit)<2)
      {
      //只有一个名字
      }
      其他的
      {
      $firstName=trim($nameSplit[0]);
      $secondName=trim($nameSplit[1]);
      如果($secondName=='')
      {
      //没有第二个名字
      }
      }
      

      我认为这不明智。名字和姓氏之间用空格分隔的惯例并不适用于世界上所有的语言。这是为了我所在城市的一个社区。我不认为这是明智的。名字和姓氏之间用空格分隔的约定并不适用于世界上所有的语言。这适用于我所在城市的一个社区。我想到了同样的观点,但是,这些人都有名字和姓氏,就像他们在注册时使用的其他人一样。尽管如此,我还是同意坚持要一个空间不是一个好主意。是的,我想那些被人为命名的名人必须在法律环境中使用他们的全名。我只是分心了几分钟,寻找只有一个名字的文化。我想到了同样的论点,但是,这些人都有名字和姓氏,就像他们在注册时使用的其他人一样。尽管如此,我还是同意坚持要一个空间不是一个好主意。是的,我想那些被人为命名的名人必须在法律环境中使用他们的全名。我只是分心了几分钟,寻找只有一个名字的文化。这是行不通的。用户可以通过在其单字全名后键入空格来欺骗服务器(顺便说一句,这在键入时很常见)。好的,但是simple
      John
      不包含任何空格字符,它是
      false
      。@hsz:OP说我如何验证全名,所以输入的名称应该包含空格?不确定他是否也想要一个名字,因为他没有具体说明。更新了答案,以防万一。@sac我无法让你的代码正常工作。即使此人输入了正确的姓名,例如“John Andersson”,也会给我带来错误。。这是我使用的代码:@Sarfraz,仍然是相同的结果,即使我用空格键入全名也会出错。它不会工作。用户可以通过在其单字全名后键入空格来欺骗服务器(顺便说一句,这在键入时很常见)。好的,但是simple
      John
      不包含任何空格字符,它是
      false
      。@hsz:OP说我如何验证全名,所以输入的名称应该包含空格?不确定他是否也想要一个名字,因为他没有具体说明。更新了答案,以防万一。@sac我无法让你的代码正常工作。即使此人输入了正确的姓名,例如“John Andersson”,也会给我带来错误。。这是我使用的代码:@Sarfraz,仍然是相同的结果,即使我用空格键入全名也会出错如果用户输入“johnanderson”怎么办?您的解决方案不起作用。您如何识别它不仅仅是一个werid名称?+1,这实际上比已接受的解决方案更加防弹(尽可能)。如果用户输入“Johnanderson”怎么办?您的解决方案不起作用。您如何才能认识到它不仅仅是一个werid名称?+1,这实际上比公认的解决方案更加防弹(尽可能)。