0

処理前に名、姓、および電子メールを検証するフォームがあります。ただし、何かが機能していないようです。電子メール アドレスを入力し、スクリプトがそれを検証すると、名と姓のチェックに関係なくページが続行されます。

HTML フォーム入力

First Name <input type="text" id="new_user_fn" name="new_user_fn">
Last Name <input type="text" id="new_user_ln" name="new_user_ln">

PHP スクリプト

$ec = 0;
$fn = trim($_POST['new_user_fn']);
$ln = trim($_POST['new_user_ln']);

if(!ctype_alpha($fn) OR strlen($fn) <= 0){
    $error = "First Name cannot be blank and may only contain letters";
    $ec++;
}

if(!ctype_alpha($ln) OR strlen($ln) <= 0){
    $error = "Last Name cannot be blank and may only contain letters";
    $ec++;
}

基本的に、これは $fn がアルファベットで、長さが 0 より大きいかどうかをチェックして、ユーザーが入力に有効なテキストを入力したことを確認します。次に、電子メール アドレスを確認し (この部分は正しく機能するため、投稿から省略しました)、$ec の値を確認します。

if($ec > 0){
    die($error);
}else{
    // Finish Processing
}

したがって、「fn」と「ln」の入力を空白のままにして、有効な電子メール アドレスを指定すると、スクリプトは $ec = 0 として実行されます。

簡単なものがありませんか?

4

1 に答える 1