CGI-BBS > SO−HO > ショッピングバスケット > 簡易ショッピングバスケットで全ての項目を必須事項に


カレッヂ
カレッヂ


質問者 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裏技