1

私の最初の質問がどれだけうまく答えられたかを見て大きな期待を得たので、できる限りこれを言葉にしようとしますが、これ以上情報が必要な場合は叫んでください.

私が使用するすべての異なるテストサーバーで正常に動作するサイトを構築しましたが、現在はクライアントのサーバー上にあり、小さなバグが発生しました。それを修正する最良の方法。

基本的にページの 1 つで、クエリ文字列が存在するかどうかを判断するための php if ステートメントがあります。このコードは以下のとおりです。

<?php if (isset($_GET['area'])) { ?>
    <script type="text/javascript">
        $(function() {
            setTimeout(function() {
                $('#<?php echo $_GET['area']; ?>-popup').click();
            }, 500);
        });
    </script>
<?php } ?>

私のサーバーではすべてうまく機能しますが、クライアントではこれisset($_GET['area'])は常に返されtrueます。を追加するリンクを使用してページに移動する?area=testと、サーバーがこの値を保存し、このページに戻るたびに、GETが true であると判断し、ポップアップを実行します。クエリ文字列はありません。

非常に面倒です。おそらくセッションをクリアすることを考えていましたが、やり過ぎのよう$_GETです。クエリ文字列が存在するかどうかを確認する前に実行できる未設定の機能があります。

$_GETサーバーがSを保存するのは気が狂っているように思えます。

前もって感謝します。

4

3 に答える 3

2

$_GET私の知る限り、キャッシュはありません。

GETさらに、通常、次のようなサーバーキャッシュを回避するためにランダムな値を設定します?seed=123131153131

ページを表示するときに Php に送信するリクエストについてよろしいですか?

于 2012-09-06T09:20:41.893 に答える
2

不可能だよ。'parameter' が URL にない場合、$_GET['parameter'] はありません。isset() が true を返す場合、それは URL に存在します。

ブラウザーが get パラメーターを使用して URL をキャッシュするか、パラメーターを別の場所で「偽装」します。

于 2012-09-06T09:21:55.153 に答える
2

$_GETキャッシュされません。

ただし、単一の=.

何かのようなもの;

if ($_GET['area'] = 'test')

これはそれを設定し、それを真にします。したがって、常にそれを持っています(そして、これif()はその場合にも当てはまります

于 2012-09-06T09:24:04.967 に答える