Php 如何检查用户是否忘记填写没有isset()或empty()的表单?
假设网站使用此表单:Php 如何检查用户是否忘记填写没有isset()或empty()的表单?,php,string,forms,isset,Php,String,Forms,Isset,假设网站使用此表单: … … 然后用户忘记填写用户名 但是在PHP代码中有一个if语句: … $posted\u username=$\u POST['username'] if(设置($posted_username)) … 这就是isset()的“问题”。它会变成现实。它会说实际上设置了变量,因为如果值不是NULL,则isset()会返回TRUE PHP手册说,isset()“如果var存在,则返回TRUE,否则返回FALSE。” 但是如何检查用户是否忘记输入用户名 “你这个白痴!只需使用
…
…
然后用户忘记填写用户名
但是在PHP代码中有一个if语句:…
$posted\u username=$\u POST['username']代码>
if(设置($posted_username))
…
这就是isset()
的“问题”。它会变成现实。它会说实际上设置了变量,因为如果值不是NULL
,则isset()
会返回TRUE
PHP手册说,isset()
“如果var存在,则返回TRUE,否则返回FALSE。”
但是如何检查用户是否忘记输入用户名
“你这个白痴!只需使用empty()
”
那么,如果用户希望将“0”作为用户名,会发生什么情况?
即使字段中填充了“0”,也会显示该字段为空
那么,检查用户是否忘记填写表单的简单方法是什么?用户应该能够使用“0”作为用户名。您需要测试输入的字符串长度是否大于零,这可以使用PHP的:
如果$\u POST中缺少该字段(即为null)或已跳过该字段,则此操作同样有效,但对于empty()
可能出错的值,如0,此操作将正常工作
如果您还想阻止用户提交由空白组成的用户名(这可能是个好主意),那么可以调用trim()
:
if(strlen($_POST['Username'])==0{…}
@iainn哇,真不敢相信我没想到。非常感谢。您可能希望在检查长度之前也修剪条目,除非人们可以使用空白用户名。或者if($\u POST['Username']=='')
为什么您甚至让用户以用户名0开头?此外,只有“一个”应该承担这一点,而不是其他人。我认为这一点都不明智;使用empty()
,不要只在其中输入整数而输入字符串。做事总有更好的方法,但这不是其中之一。
if (strlen($_POST['Username']) === 0) {
// User did not fill out the field
}
if (strlen(trim($_POST['Username'])) === 0) {
...
}