• 締切済み

空欄でも送信可能なフォーム入力項目の設定方法をおし

メールアドレスの入力欄なのですが、項目に半角英数指定をしています。 こちらを未入力(空欄)の状態で送信しようとするとエラーメッセージが出てしまうのですが、 入力なしでも送信できるように設定できるコードなどがあれば教えていただけないでしょうか。 下記は現在設定している半角英数指定のコードです。 if ($form{'before'} !~ /^[\w\+\.-]+@[\w\+\.-]*[A-Za-z0-9-]{2,23}\.[A-Za-z]{2,4}$/) { &error_check("<B>メールアドレスの形式</B>が間違っています。半角で正しく入力してください。<BR>");next;} よろしくお願いいたします。

みんなの回答

回答No.1

>if ($form{'before'} !~ /^[\w\+\.-]+@[\w\+\.-]*[A-Za-z0-9-]{2,23}\.[A-Za-z]{2,4}$/) これの意味は理解して(せめて知って)使っていますか?「半角英数指定」ではありませんよ? 「メールアドレスの入力欄」が「未入力(空欄)」の場合、「$form{'before'}」がどうなるか分かりますか? 「if ($form{'before'} !~ /^[\w\+\.-]+@[\w\+\.-]*[A-Za-z0-9-]{2,23}\.[A-Za-z]{2,4}$/)」は「$form{'before'}が/^[\w\+\.-]+@[\w\+\.-]*[A-Za-z0-9-]{2,23}\.[A-Za-z]{2,4}$/(以下、《A》)でない」場合エラーになるようにしています。なので、ここに「なおかつ空白でない」という条件を追加します。そうすると「《A》でなく、しかも空白でもない」場合のみエラーとなるので、当然「《A》であるか、もしくは空白」のときにエラーを出さずに処理を続行することになります。 以上、つまりどういうことかと言うと、「どこかの丸写しコードだかレンタルの改造したいのか知りませんが、今のレベルじゃメールフォームなんていう危険なものに手を出しちゃ駄目」ということです。

関連するQ&A

専門家に質問してみよう