根据不同访问来源展示不同内容,好比访问一些有地区分站的网站,广州用户进来看到的是跟广州相关的内容,北京用户进来看到的是跟北京相关的内,看上去似乎很高大上。
今天心月博主要分享的便是在PHP中实现根据不同访问来源展示不同内容。
其实这个功能实现起来非常容易,研究过浏览器请求“抓包”的伙伴应该很清楚,在每次完成请求时浏览器都会有请求头返回信息,在返回的请求同信息中包含很多信息,其中有一项Referer,这一项所表示的正是访问者从哪个页面发起的请求,也就是标题说的访问来源。
通过点击页面内的链接访问,返回请求同中有referer
如果是在浏览器中直接输入链接访问,则在返回的请求头信息中不会有referer。
浏览器中直接输入链接访问,返回请求头中不会有referer
而我们实现不同访问来源展示不同内容要用到的也是Referer这一项内容。
具体的实现还是通过简单的代码实例来说明吧:
1、被访问的页面(test.php):
假设:被访问页面在 www.test.com 下
<?php if (empty($_SERVER['HTTP_REFERER'])) { echo "通过浏览器输入域名访问"; }else{ echo "通过".$_SERVER['HTTP_REFERER'].'进入本页面'; }
2、在 www.test.com 的 index.html 页面中加入可以访问到上面的被访问页 test.php 的链接:
<h1><a href="/test.php">test页面</a></h1>
3、在 www.a.com 的 index.html 页面中加入可以访问到上面的被访问页 test.php 的链接:
<h1><a href="http://www.test.com/test.php">test页面</a></h1>
下面通过3种方式来访问 test.php 页面:
第一种:浏览器输入链接访问
第二种:通过 www.test.com/index.html 访问 test.php 页面
第三种:通过 www.a.com/index.html 访问 test.php页面
三种访问方式,虽然访问的都是同一个页面,但展示的内容却完全不一样。这正是我们标题所说的根据不同访问来源限制页面展示不同内容,仅仅一个php常量取值一个if判断就实现了,是不是很简单啊,赶紧试试吧吧。