如何强制用户使用 > 或 = 8 个字符。密码?

how to force user to use > or = 8 char. password?

我想强制用户使用 > 或 = 8 个字符。密码但由于某种原因无法正常工作,我尝试了 count()strlen()

if(count($_POST['newpass']) < 8){
        // ERROR
    }

更新(整个 php 密码更改代码):

    if(!empty($_POST['update'])){
    
    if( strlen( trim( $_POST['newpass'] ) ) < 8 ){
        $error = error('Password should be at least 8 characters in length.');
    }
    
    $options = array("cost"=>4);
    $hashPassword = password_hash($_POST['newpass'],PASSWORD_BCRYPT,$options);
    
    $getpass = $odb -> prepare("SELECT `password` FROM `users` WHERE `ID` = :id");
    $getpass -> execute(array(":id" => $_SESSION['ID']));
    $row = $getpass -> fetch(); 

    $saved_password = $row['password'];
    
    if (password_verify($_POST['oldpass'], $saved_password)) {
      $SQLUpdate = $odb -> prepare("UPDATE `users` SET `password` = :password WHERE `username` = :username AND `ID` = :id");
      $SQLUpdate -> execute(array(':password' => $hashPassword,':username' => $_SESSION['username'], ':id' => $_SESSION['ID']));
      $error = success('Password has been successfully changed');
    } else {
      $error = error('Current password is incorrect.');
    }

}

html 形式(位于 MODAL 但我猜这并不重要):

<form method="post">
<div class="form-group">
            <label for="recipient-name" class="col-form-label">Current password</label>
            <input class="form-control" style="color:black;" type="password" id="oldpass" name="oldpass" required="">
          </div>
          <div class="form-group">
            <label for="recipient-name" class="col-form-label">New password</label>
            <input class="form-control" style="color:black;" type="password" id="newpass" name="newpass" required="">
          </div>
      </div>
      <div class="form-group">
      <div class="modal-footer">
            <button class="btn btn-primary" name="update" value="change" type="submit">Change</button>
      </div>
      </div>
      </form>

试试这个:

if( isset( $_POST['update'])) {
    echo "password entered: " . $_POST['newpass'] . "<br />";
    if(strlen($_POST['newpass']) < 8 ) {
        echo "Yea nah!, password is too short" . "<br />";
    } else {
        echo "Nah yea!, password is long enough" . "<br />";
    }
}

结果 1:

输入的密码:sadfsdf 是的,不!,密码太短

结果 2:

输入的密码:asdfghjklo 不,是的!,密码足够长