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