0

このメソッドが false を返し続ける理由がわかりません。入力したパスワードの長さをチェックしています。間違いなく5文字以上です。入力欄の名前は正しいです。ただし、常に例外がスローされますthrow new Exception("Password must contain at least 6 characters.");

方法:

public function checkPassword(){
        if(strlen($this->post_data['register_password']) > 5){

        }else{
            throw new Exception("Password must contain at least 6 characters.");
        }
    }

呼び出し:

if( isset($_POST['register-submit'])){  
    $error = '';
    $register = new register($_POST, $dbh);
        try {
            if($register->checkUsername()){
                if($register->checkPassword()){

                }
            }
        } catch (Exception $e) {
            $error .= '<span style="color:red;">' . $e->getMessage() . '</span>';
        }
}

編集:クラスをさらに追加

public $post_data = array();
private $dbh;
public function __construct($post_data, PDO $dbh){
        $this->error = array();
        $this->post_data = array_map('trim', $post_data);
        $this->dbh = $dbh;

    }
4

2 に答える 2

2

var_dump($_POST)呼び出しコードの先頭に置いてみてください。パスワードの変数名が正しいことを確認してください。register-submit送信ボタンとregister_passwordパスワードがあることに気付きました。ハイフン ( -) とアンダースコア ( )を混ぜていませ_んか?

于 2013-09-16T16:46:47.930 に答える