2014-03-31 50 views
-1

您能推薦一個簡單的PHP腳本,我可以插入到網頁中,它會跟蹤和記錄每個來到網頁的用戶的HTTP_REFERER嗎? 非常感謝你的幫助提前在PHP中將HTTP_REFERER寫入txt文件

+0

從這裏開始:http://www.php.net/manual/en/function.fopen.php – SamV

回答

1

使用$_SERVER['HTTP_REFERER']是不可靠的。

但是,如果您仍然想要走這條路線,您可以使用以下內容。

這樣做是使用三元運算符來檢查引用者是否已設置。

如果找到引用者,那麼它將使用a開關將它記錄到文件中,並將其添加/添加到它。否則,如果找不到或者不可記錄,它只會回顯並且不會寫入任何文件。

如果您不想繼續添加文件,請使用w開關。

注意 - 使用w開關將覆蓋任何以前編寫的內容。

<?php 
$refer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; 

if(!empty($refer)){ 

    $fp = fopen('file.txt', 'a'); 
    fwrite($fp, "$refer" . "\n"); // Using \n makes a new line. \r\n Windows/MAC 
    fclose($fp); 
    echo "Referer found and written to file."; 
} 

else{ 
echo "No referer, nothing written to file."; 
} 

// Or use this to write "No referer" in the file as a replacement 
/* 
else{ 
    $fp = fopen('file.txt', 'a'); 
    fwrite($fp, "No referer" . "\n"); 
    fclose($fp); 
    echo "No referer."; 
} 
*/ 
+0

非常感謝!但它看起來很奇怪,因爲這個PHP腳本無法找到引用,但JS腳本發現它: 爲什麼會發生這種情況? – user3481376

+0

不客氣。那是因爲你需要一個鏈接來引用「from」。 @ user3481376如果沒有任何引用,那麼這是正常的。如前所述,使用'$ _SERVER ['HTTP_REFERER']'並不總是可靠的。 –

0

這是一個非常簡單的腳本,可以讓你存檔:

$fp = fopen('myfile.txt', 'w'); 
fwrite($fp, $_SERVER['HTTP_REFERER']); 
fclose($fp); 
+0

它報道的:「未定義指數:HTTP_REFERER在/ home4/catherin /的public_html /測試/偉哥。第15行html「,而myfile.txt中沒有任何內容。這是因爲http_referer爲空? – user3481376

0

這可能是一個更好的主意了Apache日誌本(如果多數民衆贊成平臺) 。

關於日誌文件: http://httpd.apache.org/docs/1.3/logs.html

然後使用一些指定的軟件來分析日誌。

之所以這樣做,是因爲構建自己的跟蹤腳本比看起來要多得多,即使是最簡單的級別。如果它可以使用。

另一個想法是從第三方安裝一些日誌軟件。我認爲statcounter使用日誌文件,可以給你你想要的例子。