2011-04-25 64 views
2

是否有一個簡單的腳本,只允許來自我選擇的網站的訪問者訪問?PHP腳本只允許來自某個域的流量?

+2

@布賴恩但絕對沒有錯,要求對堆棧溢出這個問題。 (這是一個非常懶惰的問題,說。 – 2011-04-25 15:59:29

+0

@middaparka我同意,但這個問題有相當廣泛的網絡上的其他來源的覆蓋面,所以我沒有看到在這裏消耗更多的資源的一點。因此,我的建議。 – 2011-04-25 16:01:05

+2

@Brian Driscoll:請停止告訴人們谷歌。這個網站是谷歌最好的搜索結果之一,如果你知道它,只是鏈接到一個頁面,否則這是沒有用的。 *(假設「最喜歡的搜索引擎」是谷歌) – 2011-04-25 16:03:43

回答

1

您可以使用$_SERVER['http_referer']但這可以很容易僞造。

0

如果您獲取了他們的引薦來源信息,您可以根據已接受的網站來源列表對其進行檢查,並將其重定向到他們來自的網站(如果您不需要)。

$_SERVER["HTTP_REFERER"] 
6

檢查引用是完成這一任務的最可靠的方法,但你應該知道,並不是所有的用戶代理(也稱爲瀏覽器)發送完整的或正確的引用。

事情是這樣的:

$target_site = 'http://www.google.com'; 
if (isset($_SERVER['HTTP_REFERER']) && preg_match("/$target_site/",$_SERVER['HTTP_REFERER'])) { 
    // do something with people from google.com 
} else { 
    // do something else with everyone else 
} 

瞭解更多關於它:http://www.electrictoolbox.com/php-http-referer-variable/

PHP手冊上$_SERVER超全局:http://php.net/manual/en/reserved.variables.server.php

+0

爲了增加您的第一點,我曾因爲某些原因將Chrome返回'favicon.ico'作爲引用者。 – 2011-04-25 16:10:40

+0

我將如何修改該代碼,將好用戶重定向到我的網站,並將不允許的用戶重定向到錯誤頁面? – don3434 2011-04-25 16:22:47

+0

使用php命令'header'。例如:'header('location:http://www.gotothissite.com');'。請參閱手冊:http://php.net/manual/en/function.header.php – 2011-04-25 16:29:17