我是PHP的初学者,尝试学习验证表单数据的基础知识。我想检查密码是否已设置,是否需要进一步检查密码长度是否正确以及字符是否正确等。
//check if set
if (empty($_POST['password']) {
//further validate - check length, characters etc
if (myFunction(($_POST['password'])) {
//success
$password = $_POST['password'];
}
else {
$error = "Password must be at least 8 characters and contain at least one number";
}
}
else {
$error = "Password is required";
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,如果用户输入“ 0”作为密码,Empty()函数将其视为空,并且收到“需要密码”错误,而不是“必须密码”。 ”等错误。
相反,使用isset()函数也不起作用,因为空字段将返回空字符串,该字符串将被视为已设置。
目前,我有一个解决方法,可以进一步检查密码是否设置为“ 0”,但是必须有一种更优雅的方法。
抱歉,如果另一个问题已解决,我什么也找不到。谢谢
使用isset()(可能还使用strlen(trim()),而不是empty()。虽然显示了此代码的方式,但它只会处理一个空密码,并且会给输入密码的任何人带来错误。
if(isset($_POST['password']) && strlen(trim($_POST['password']))){
//process
}else{
//error
}
Run Code Online (Sandbox Code Playgroud)