1. PHP 获取上一页的URL

      在php中可以通过内置的变量的属性来获取上一页的URL: $_SERVER['HTTP_REFERER'].

      但是在IE中如果跳转是通过js函数如: window.location.href 或者 window.open的话,  $_SERVER['HTTP_REFERER'] 返回的是空的。通过连接或者表单提交的则工作正常。FF工作正常。

      另外$_SERVER[PHP_SELF]获取当前页面的url;

 

 2. JS 获取上一页的URL

      在js中也有document本身属性可以或许上一页的URL:document.referrer

      但是这个跟php的 $_SERVER['HTTP_REFERER']一样,在IE中当是利用js函数跳转的话,得到的也是空值

      但如果你仅仅想利用js来实现跳转到上一页或者是上上几页的话:

  • 返回到前第几个页面: window.history.go(返回第几页,也可以使用访问过的URL);
  • 返回前一个页面: history.go(-1), 返回两个页面: history.go(-2);
  • 返回前一页面: history.back();

      使用方法<a href="javascript:history.back();">向上一页</a>

      这个不管是IE还是FF都可以

php 获取上一页的URL
$urlshang = $_SERVER['HTTP_REFERER']; //可以得到上一页的地址     
$urldan = $_SERVER['PHP_SELF']; //得到当前页面地址     
$urlcan = $_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"];//这个可以得到带参数的地址  

javascript实现:
top.location.href   顶级窗口的地址
this.location.href 当前窗口的地址
PHP实现
#测试网址:     http://localhost/blog/testurl.php?id=5

//获取域名或主机地址
echo $_SERVER['HTTP_HOST']."<br>"; #localhost

//获取网页地址
echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php

//获取网址参数
echo $_SERVER["QUERY_STRING"]."<br>"; #id=5

//获取用户代理
echo $_SERVER['HTTP_REFERER']."<br>";

//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
#http://localhost/blog/testurl.php?id=5

//包含端口号的完整url
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
#http://localhost:80/blog/testurl.php?id=5

//只取路径
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
echo dirname($url);
#http://localhost/blog
posted on 2017-12-26 16:47  SoftBlue  阅读(1823)  评论(0编辑  收藏  举报