PHP获取当前页面URL和上一页来源的方法

月亮慢半拍
月亮慢半拍
发布时间:2026-10-14 | 2人浏览过
原创

本文介绍如何使用PHP的$_SERVER变量快速获取当前页面的URL地址及上一跳链接的来源(Referer),并包含处理查询参数的完整方案与安全注意事项。

核心原理

PHP运行时会从Web服务器接收环境变量,并将其存储在名为 $_SERVER 的超全局数组中。要获取地址相关信息,主要涉及以下几个键值:

  • HTTP_HOST:服务器的主机名(如 www.example.com)。
  • PHP_SELF:当前执行脚本的文件名与路径。
  • QUERY_STRING:URL中的查询参数部分(不含问号)。
  • HTTP_REFERER:链接到当前页面的前一个页面的地址。

第1步:获取带参数的完整当前页地址

这是最常用且信息最全的方式,适用于生成分享链接、重定向或记录日志。

  1. 目的:还原用户在浏览器地址栏看到的完整URL。
  2. 入口:任意PHP文件顶部逻辑块。
  3. 动作:拼接主机名、脚本路径及查询字符串。
  4. 重要参数:$_SERVER["HTTP_HOST"],$_SERVER["PHP_SELF"],$_SERVER["QUERY_STRING"]。
  5. 完成状态:变量 $current_url 赋值为完整的URI字符串。
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
$current_url = $protocol . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $current_url;

注:使用 REQUEST_URI 比手动拼接更稳妥,因为它包含了路径和参数以及可能的锚点信息。

第2步:获取上一页的地址(来源追踪)

用于分析用户导航路径或简单的防刷逻辑。

  1. 目的:判断用户是从哪个页面点击进来的。
  2. 入口:需要接收来源的PHP文件中。
  3. 动作:读取 HTTP_REFERER 环境变量。
  4. 重要参数:$_SERVER['HTTP_REFERER']。
  5. 完成状态:成功提取来源URL或在无来源时获得默认提示。
$referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '未知来源';
echo '用户来自: ' . htmlspecialchars($referrer);

安全风险提示

在使用上述变量构建响应内容时,务必注意以下两点:

  1. 数据不可靠性:HTTP_REFERER 是由客户端发送的,用户可以伪造或完全禁用(如使用隐私模式)。因此不要将其作为唯一的安全校验依据。
  2. XSS防护:由于 HTTP_REFERER 和用户输入的URL通常未经过滤直接输出,直接使用可能导致跨站脚本攻击。必须使用 htmlspecialchars() 进行转义后再输出到HTML页面中。
以上就是PHP获取当前页和上一页地址的详细内容,更多关于PHP $_SERVER变量的资料请关注本站其它相关文章!
相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表