看到我的第一个问题得到了很好的回答,我寄予厚望,所以我会尽我所能,但如果你需要更多信息,就大声喊出来。
我已经建立了一个网站,它在我们使用的所有不同的测试服务器上都能很好地工作,但现在是在客户的服务器上,出现了一个小错误,经过搜索,我理解它为什么要这样做,但不确定修复它的最佳方法。
基本上,在其中一个页面上,我有一个php-if语句来确定querystring是否存在,这段代码在下面
<?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.似乎很疯狂
提前谢谢。
这是不可能的。如果"parameter"不在url中,则没有$_GET["parameter'"]。如果isset()返回true,则它存在于url中。
浏览器缓存url WITH get参数,或者您在其他地方"欺骗"该参数。
据我所知,$_GET
没有缓存。
此外,通常您会设置一个随机的GET
值,以避免像?seed=123131153131
那样的服务器缓存
你确定在显示页面时发送给Php的请求吗?
$_GET
不会被缓存。
然而,我可以想象你在某个地方用一个=
进行检查。
类似于;
if ($_GET['area'] = 'test')
这将使它成为现实。因此,您将始终拥有它(在这种情况下,这个if()
也将为真