2017-10-21 73 views
-1

我的網站鏈接http://example.com/link/如何知道網頁是從其他網站返回

我如何處理,如果它如返回:http://facebook.com

我想通過這樣的檢查和處理事件:

if(return from facebook) { 
} 

Jquery or PHP is ok.Thank you for your advice。

+3

將PHP的'$ _ SERVER [ 'HTTP_REFERER'];'做的工作? http://php.net/manual/en/reserved.variables.server.php – atoms

+1

[如何知道用戶是否來自Facebook鏈接?](https://stackoverflow.com/q/19485746/1415724) - 您應該閱讀。它會回答你希望能夠工作的東西;它不會。 [HTTP_REFERER的可靠性如何?](https://stackoverflow.com/a/6023980/1415724) –

+0

謝謝@ Fred-ii-。我現在會讀它。更新:非常感謝。 –

回答

2

你可以通過找到在PHP中引用者:

$_SERVER['HTTP_REFERER']

if($_SERVER['HTTP_REFERER'] == 'https://facebook.com'){ }

然而,你可能想趕上從Facebook任何東西;

$sReg = '.facebook.+[a-zA-Z](\/*)'; 

if(preg_match($sReg, $_SERVER['HTTP_REFERER'] == 1){ 

} 

注意HTTP_REFERER是沒有得到引薦的必由之路。通常它會丟失。

更多信息

+0

感謝您的回答,但如果「HTTP_REFERER不是獲取引薦者的確定方式」,那麼您是否可以使用其他方法? –

+0

不幸的是一些瀏覽器不會提供它,不管是出於隱私還是其他配置原因。請參閱https://stackoverflow.com/questions/6023941/how-reliable-is-http-referer – atoms

+2

不,你不能。用戶可以決定不讓他們的瀏覽器發送推薦人,或者假冒推薦人。而且網站現在還可以指定他們是否希望瀏覽器發送完整的引用鏈接,僅限域名,或者根本沒有。 – CBroe

1

該解決方案在JavaScript

if(document.referrer == 'https://facebook.com') { 
    /* Do somethings */ 
} 

使用正則表達式見PHP manual

var myRe = new RegExp('facebook.+[a-zA-Z](\/*)'); 
if(myRe.test(document.referrer)) { 
    /* Do somethings */ 
} 
+0

如果有人禁用JS會怎麼樣?你能回答那個細節嗎? –

+0

謝謝你的回答,讓我測試一下。 –

+0

@BuiPhuc因此,您可以使用這兩種解決方案(PHP和JS)來獲得更好的結果。 –

相關問題