【发布时间】:2013-09-07 22:23:56
【问题描述】:
我使用以下代码重定向到 PHP 中的 URL:
header('Location: http://site.com/target.php');
如何获取重定向到目标的 URL?我试过这段代码,但它不起作用:
echo $_SERVER["HTTP_REFERER"];
谢谢
【问题讨论】:
-
请注意,referer很容易被伪造。
我使用以下代码重定向到 PHP 中的 URL:
header('Location: http://site.com/target.php');
如何获取重定向到目标的 URL?我试过这段代码,但它不起作用:
echo $_SERVER["HTTP_REFERER"];
谢谢
【问题讨论】:
试试这个:
<?php echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>
【讨论】:
Sumit 的代码为您提供了当前 URL,您可以使用 session 来使用它:
$current_url="http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$_SESSION['url']=$current_url;
header('Location: http://site.com/target.php');
获取页面上的 URL:
echo $_SESSION['url'];
【讨论】:
您不能依赖 REFERER 标头,因为某些浏览器不会将其作为安全预防措施发送。
如果您需要知道他们最初请求的 URL,您可以将其作为查询参数传递到 Location URL 中。或者,您可以将其存储在服务器上的数据库中,并将密钥作为查询字符串的一部分传递到数据库中,或者类似地将其存储在服务器上的会话中,并将会话 ID 作为查询字符串的一部分传递。
如果你能准确地解释你想要做什么,你可能会得到一个更有用的答案。为什么你需要知道他们来自哪个地址,为什么你需要重定向到不同的地址?另外,这两个地址是否在同一个网站上(即同一个域名)?
【讨论】:
<?php echo $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'] ; ?>
这个链接真的会帮助你 $_SERVER
【讨论】:
您每次访问页面时都会存储在$_SESSION 中,因此每当您需要上一页的值时都可以轻松查看。
【讨论】: