PHP中的简单密码验证

mhu*_*132 0 php passwords

我是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”,但是必须有一种更优雅的方法。

抱歉,如果另一个问题已解决,我什么也找不到。谢谢

Jes*_*ica 5

使用isset()(可能还使用strlen(trim()),而不是empty()。虽然显示了此代码的方式,但它只会处理一个空密码,并且会给输入密码的任何人带来错误。

if(isset($_POST['password']) && strlen(trim($_POST['password']))){
   //process
}else{
   //error 
}
Run Code Online (Sandbox Code Playgroud)