2010-09-20 60 views
2

我使用這個功能PHP函數檢查瀏覽器引用是否爲空?

ereg('http://.',$_SERVER['HTTP_REFERER']) != 1 

要檢查如果訪問者點擊了一個鏈接或沒有直接進入到這個特定頁面。

我現在看到,ereg已被棄用,但沒有知識的PHP將其轉換爲可能preg_match?

有沒有其他的方法來檢查引用者是否爲空?

非常感謝!

回答

5

您的正則表達式只接受以http://開頭的查閱者。因此,如果有人從https://頁面導航到您的腳本,則引用者將註冊爲空。任何具體原因?

如果沒有,使用empty()永遠是可行的:

if (!empty($_SERVER['HTTP_REFERER'])) 
0

empty($_SERVER['HTTP_REFERER'])

0

空:

!empty($_SERVER['HTTP_REFERER']); 

對於一個協議:

strlen(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_SCHEME)) > 0 
0

試試這個:

if (preg_match('#http://#', $_SERVER['HTTP_REFERER'])){ 
    // match found... 
} 

或者,如果您要檢查它是否是空的,使用empty功能:

if (!empty($_SERVER['HTTP_REFERER'])){ 
    // match found... 
} 
相關問題