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