PHP后退按钮的终极HTTP_REFERER解决方案?
是的,我知道,另一个HTTP_REFERER努力。我一看到它就畏缩。但它已经交给了我,作为一个“返回”问题的解决方案,它实际上是有效的,所以 …问题是,我对它的理解还不足以让我觉得在现场部署它很舒服 我在这里已经浏览了很多关于HTTP\U REFERER的危险的消息,但是我被告知这段代码针对这个特定任务解决了这些问题。。。但我不相信 因此,我的问题在下面代码的底部-但首先,这是它背后的基础: 此代码进入购物车。它提供了用户单击“查看购物车”后“继续购物”按钮的操作。它的目标是提供最合适的(或预期的)重定向,返回到用户来自的地方 默认情况下,在没有添加此代码的情况下,此特定“查看购物车”页面的“继续购物”按钮只会将用户带到购物车的主页-如果用户浏览了几个页面以查找一组产品或特定类别,或者正在查看某个产品等,这将是一种打击。因此,我们希望对此进行改进。此外,购物车需要javascript来完成购买,如果用户在关闭JS的情况下访问,就会收到警告,因此在该操作期间,用户需要打开JS。最后,我们希望将解决方案保留为单个代码块,这样就可以轻松地应用它并将其传输到购物车的更新版本,而不会产生什么问题 向我描述的方法:PHP后退按钮的终极HTTP_REFERER解决方案?,php,javascript,back-button,http-referer,strpos,Php,Javascript,Back Button,Http Referer,Strpos,是的,我知道,另一个HTTP_REFERER努力。我一看到它就畏缩。但它已经交给了我,作为一个“返回”问题的解决方案,它实际上是有效的,所以 …问题是,我对它的理解还不足以让我觉得在现场部署它很舒服 我在这里已经浏览了很多关于HTTP\U REFERER的危险的消息,但是我被告知这段代码针对这个特定任务解决了这些问题。。。但我不相信 因此,我的问题在下面代码的底部-但首先,这是它背后的基础: 此代码进入购物车。它提供了用户单击“查看购物车”后“继续购物”按钮的操作。它的目标是提供最合适的(或预期
if ((isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && (strpos($_SERVER['HTTP_REFERER'], HTTP_SERVER) === 0))) {
if ($_SERVER['HTTP_REFERER'] == HTTP_SERVER . 'index.php?r=cart') {
$this->data['continue'] = 'javascript:history.go(-1)';
}
else {
$this->data['continue'] = html_entity_decode($_SERVER['HTTP_REFERER']);
}
}
else {
if ((isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && (strpos($_SERVER['HTTP_REFERER'], HTTP_SERVER) !== 0))) {
$this->data['continue'] = 'index.php?r=home';
}
else {
$this->data['continue'] = 'javascript:history.go(-1)';
}
}
我的问题是:
感谢您抽出时间来帮助我们……Referer只是用户在进入购物车之前访问的最后一页
如果我错了,请更正。referer由客户提供,不可靠。在会话变量中存储查看的最后一页可能会更好。您好,谢谢。。。这是这篇文章的重点。。。这个问题应该在代码中解决,通过检查referer(1)是否存在,(2)是否为空,以及(3)是否包含购物车的域,然后默认为javascript方法。。。它也满足了我们自给自足的要求。我知道有更好的解决方案,包括会话变量等。但在本例中,我会特别关注这个http_referer版本,看看它在这个应用程序中是否可行……永远不要依赖JavaScript作为后备方案@内华达州-谢谢你的回复。。。这是因为它可能无法提供吗?还是有其他原因?我最初考虑在“查看购物车”模板中添加一个noscript标记,在没有JS的情况下显示一个链接将用户带到主页(这是该链接的默认操作)——但由于购物车的大多数关键功能都需要javascript,那些关闭JS的人已经看到一条带有链接的消息,可以访问我们的静态目录,因此,在这种情况下,他们不太可能尝试浏览在线购物车。是的,没有JS的人数量不多,但那些费劲关闭(或安装NoScript)的人通常会更恼火!非常感谢您的回复。。。哈哈哈“如果你真的不喜欢referer”。。。嘿,我想喜欢它!!;-)。。。主要是从安全角度来看,我不信任它,这是我最大的担忧。主页上的问题很重要。。。我想,如果它能够检测到用户来自外部站点,直接进入“购物车视图”,那么将他们发送到主页至少会将他们保留在商店中,而不会将他们发送回原始站点。当然,如果没有referer,那么javascript默认值会将它们发回。。。但似乎是一次不太可能的访问。。。?Txunlike,但并非不可能。尤其是当有人试图破解你的购物车时;)