CGI-BBS > 情報収集 > フォームメール > 入力チェックが通らないのですが。


カレッヂ
カレッヂ


質問者 ジゴ郎  投稿日 6/19(火) 15:23:42
cgiにて、入力チェック等を行っているのに、入力チェックがされずにメールだけは空で送信されてしまいます。
他のサイトで使用したcgiを流用しているので、大きなところで問題はないようにも思えてしまって、何度見直してもどこが悪いのかでてきません。
どなたかアドバイスを下さいますようよろしくお願いいたします。

http://www.seeg.co.jp/test/mail/mail.html

cgi内容は
http://www.seeg.co.jp/test/mail/mail.txt

です。
回答者 しあわせのツボ  [削除]  投稿日 6/19(火) 16:47:33
確かにエラーだと判定された時に処理する部分は入っていますが、その前にエラーかどうかを判定する部分がどこにもありません。
コピー忘れでもなさそうですので、流用元でもチェックされていなかったのではないでしょうか。
エラーチェックのルーティンを追加する必要があるでしょう。
質問者 ジゴ郎  [削除]  投稿日 6/19(火) 17:02:03
エラーチェックを行って、OKの場合とNGの場合という判定とは、
以下のところではないのですか?

&check_proc ;             # 入力エラーチェック
if ($rc == 0) {
  &format_proc ;          # 選択項目をテキストに編集
  &mail_proc ;            # メール送信
  &end_proc ;             # 操作完了ページ表示
} else {
  &err_proc ;             # 入力エラーページ表示
}

すみません、よく分からないのでお教えください!
回答者 しあわせのツボ  [削除]  投稿日 6/19(火) 18:12:38
同じ内容ですが、改めて説明します。
&err_procはあるのですが、これは「エラーがあった時にその旨を表示する」だけのものです。
「送信された内容が正しいかどうかをチェックし、エラーがあればそれを&err_procに知らせる」機能がスクリプト中に存在していないので、&err_procが実行されることはあり得ません。
「内容をチェックし、問題があれば$rc(とその種類に応じて@CHKFLGのいずれか)を適切に変更する(そうすると&err_procが動作する)」という部分が別途必要です。
回答者 しあわせのツボ  [削除]  投稿日 6/19(火) 18:16:11
追記。
おそらく、&check_procがチェックをしていると信じているのでしょうが、該当部分を見ると入力チェック処理はされていません。
質問者 ジゴ郎  [削除]  投稿日 6/19(火) 22:34:38
なるほど。確かにcheckされていると信じておりました。恥ずかしいですが。。
すみません。ちゃんとcheckするように作ります。流用元のやつも、、
どうもありがとうございます!

このページは終了したので返信(回答)は書きこめません

Web裏技