IEだとCGIが正しく動作しないことに関して
こんにちは。CGI初心者のものです。CGIに関して詳しい方がおられましたらお教えください。
現在Perlでデータベースを作成しています。データはCSVで保存し、検索結果があれば詳細情報を読み出すものです。データとして外国語と日本語を扱うので文字コードはUTF-8にしています。
検索結果が複数ある場合、入力日でソートして入力日の古いものが検索結果として表示されます。最初に表示される検索結果の上部に「次の候補へ」というリンクをつけて、複数ある結果の他の候補を参照できるようにしています。
「次の候補へ」へのリンクは、下記のような構造で検索フォームの内容を再度リロードして検索する形式を取っています。
*********************************************
$page_line = $view_end + 1;
$count = $data_count + 1;
if ($view_end ne $data_count ) {
#次ページHTML
$reload = $reload . '?' . 'kw=' . $FORM{'kw'} . '&' . 'action=search' . '&' . 'line=' . $page_line;
print <<"EOL";
<td width="500" align="left" class="tbg4">
<p class="text"><img src="../img/link.gif" alt="link1" width="7" height="9"> <a href="$reload">検索候補が$count件存在します。次の候補へ</a></p>
</td>
</tr>
EOL
*********************************************
このロジックでFire fox, Opera, Safari, Chromeでは問題なく、次の候補へ移動できます。しかし、IEではこの処理をせずに初期画面(TOPページ)が表示されてしまいます。初期画面に移動すると言うことは他の検索候補を検索できなかったことになります。実際は他にも候補があるのに、どうしてこのように動作するのか、私にはわかりません。
しかも、奇妙なことに幾つかの文字に関してはIEでも「次の候補」が正しく表示されるものもあります。もしかすると文字コードのせいでIEでは正しく検索ができるものとできないものがあるのかと思っています。
もしこの件に関してなんらかの助言ができる方がおられましたら、何でもかまいませんので教えていただければ幸いです。宜しくお願いします。
お礼
すみません、ありがとうございます。 「網が楽なってしまう」の意味が・・・(苦笑)。 自動リロードを立ち上げていなないときは、全然普通です。1分ごとのリロードやつを6コ立ち上げて、10秒間隔にリロードしたりするんです。そのうちに、おかしくなってしまうんです。 無理な質問で、すみませんです。