热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpHTTP_REFERER函数的使用用法

利用php的http_referer函数来判断用户的来路,这是简单了,实例代码如下:<?phpif(isset($_SERVER[&#39;HTTP_REFERER&#39;])){print"Thepageyouwereonpreviouslywas{$_SERVER[&#
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
当前位置:首页 > PHP教程 > php函数 > 列表
php HTTP_REFERER函数的使用用法
发布: 来源:  添加日期:2014-09-18 17:20:01 浏览: 评论:0 

利用php的http_referer函数来判断用户的来路,这是简单了,实例代码如下:

  1.    if (isset($_SERVER[&#39;HTTP_REFERER&#39;])) { 
  2.      print "The page you were on previously was {$_SERVER[&#39;HTTP_REFERER&#39;]}"
  3.    } else { 
  4.      print "You didn&#39;t click any links to get here"
  5.       } 
  6.     ?> 
  7. "refer.php">Click me! 

下面我们让用户不知道我们的来路处理,实例代码如下:

  1. $host = "www.phpfensi.com"
  2. $referer = "http://".$host
  3. $fp = fsockopen ($host, 80, $errno$errstr, 30); 
  4. if (!$fp){ 
  5.         echo "$errstr ($errno)
    ;n"
  6. }else
  7. $request = " 
  8. GET / HTTP/1.1 
  9. Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */"."
  10. Referer: http://$host 
  11. Accept-Language: zh-cn 
  12. Accept-Encoding: gzip, deflate 
  13. User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) 
  14. Host: $host 
  15. Connection: Close" 
  16. ."rnrn"
  17.  
  18.  
  19. fputs ($fp"$request"); 
  20. while (!feof($fp)) 
  21.    $res[] = fgets($fp,1024); 
  22. $html = join("",$res); 
  23. fclose ($fp); 
  24. $fp = file_put_contents("123cha.html",$html); 
  25. echo "done";//开源代码phpfensi.com 

这不就行了?

不过很奇怪的是,www.phpfensi.com 的页面抓下来是乱码(除了http头),这是为什么?难道是因为用了gzip之类压缩?

  1. $host = "www.phpfensi.com"
  2. $html = file_get_contents("http://".$host); 
  3. $fp = file_put_contents("hao123.html",$html); 
  4. echo "done"
  5. ?>; 

但这样抓的就没问题,再来分析开始抓的http头:

HTTP/1.1 200 OK Date: Wed, 31 Aug 2005 00:59:36 GMT Server: Apache/1.3.27 Cache-Control: max-age=1296000 Expires: Thu, 15 Sep 2005 00:59:36 GMT Last-Modified: Mon, 29 Aug 2005 13:56:00 GMT Accept-Ranges: bytes Connection: close Content-Type: text/html Content-Encoding: gzip Content-Length: 14567

果然有这句,Content-Encoding:gzip ,原来压缩了的,长度14567字节了,用第二种方法抓,原来没压缩的html是71143字节,原来file_get_contents还可以自动解压缩.

php实例二,代码如下:

  1. $host = &#39;127.0.0.1&#39;
  2. $target = &#39;/2.php&#39;
  3. $referer = &#39;http://www.phpfensi.com&#39;; //伪造HTTP_REFERER地址 
  4. $fp = fsockopen($host, 80, $errno$errstr, 30); 
  5. if (!$fp){ 
  6. echo "$errstr($errno)n"
  7. }  
  8. else
  9. $out = " 
  10. GET $target HTTP/1.1 
  11. Host: $host 
  12. Referer: $referer 
  13. Connection: Closernrn"; 
  14. fwrite($fp$out); 
  15. while (!feof($fp)){ 
  16. echo fgets($fp, 1024); 
  17. fclose($fp); 
  18. ?> 

另一个2.php文件很简单,只是写上一行读取当前的HTTP_REFERER服务器值的代码即可,如下:

  1. echo ""
  2. echo $_SERVER["HTTP_REFERER"]; 
  3. ?>

推荐阅读
  • Ant Design 版本中 Typography 等组件引入问题及解决方案
    本文探讨了在使用 Ant Design 时遇到的 Typography 等组件引入问题,主要原因是不同版本之间的不兼容性导致文档中的教程与实际安装的 Node 包内容不符。为了解决这一问题,建议将 Ant Design 更新至最新版本(4.x,注意 3.x 版本不兼容)。通过更新,可以确保所有组件和方法的正常运行,避免因版本差异带来的开发障碍。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 如何在 PHPStorm 2017 中禁用参数名称提示功能
    在 PHPStorm 2017 中,若需禁用参数名称提示功能,可在设置面板中通过搜索 "hints" 进入相关路径,具体为:编辑器 > 常规 > 外观 > 显示参数名称提示,并取消该选项前的勾选。这一操作将有效关闭参数名称提示,提升代码编辑的整洁度和专注度。 ... [详细]
  • 捕获并处理用户输入数字时的异常,提供详细的错误提示与指导
    在用户输入数字时,程序能够有效捕获并处理各种异常情况,如非法字符或格式错误,并提供详尽的错误提示和操作指导,确保用户能够准确输入有效的数字数据。通过这种方式,不仅提高了程序的健壮性和用户体验,还减少了因输入错误导致的系统故障。具体实现中,使用了Java的异常处理机制,结合Scanner类进行输入读取和验证,确保了输入的合法性和准确性。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • 基于Java和SSM框架的志愿者管理平台源代码分析与实现
    本研究针对基于Java和SSM框架的志愿者管理平台进行了详细的源代码分析与实现。该平台属于Java Web项目,采用Java EE技术栈,并结合了Spring、Spring MVC和MyBatis三大核心框架(非开源)。项目名称为“基于SSM的志愿者管理系统”,旨在提升志愿者管理的效率和规范性。通过对系统架构、模块设计及关键代码的深入解析,本文为开发者提供了全面的技术参考和实践指导。 ... [详细]
  • React项目基础教程第五课:深入解析组件间通信机制 ... [详细]
  • 在 Manjaro 系统中,出现了一种由未预期的符号 `newline` 引起的 bash 语法错误。具体表现为系统提示“bash: 附近有语法错误”。通过将相关字符串从双引号改为单引号,可以有效解决这一问题。此外,建议在编写脚本时,注意检查换行符和特殊字符的使用,以避免类似错误的发生。 ... [详细]
  • 简雍:东汉末年刘备麾下的智囊,性格直率豪爽、不拘小节
    简雍,字宪和,涿郡人,原姓耿,后因幽州方言将“耿”读作“简”,遂改姓简。他是东汉末年至三国时期刘备的重要谋士。简雍性格直率豪爽,不拘小节,年轻时便与刘备结识,成为其核心智囊之一。他在刘备麾下屡献良策,为刘备的崛起和发展做出了重要贡献。 ... [详细]
  • 探索偶数次幂二项式系数的求和方法及其数学意义 ... [详细]
  • 源代码是构建网站的基础,涵盖了网站程序的所有代码、文件和目录结构。掌握源代码意味着完全控制网站的所有权。在传统自助建站平台中,由于采用SAAS模式,源代码通常不对外开放,用户实际上每年支付的费用仅是为了使用这些平台提供的服务,而无法获得真正的代码所有权。相比之下,米拓源代码提供了全面的技术细节和实现方法,使开发者能够深入了解并自主定制网站功能,确保了更高的灵活性和安全性。 ... [详细]
  • 如何在Edge浏览器中实现无痕浏览以避免留下访问记录
    在使用Edge浏览器时,许多用户希望在浏览网页时避免留下访问记录。为了满足这一需求,Edge浏览器提供了无痕浏览模式。通过启用该模式,用户可以确保浏览历史、表单数据和临时互联网文件不会被保存。本文将详细介绍如何在Edge浏览器中开启并使用无痕浏览模式,帮助用户更好地保护隐私。 ... [详细]
  • EF 查询性能低下,如何优化执行效率?
    在处理 Entity Framework (EF) 查询性能问题时,发现全表查询时间反而更短。这可能是因为 EF 具有内置缓存机制。首次执行 `GetAll` 方法时,数据被缓存,因此后续相同查询的执行速度会显著提升。为了准确评估查询性能,建议在测试时清空缓存或调换查询顺序,以避免缓存对结果的影响。此外,可以通过启用查询跟踪和分析工具来进一步优化查询性能。 ... [详细]
  • 如何在TT语音中启动游戏:详细操作指南与步骤解析
    许多用户都在使用TT语音进行交流,但可能并不清楚如何在该平台上启动游戏。本文将详细介绍在TT语音中开始游戏的具体步骤。首先,在安卓设备上打开TT语音应用,进入主界面后点击“开黑”选项,然后在大厅中选择一个合适的房间。 ... [详细]
author-avatar
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有