CGI-BBS > 基礎 > その他 > IEで正常に動作しない。


カレッヂ
カレッヂ


質問者 極超初心者  投稿日 2/6(木) 11:29:14
何度も何度も質問させていただいている極超初心者です。
またまた大変申し訳ないのですが、質問です。

商品の発注フォーム(表形式となっており、1行にチェックボックス・商品番号・製造番号・名前・個数が表記されており、チェックボックスによって発注を選択します。商品は60点程あります)からのデータを確認画面に表示させたいと思っています。
以下のperlコードを組み、現在ローカルサーバーでAN HTTPD Daemonでチェックを行っておりますが、ネットスケープでは正常に動作するのですが、IEでは正常に動作しません。
正常に動作しないというのは、ヘッダー・フッターは表示され、データの部分もある程度は表示されますが、発注フォームで25点以上発注(チェックボックスにチェックを入れる)とサーバーエラーを起したり、発注フォーム側のボタンが反応せず画面が切り替わらなくなります。
ネットスケープでは、60点全部をチェックしても問題なく全て表示されます。
ちなみにネットスケープのバージョンは7.01、IEは6.02です。
ネットスケープとIEではCGI(perl)の動作が違ってくるのでしょうか?
何度も何度も、大変申し訳ございませんが、アドバイスいただけないでしょうか?

##ヘッダーの表示
print <<HEADER;
Content-type: text/html

<html><head><title>データの確認</title></head>
<body>
<table width=600 border=0><tr align=center valign=middle>
<td><div align=center><table width=500 border=0>
<tr align=center>
<td>品番</td><td>商品名</td><td>数量</td><td>税抜金額</font></td></tr>

HEADER

##入力データの表示
for($i=0; $i<100; $i++) {
if($product{"$i"} eq 'on') {

print <<INPUT;
<form method=POST>
<tr><td><div align=center>REAL ACTION HEROES $product{"no$i"}<input type=hidden name=no value=$product{"no$i"}></div></td>
<td>$product{"fig$i"}<input type=hidden name=fig value=$product{"fig$i"}></td>
<td>$product{"num$i"}個<input type=hidden name=num value=$product{"num$i"}></td>
<td>$product{"cost$i"}<input type=hidden name=cost value=$product{"cost$i"}></td></tr>

INPUT
}
}

##フッターの表示
print <<FOOTER;
<tr><td colspan=4><br></td></tr>
<tr height=30><td colspan=4>よろしければ”OK”を押してください。</td></tr>
<tr><td colspan=4><br></td></tr></table></div>
<tr><td><center><input type=hidden name=c1 value=OK><input type=submit value=OK></center></td></tr>
</form></table>
</body></html>

FOOTER

宜しくお願い致します。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:TeraTerm
FTPソフト:FFFtp
サーバ移転:していない
改造:していない
CGI習熟度:beginner

回答者 しあわせのツボ  [削除]  投稿日 2/6(木) 12:34:57
ローカルサーバとチェックに使っているブラウザを
同じマシン上で動かしていませんか?
IEはマシンのリソースを根こそぎ使ってしまう行儀の悪いアプリなので、裏で動いている
サーバソフトにリソースが回らず、タイムアウトでエラーを起こすことがあります。
実稼働時は当然サーバとクライアントは別マシンになりますので、
数点の時に正しく動作するのであれば、問題ないと思います。
質問者 極超初心者  [削除]  投稿日 2/6(木) 15:54:31
しあわせのツボさん、毎度毎度素早い回答、本当にありがとうございます。深く感謝します。
確かにローカルサーバとブラウザは同じマシンで動かしておりました。
そこで、ローカルでなくWEBサーバ(Linux)に入れて、動かしてみました。
すると、MacのIE(5.01)およびネットスケープ(6.0および4.7)では問題なく大丈夫でしたが、WindowsのIE6.02では相変わらずサーバーエラーが出たり、ボタンが機能しないといった問題点が残ってしまいました。
やはりメモリーを節約するような、プログラムを組み直さなければならないのでしょうか?

再度で誠に申し訳ございませんが、アドバイスいただけないでしょうか?

宜しくお願い致します。
質問者 極超初心者  [削除]  投稿日 2/7(金) 16:51:24
自己レスですが、なんとかIEでも全て表示できました。
前のコードでは、商品名・番号・個数・価格、全てをhtmlから送りデコードしていたのですが、それでは処理が膨大になってしまい、タイムアウトを起してしまいました。
そのため、商品名・番号・価格をあらかじめ書いておき、チェックボックスと個数のみをhtmlから送り、チェックボックスのチェックで表示する/しないを判定させるようにしました。

いろいろアドバイスありがとうございました。
また何かありましたら、質問させていただきますので、大変申し訳ございませんが、宜しくお願い致します。

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


Web裏技