カレッヂ |
質問者 ponta
投稿日 1/10(木) 10:48:27
簡易ショッピングバスケットで注文フォームに 特商法のチェックを入れ忘れたり メールを入れ忘れたりして次へ進み警告が出た時点で 前のページへもどりチェックを入れ最終確認へ進を押すと 送信中ですのでしばらくおまちください。という警告がでて 進めなくなるのですが、しばらく待っても進めないのですが 商品一覧までもどり、現在の買い物カゴノ中身を表示で 進むと出来るようになります。 チェックし忘れの方がいるかも知れませんので なんとかしたいのですが、どうしたらよいでしょうか。 |
回答者 呑兵衛@大阪
[削除]
投稿日 1/10(木) 23:30:05
そういうスクリプトにはなっていないと思うのですが。 購入者情報を打ち込み、→最終確認へ進む ボタンをクリックすると webform.cgi にデータが転送され、 デフォルトスクリプトでは特商法を読んだことのチェック、またはEmailアドレス未記入の、 いずれかに引っかかるとエラー画面が出て、前に進めません。 > 送信中ですのでしばらくおまちください が出るのは、ご注文の最終確認です の画面で、→注文する ボタンを間違って2度押しした 時に出るアラートで、これは正常なスクリプトのチェック機能です。 |
質問者 ponta
[削除]
投稿日 1/11(金) 09:21:28
あれから私の設置の仕方に問題があるのではないかと思い こちらのサンプルで試したところ、やはり同じ現象になります。 当方はMACのブラウザーで使用しているのですが。 試しにWINで使用したところきちんと動作しました。 いろいろ試しましたが問題なく動作しました。 私のブラウザーの問題なのでしょうか。 失礼いたしました。 |
質問者 ponta
[削除]
投稿日 1/11(金) 10:17:15
くどいようですが、他のMACでもためしたところ(IE5.0)です。 やはり同じ現象が出て進めませんでした。 |
回答者 呑兵衛@大阪
[削除]
投稿日 1/12(土) 02:42:49
MAC 版 IE ver 5.0 にて動作の不具合を確認しました。 ページ移動後も、従前の値をクリアーできないバグのようです。 cargo.cgi の sub html の冒頭にあるヘッダー部分に以下の記述を追記し、 MAC 版 IE については 二重送信防止機能を諦める以外思い付きません。 if ($ENV{'HTTP_USR_AGENT'} !~ /MSIE.*Mac/i) { # ここから既存スクリプト print <<"EOF"; <SCRIPT language="JavaScript"> 〜〜 〜〜 </SCRIPT> </head> EOF # ここまで既存スクリプト } else { print "</head>\n"; } print "$body\n"; できれば、MACご愛用者のご意見も求めたいと思います。 |
回答者 鮎友
[削除]
投稿日 1/12(土) 22:12:20
MAC愛用者と言う事で、CGIど素人の人間が何か言うのもはずかしいのですが cargo122でテストしましたら、同じ現象でしたのでcargo.cgiのボタン部分の document.write("<input type=button value=' → 最終確認へ進む ' onClick='Kakunin()'> を document.write("<input type=submit value=' → 最終確認へ進む '> に変更したら問題なく動作はしますが、この事がどんな事をしているのか 理解していません、特商法を読んだことのチェックをしなければエラーページ がでますし、Emailアドレス未記入の場合も同じにエラーページが出ます webform.cgiの document.write("<input type=button value=' → 注 文 す る ' onClick='Kakunin()'> はこのままでいけましたがこれはtype=buttonをtype=submitに変えた時点で 二重送信防止機能を諦めたと言う事になるのでしょうか? |
回答者 呑兵衛@大阪
[削除]
投稿日 1/13(日) 18:44:55
結果は実に単純でした。これで、送信できない不具合に対応してください。 cargo.cgi の sub html のヘッダー部 print <<"EOF"; <SCRIPT language="JavaScript"> から </head> EOF までを削除し、</head> を print "</head>\n"; と修正します。 二度押し防止機能は、最終注文時のみ機能させ、かごが表示される段階では 機能させなくても影響がないからです。 なお、鮎友さんの事例ですと onClick を省略した場合 Windows 版ブラウザでは input type=submit では二度押し防止機能が働きません。 input type=button ではページの移動ができません。 |
回答者 呑兵衛@大阪
[削除]
投稿日 1/13(日) 19:52:45
追記 sub html の submit ボタン部分は <SCRIPT> <!-- document.write("<input type=button value=' → 最終確認へ進む ' onClick='Kakunin()'> <input type=reset value='× 書き直し'></form><p><br>\\n"); // --> </SCRIPT> を削除し、 print "<input type=submit value=' → 最終確認へ進む '><input type=reset value='× 書き直し'>\n"; とします。 |
質問者 ponta
[削除]
投稿日 1/15(火) 09:44:39
ぼくもCGIど素人ですので、読んでいても何となくしか 理解できませんが、上記の内容でうまくいきそうですね 同じIEでもやはりWINとMACでは扱いが違うんですね。 大変参考になりました。 さっそくやってみようと思います。 ありがとうございました。 |
返信(回答)する
Web裏技 |