我有一个页面,我需要获取引用网址,以便我们可以在竞争表单后重定向它们。我的问题是,表单有几个下拉菜单,每次选择(在提交表单之前),引用URL都会不断更改为此页面。
我有......
$_SERVER['HTTP_REFERER'];
它当然只适用于登陆。
现在,用户从下拉菜单中选择一个选项,页面将刷新另一个下拉菜单以继续选择选项。完成后,我提交的表单需要阅读原始引用URL,而不是表单页面URL。
我需要能够将原始文件放在隐藏字段中并随表单选项一起提交。谢谢你的帮助。如果不清楚我很抱歉,很难解释。
答案 0 :(得分:0)
当他们转到页面时,将引荐来源保存在会话变量中。
刷新并执行页面逻辑后,重定向到您保存的会话变量。
答案 1 :(得分:0)
如果您坚持使用表单和隐藏的输入,那很容易。
<input type="hidden" name="referrer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" />
你也可以用会话来做,假设你使用session_start()
。
session_start();// At the very top of your page. Literally THE TOP.
// Set our session variable only if it is not currently set.
if (!isset($_SESSION['referrer'])) {
$_SESSION['referrer'] = $_SERVER['HTTP_REFERER'];
}
有关会话的更多信息,请参阅this。会话只是针对这类事情,跨页面传递变量并保留状态。
答案 2 :(得分:0)
将第一个请求中的referer存储到会话变量或cookie中。 $_SESSION
或$_COOKIE
超级全局变量可以帮助实现这一目标。
我推荐会话,因为用户无法在本地劫持该值。
答案 3 :(得分:0)
if($_SESSION['GOBACK']=='')
{
$_SESSION['GOBACK'] = $_SERVER['HTTP_REFERER'];
}
这似乎有效。谢谢大家。