PHP 7.1.5表单验证错误消息不一致
我正在尝试创建一个带有其他输入字段的注册表,下面是一个只涉及密码字段验证的代码段。在密码验证之前,一切正常。当我发布5位或更多数字字符时,表单才会提交,但当我发布5个字母长的密码时,表单不会提交。所以,即使我发布了超过10个字母的密码,它仍然呼应“密码至少必须是6个字符”。我错过了什么PHP 7.1.5表单验证错误消息不一致,php,Php,我正在尝试创建一个带有其他输入字段的注册表,下面是一个只涉及密码字段验证的代码段。在密码验证之前,一切正常。当我发布5位或更多数字字符时,表单才会提交,但当我发布5个字母长的密码时,表单不会提交。所以,即使我发布了超过10个字母的密码,它仍然呼应“密码至少必须是6个字符”。我错过了什么 <? if(isset($_POST['pass']) && isset($_POST['pass2'])) { unset($_SESSION['pass']); unset
<?
if(isset($_POST['pass']) && isset($_POST['pass2'])) {
unset($_SESSION['pass']);
unset($_SESSION['pass2']);
$pass = htmlentities($_POST['pass']);
$_SESSION['pass'] = $pass;
$pass2 = htmlentities($_POST['pass2']);
$_SESSION['pass2'] = $pass2;
if ($pass != $pass2) {
$_SESSION['error'] = "Passwords did not match";
header('Location: register1.php');
return;
}
elseif(strlen($pass < 5)) {
$_SESSION['error'] = "Password must be 6 characters at least";
header('Location: register1.php');
return;
}
else{}
}
?>
<html>
<body>
<?
if (isset($_SESSION['error'])) {
echo('<p style="color:red; font-size: 0.9em;">'.$_SESSION["error"]."
</p>\n");
unset($_SESSION['error']);
}
?>
<form action="register1.php" method="post">
<p>
<input type="password" name="pass" placeholder="Password" required>
</p>
<p>
<input type="password" name="pass2" placeholder="Confirm Password"
required>
</p>
<p>
<input type="submit" value="Register">
</p>
</form>
</body>
</html>
您使用的是strlen($pass<5)
而不是strlen($pass)<5
:
所以,strlen($Pass)就是这样,我从你那里学到了很多,谢谢。我相信这对新手都有帮助。@UwemUke谢谢你的评论。
elseif(strlen($pass) < 5) {
$_SESSION['error'] = "Password must be 6 characters at least";
header('Location: register1.php');
return;
}