人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

前回の質問(1276788484)の続きです。
cgiのメールフォームについて質問です。
「WwwMail」というフリーのcgiを使用しています。

入力エリアが空欄でも、送信ボタンを押すと、
エラーメッセージは出さずに、指定のメールアドレスに送信される設定にしてるんですが、
空欄の時だけ、メールが送られてこないようにしたいんですが、どうしたらいいでしょうか?
メール送信の設定は、文字数がオーバーするので、
コメント欄に書きます。

うまく説明できなくて、申し訳ないです。
よろしくお願いします。

●質問者: helpme1111
●カテゴリ:ウェブ制作
✍キーワード:CGI エラーメッセージ エリア オーバー コメント欄
○ 状態 :終了
└ 回答数 : 1/2件

▽最新の回答へ

1 ● rouge_2008
●60ポイント

入力エリアとは、メッセージ入力欄の事でしょうか?

この場合は、133行目付近にあるメールアドレスチェックの前の部分に、次のように数行追加してみてください。

#次から4行追加
# メッセージ本文が入力されているかチェックする
if ($FORM{'MESSAGE'} eq "") {
 &errexit("メッセージが入力されていません。");
}
#この上までが追加する部分です。(※以降は変更ありません。)
#
# EMAILが正常なメールあどれすかどうか判断する
#


メールアドレスが入力されていない場合に送信しない場合は、次のようにしてみてください。

#
# EMAILが正常なメールあどれすかどうか判断する
#
#次の行から3行追加
if ($FORM{'EMAIL'} eq "") {
 &errexit("メールアドレスが入力されていません。");
}
#この上までが追加する部分です。(※以降の行はそのまま)
if ($FORM{'EMAIL'} =~ /^[-_\.a-zA-Z0-9]+\@[-_\.a-zA-Z0-9]+$/) {
$mailfrom = $FORM{'EMAIL'};
}


※URLはダミーです。

http://q.hatena.ne.jp/

◎質問者からの返答

回答ありがとうございます。

# メッセージ本文が入力されているかチェックする
if ($FORM{'MESSAGE'} eq "") {
 &errexit("メッセージが入力されていません。");
}

#
# EMAILが正常なメールあどれすかどうか判断する
#
if ($FORM{'EMAIL'} eq "") {
 &errexit("メールアドレスが入力されていません。");
}
if ($FORM{'EMAIL'} =~ /^[-_?.a-zA-Z0-9]+?@[-_?.a-zA-Z0-9]+$/) {
$mailfrom = $FORM{'EMAIL'};
}

上記を入れてみたのですが、

送信結果というページに飛んでしまうんです。

元のデザインの中に「メールアドレスが入力されていません。」だけ表示させることは可能でしょうか?

あと、空欄ではなく、正常なメールアドレスを入力して送信ボタンを押しても、

「メッセージが入力されていません。」と出てしまうようになっちゃいました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ