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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 毕业——少年,你还太弱,请专心练剑

    有段时间没有更新博客,一是比较忙,二是考虑自己的博客内容。之前的博客都是自己的学习记录,输入的同时做了输出,自己思考了一下主要就是以下几类:1、一些比较常见的知识点,像这些都是本来就已经存在的内容,我只是做了一次梳理按照我的逻辑整理出来,就算我不整理,也能找的到,所以我觉得存在的必要性并不大。2、错误记录,自己学习和开发过程中遇到的各种问题,对于遇到类似问题的同学可能有所帮助。3、自己的经验总结,这

    2022年3月11日
    52
  • VsCode系列(一):下载安装及汉化「建议收藏」

    VsCode系列(一):下载安装及汉化「建议收藏」VsCode的下载和安装在这篇文章中将为大家介绍WIN10操作系统如何下载安装并且汉化VsCode的方法。VsCode入门VisualStudioCode是一个轻量级但功能强大的源代码编辑器

    2022年8月4日
    6
  • 最全的vim快捷键

    最全的vim快捷键https://blog.csdn.net/flexman09/article/details/51802005 曾经使用了两年多的Vim,手册也翻过一遍。虽然现在不怎么用vim了,曾经的笔记还是贴出来,与喜欢vim的朋友分享。索1.关于Vimvim是我最喜欢的编辑器,也是linux下第二强大的编辑器。虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编…

    2022年5月5日
    55
  • 作文《读懂》(我读懂了什么写一篇作文)

    0背景1.手机USB接口通信特点-1.1使用方便-1.2通用性强-1.3速度快-1.4可采用总线供电2.手机USB接口通信原理-2.1常见手机USB接口-2.2通信过程-2.3体系架构2.4软件层次3.手机USB接口与外设通信方案-3.1USB(手机)USB(外设)-3.1.1USBHost简述

    2022年4月10日
    37
  • ASP.netMVC文件下载

    ASP.netMVC文件下载ASP.netMVC文件下载ASP.netMVC下载文件一般有几种方法第一种:超链接方法,直接指向目标文件地址;window.open(“”); 标签href=“”;第二种:后台下载,但后台下载又有三种方式;(1)返回filestreampublicFileStreamResultdownload(){stringfileName=””;//客户端保存的文件名stringfilePath=Server.MapPath(“”);//路径…

    2022年7月27日
    4
  • C++之split字符串分割

    C++之split字符串分割在C++中没有直接对应的split函数,字符串分割可借助以下方法实现:1、借助strtok函数函数原型:char*strtok(char*str,char*delim);函数功能:以delim为分隔符分割字符串str参数说明:str:要分隔的字符串;delim:分隔符返回值:从str开头开始的一个个被分割的字符串。当没有被分割时则返回null代码1:直接使用s

    2022年4月30日
    29

发表回复

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

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