2010-08-10 73 views
3

是否有某種方式來存儲:如何收集有關我網站訪問者的信息?

  • 訪問者的IP地址
  • 什麼時間訪問者訪問我的網站
  • 他們有多少次訪問

我知道有辦法這樣做沒有 PHP,只是用Javascript和一些文本文件。

編輯1:我如何在PHP中執行此操作?

回答

9

無法在使用純JavaScript的客戶端計算機上存儲任何內容。它運行在沙箱環境中,不允許您執行此類任務。您可以向服務器端腳本發送AJAX請求,以執行保留數據的必要步驟。當然,另一種選擇是使用Google Analytics等服務,通過在頁面末尾添加一個簡單的腳本來關注持久的網站訪問統計信息。

+4

適用於Google Analytics(分析)的+1 - 這是現今追蹤活動的黃金標準。 Google Analytics(分析)的 – 2010-08-10 16:48:20

+5

-1 - 這是目前最活躍的間諜機器。 – 2014-04-29 08:50:58

0

如果要寫入服務器上的文件,您將需要某種服務器端處理。 如果您想要客戶端存儲,它是一個相對較新的功能(HTML5),但不允許直接訪問文件系統。

0

在PHP中,如果我明白你想要做什麼,你試圖完成的事情是非常簡單的。

要獲得客戶的IP地址,你就只用$ _SERVER超全局,就像這樣:

<?php $_SERVER['ip_address']; ?> 

然後,拿到的時候,你會簡單地使用:

<?php time(); ?> 

現在,稍微棘手的部分,他們訪問了多少次。您需要將上述內容放入數據庫中,例如MySQL的。

使用以下列創建數據庫模式:id,ipAddress,time和numOfVisits。 您需要在網頁開始時使用一些php邏輯來檢查用戶IP地址是否已經存在於數據庫中,如果是,則增加numOfVisits列。您顯然需要將time()的輸出記錄到時間列中。

本質上,這就是你將如何做你在PHP中所要求的。 希望這有助於:)

7

這是一個非常簡單的任務。

你可以用php的幫助來做到這一點。您可以獲取有關訪問您的網站的客戶端的許多類型的信息。您可以瞭解該IP地址,日期,時間,操作系統,瀏覽器,該IP地址的isp以及更多其他信息。你將不得不使用PHP和MySQL!

首先在mysql中創建一個表。

create_table_track。PHP

<?php 

$server = "localhost"; 
$username = "username"; 
$password = "password"; 
$database = "database name"; 

$connId = mysql_connect($server,$username,$password) or die("Cannot connect to server"); 
$selectDb = mysql_select_db($database,$connId) or die("Cannot connect to database"); 

$result = "CREATE TABLE track(
`id` int(6) NOT NULL auto_increment, 
`tm` varchar(20) NOT NULL default '', 
`ref` varchar(250) NOT NULL default '', 
`agent` varchar(250) NOT NULL default '', 
`ip` varchar(20) NOT NULL default '', 
`ip_value` int(11) NOT NULL default '0', 
`domain` varchar(20) NOT NULL default '', 
`tracking_page_name` varchar(10) NOT NULL default '', 
UNIQUE KEY `id` (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 "; 

if (mysql_query($result)) 
{ 
print "Success in TABLE creation!......"; 
} 
else 
{ 
die('MSSQL error: ' . mssql_get_last_message()); 
} 


?>' 

這是獲得有關客戶的信息的第一部分。 該文件將在mysql數據庫中創建一個名爲「track」的表。 現在要將信息存儲在此表中,您將不得不創建另一個文件。

使用example.php

<html> 
<?php 


// fill in your databasa data here! 
$server = "localhost"; 
$username = "username"; 
$password = "password"; 
$database = "database name"; 

$connId = mysql_connect($server,$username,$password) or die("Cannot connect to server"); 
$selectDb = mysql_select_db($database,$connId) or die("Cannot connect to database"); 


$tracking_page_name="example"; 
$ref=$_SERVER['HTTP_REFERER']; 
$agent=$_SERVER['HTTP_USER_AGENT']; 
$ip=$_SERVER['REMOTE_ADDR']; 
$host_name = gethostbyaddr($_SERVER['REMOTE_ADDR']); 
$strSQL = "INSERT INTO track(tm, ref, agent, ip, tracking_page_name, host_name) VALUES(curdate(),'$ref','$agent','$ip','$tracking_page_name','$host_name')"; 
$test=mysql_query($strSQL); 

?> 
</html> 

現在,上述文件將提取的客戶端計算機的信息,並將其存儲在數據庫中。

現在顯示存儲在數據庫中的信息,,之後我們將使用下面的文件---

顯示track.php

<html> 
<body> 
<?php 

$con = mysql_connect("localhost","user name","password"); 
mysql_select_db("database name", $con) or die("Unable to select database"); 
$query="SELECT * FROM track"; 
$result=mysql_query($query); 
$num=mysql_numrows($result); 
mysql_close(); 
?> 
<table border="1" cellspacing="2" cellpadding="2"> 
<tr> 
<th><font face="Arial, Helvetica, sans-serif">id</font></th> 
<th><font face="Arial, Helvetica, sans-serif">time</font></th> 
<th><font face="Arial, Helvetica, sans-serif">http referer</font></th> 
<th><font face="Arial, Helvetica, sans-serif">user agent</font></th> 
<th><font face="Arial, Helvetica, sans-serif">ip address</font></th> 
<th><font face="Arial, Helvetica, sans-serif">ip value</font></th> 
<th><font face="Arial, Helvetica, sans-serif">domain</font></th> 
<th><font face="Arial, Helvetica, sans-serif">tracking_page_name</font></th> 
<th><font face="Arial, Helvetica, sans-serif">Host_name</font></th> 
</tr> 

<?php 
$i=0; 
while ($i < $num) { 

$f1=mysql_result($result,$i,"id"); 
$f2=mysql_result($result,$i,"tm"); 
$f3=mysql_result($result,$i,"ref"); 
$f4=mysql_result($result,$i,"agent"); 
$f5=mysql_result($result,$i,"ip"); 
$f6=mysql_result($result,$i,"ip_value"); 
$f7=mysql_result($result,$i,"domain"); 
$f8=mysql_result($result,$i,"tracking_page_name"); 
$f9=mysql_result($result,$i,"host_name"); 
?> 

<tr> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f4; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f5; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f6; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f7; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f8; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f9; ?></font></td> 
</tr> 

<?php 
$i++; 
} 
?> 
</body> 
</html>' 
1

他WITHOUT PHP說! (僅TEXTFILES)我寧願使用JSONP有一個回調函數和像ip-api.com一個Web服務或ipinfo.io

function fire() { 
    var url = "http://ipinfo.io/json?callback=func"; 
    var script = document.createElement('script'); 
    script.src = url; 
    script.async = true; 
    document.getElementsByTagName('head')[0].appendChild(script); 
} 

function func(response) { 
    alert(response.hostname); // for example hostname 
} 

document.onload = fire(); 

,而不是response.hostname你可以提醒一切什麼的服務能讓你回來就好

{ 
    "ip": "178.165.128.3", 
    "hostname": "178.165.128.3.wireless.dyn.drei.com", 
    "city": null, 
    "region": null, 
    "country": "AT", 
    "loc": "47.3333,13.3333", 
    "org": "AS12635 Hutchison Drei Austria GmbH" 
} 

的時候,你可以通過

var d = new Date(); 
var n = d.getTime(); 

和訪客多久卡梅斯我會在本地存儲將計..

得到
相關問題