カレッヂ |
質問者 SHU
投稿日 9/22(土) 16:32:03
はじめまして。 今簡易バスケットを設置させて頂いてるのですが cgiの中を見てると下記のような項目を見つけて 全ての項目を必須事項にしたいのですが #入力チェック if ($mailcheck && $email eq '') { $email = 'anonymous@on.the.net'; } if ($spcheck eq "on") { foreach (@DATA_V) { if ($_ eq "") { &error('送信不可','受信者の意向により、全ての項目を埋めないと送信できません.'); } }} if ($nocheck eq "on") { &sendmail; } この入力チェックを動かすにはどうしたら良いのですか? どなたか分かる方がいらっしゃったら、教えていただけないでしょうか? 宜しくお願いします。 |
回答者 呑兵衛
[削除]
投稿日 9/23(日) 01:07:02
呑兵衛@大阪です。 cargo.cgi が空欄のメールフォームを送り出し、submit された後、 webform.cgiに送り出されます。そこでwebform.cgiが入力チェックを行い、 送信内容を示すHTMLを出力します。 さらに送信をクリックすると、再度 webform.cgi に送り出され、今度は 入力チェックをするプロセスの手前で sendmail ルーチンに移動します。 これが簡易ショッピングバスケットの簡略したプロセスです。 さて、spcheck は cargo.cgiのformに組み込めばいいか、それとも、 webform.cgiに組み込めばいいか、プロセスの流れを解析してみると、 それがきっとわかるはずです。 ヒントは、 name=nocheck value=on がどこから働き始めるのかを見ると わかると思いますよ。 webform.cgiの入力チェックの下のほうにある<form ****略>は、 何のため、どこに送られるでしょうか。 password など、要らないname属性値もありますので、迷わないように。 せっかく気づかれたのですから、もう一息です。 おまけ webform.cgi の $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; のあとに、 if ($host eq '') { $host = $addr; } を入れておいてください。 REMOTE_HOSTが取れるサーバーで運用されているなら、正常に働かないことがあります。 |
質問者 SHU
[削除]
投稿日 9/24(月) 18:46:44
呑兵衛@大阪さん、アドバイス有り難うございました。 ない頭を振り絞って考え抜いた末どうにか出来ました。 まる1日もかかってしまいました。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |