PHP - $ _GET由服务器缓存

时间:2012-09-06 09:16:41

标签: php caching get

我很高兴看到我的第一个问题得到了解答,所以我会尽力说出最好的信息,但如果你需要更多的信息请大声说出来。

我有一个我已经构建的网站在我们使用的所有不同的测试服务器上工作正常,但现在在客户端的服务器上,并且出现了一个小错误,在搜索后我理解它为什么这样做,但不是确定解决问题的最佳方法。

基本上在其中一个页面上我有一个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为真然后执行弹出窗口,即使没有查询字符串。

非常烦人,我想考虑清理会话但是看起来有点过分,是否有一个未设置的$_GET函数,我可以在检查查询字符串是否存在之前执行。

希望有意义的是我以前从未做过这样的事情,服务器存储$_GET S似乎很疯狂。

提前致谢。

3 个答案:

答案 0 :(得分:2)

只要我知道,$_GET就没有缓存。

此外,通常您会设置一个随机GET值以避免服务器缓存,例如?seed=123131153131

您确定在显示页面时发送给Php的请求吗?

答案 1 :(得分:2)

这是不可能的。如果'参数'不在网址中,则没有$ _GET ['参数']。如果isset()返回true,则它将出现在url中。

浏览器缓存url WITH get参数,或者你在其他地方“欺骗”参数。

答案 2 :(得分:2)

$_GET不会被缓存。

但是,我可以想象你用一个=进行检查。

喜欢的东西;

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

这将设置它,并使其成立。因此,你将永远拥有它(在这种情况下,if()也将成立