PHP $_SERVER[‘HTTP_REFERER’] 获取前一页面的 URL 地址

PHP $_SERVER[‘HTTP_REFERER’] 获取前一页面的 URL 地址

转载:http://www.5idev.com/p-php_server_http_referer.shtml

使用 $_SERVER[‘HTTP_REFERER’] 将很容易得到链接到当前页面的前一页面的地址。一个例子如下:

index.php(实际地址为:http://www.5idev.com/php/index.php):

链接

test.php(实际地址为:http://www.5idev.com/php/test.php):

echo $_SERVER['HTTP_REFERER'];

在浏览器访问 index.php,点击链接到 test.php,得到的输出结果为:

http://www.5idev.com/php/index.php

PHP $_SERVER[‘HTTP_REFERER’] 无效

需要注意的是,$_SERVER[‘HTTP_REFERER’] 完全来源于浏览器。并不是所有的用户代理(浏览器)都会设置这个变量,而且有的还可以手工修改 HTTP_REFERER。因此,$_SERVER[‘HTTP_REFERER’] 不总是真实正确的。

通常下面的一些方式,$_SERVER[‘HTTP_REFERER’] 会无效:

  1. 直接输入网址访问该网页。
  2. Javascript 打开的网址。
  3. Javascript 重定向(window.location)网址。
  4. 使用 meta refresh 重定向的网址。
  5. 使用 PHP header 重定向的网址。
  6. flash 中的链接。
  7. 浏览器未加设置或被用户修改。

所以一般来说,只有通过 超链接以及 POSTGET 表单访问的页面,$_SERVER[‘HTTP_REFERER’] 才有效。

由于 $_SERVER[‘HTTP_REFERER’] 对 POST 表单访问也是有效的,因此在表单数据处理页面一定程度上可以通过校验 $_SERVER[‘HTTP_REFERER’] 来防止表单数据的恶意提交。但该方法并不能保证表单数据的绝对正确,即对表单数据的真实性检测并不能完全依赖于 $_SERVER[‘HTTP_REFERER’] 。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114114.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python线性规划模型求解_python线性规划算法

    python线性规划模型求解_python线性规划算法各位童鞋们大家好,我是小小明,前几天我给大家分享了一个SMT求解器z3,链接地址见:https://xxmdmst.blog.csdn.net/article/details/120279521虽然SMT求解器很强大,能够解逻辑题、解数独、解方程、甚至解决逆向问题,但是有个缺点就是只能找出一个可行解,如果我想要找出可行解的最大值或最小值就不行,无法完成类似Excel的规划求解的功能。前文中已经提到了scipy这个库可以进行线性规划求解,可惜我在这周的实际测试中发现,不支持整数约束,只能求解出实数。差.

    2022年9月14日
    2
  • Java8中String.join方法,让我们的代码更优美

    Java8中String.join方法,让我们的代码更优美强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】距Java8(14年3月19日)发布马上就四年了;相信接触过java8的人,会对它的很多新的特性新的方法有感觉;自然我也不例外;今天就一起给大家分享一个java8中的方法。【善用新语法,让代码更优美】一、简洁:最近自己在做项目的时候学习到很多技巧…

    2022年6月4日
    46
  • idea激活失败agent目录找不到破解方法

    idea激活失败agent目录找不到破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    109
  • 常见数据库简答题_数据库基础知识试题

    常见数据库简答题_数据库基础知识试题数据库简答题第一章1.简述数据、数据库、数据库管理系统、数据库系统的概念(期末题库、课后题、大纲要求、试题三)数据:描述事物的符号记录数据库:(什么是数据库?答下面所有)长期存储在计算机内、有组织、可共享的大量数据的集合基本特征:(1)数据按照一定的数据模型组织、描述和存储(2)可为各种用户所共享(3)具有较小的冗余度(4)数据独立性较高(5)易扩展性数据库管理系统:(什么是数据库管理系统?答下面所有)(2001研招)位于用户与操作系统之间的一层数据管理软件,他与操作系统一样都是计

    2022年9月19日
    3
  • rabbitmqkafka对比_全场景

    rabbitmqkafka对比_全场景这是陈东景于2021年8月29日下午16点原创作品,转载请标明出处!!!!在进行软件设计的过程中,如果软件设计业务上存在需要短时间内处理大批量的信息,又需要能保证软件能正常运行(保证软件的高可靠和高可用)。因为大批量(几十万,几百万级别的数据或者消息需要同一个时间处理),软件的IO过高,会导致软件运行阻塞或者消耗内存过高而崩溃,甚至是宕机。消息队列的概念被提了出来,通过缓存消息的模式,进行生产和消费。通过异步处理的方式,解耦这种短时间内出现大批量需要处理消息的场景。目前我们使用到的比…

    2022年10月14日
    2
  • NAVICAT 15版本激活码[在线序列号][通俗易懂]

    NAVICAT 15版本激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    187

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号