2010-08-10 5 views

Répondre

9

Il est impossible de stocker quoi que ce soit sur un ordinateur client en utilisant un javascript pur. Il s'exécute dans un environnement en bac à sable qui ne vous permet pas d'effectuer de telles tâches. Vous pouvez envoyer une requête AJAX à un script côté serveur qui effectuera les étapes nécessaires pour conserver les données. Une autre option est bien sûr d'utiliser un service comme Google Analytics qui s'occupera des statistiques persistantes sur vos visites de site en incluant un simple script à la fin de vos pages.

+4

+1 pour Google Analytics - c'est la référence absolue en matière de suivi des activités de nos jours. –

+5

-1 pour Google Analytics - c'est la meilleure machine d'espionnage avec une activité de nos jours. –

0

Vous aurez besoin d'un traitement côté serveur si vous voulez écrire sur des fichiers sur le serveur. Si vous voulez un stockage côté client, il s'agit d'une nouvelle fonctionnalité relativement récente (HTML5), mais qui n'autorise pas l'accès direct au système de fichiers.

0

En PHP, si je comprends ce que vous essayez de faire, ce que vous essayez d'accomplir est très facile.

Pour obtenir les adresse IP des visiteurs, vous simplement utiliser la variable $ _SERVER, comme ceci:

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

Ensuite, pour obtenir le temps, vous simplement utiliser:

<?php time(); ?> 

maintenant , la partie un peu plus difficile, combien de fois ils ont visité. Vous devez mettre ce qui précède dans une base de données, par ex. mysql.

Créez un schéma de base de données, avec les colonnes suivantes: id, ipAddress, time et numOfVisits. Vous devez avoir une certaine logique php au début de votre page Web pour vérifier si l'adresse IP de l'utilisateur est déjà dans la base de données, et si c'est le cas, incrémenter la colonne numOfVisits. Vous devez évidemment enregistrer la sortie de time() dans la colonne de temps également.

Essentiellement, c'est comme ça que vous feriez ce que vous demandez en PHP. J'espère que cela a aidé :)

7

C'est une tâche très facile.

Vous pouvez le faire avec l'aide de php. Vous pouvez obtenir plusieurs types d'informations sur le client visitant votre site. Vous pouvez apprendre à connaître l'adresse IP, la date, l'heure, le système d'exploitation, le navigateur, l'adresse IP de cette adresse IP et bien d'autres choses encore. Vous devrez utiliser php et mysql!

d'abord créer une table dans 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()); 
} 


?>' 

Ceci est la première partie d'obtenir les informations sur le client. Ce fichier va créer une table nommée "track" dans la base de données mysql. Maintenant, pour stocker des informations dans ce tableau, vous devrez créer un autre fichier.

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> 

Maintenant le fichier ci-dessus extraire des informations à partir de l'ordinateur client et le stocker dans la base de données.

maintenant pour afficher les informations stockées dans la base de données ,, nous utilisons wil fichier suivant ---

show 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

comme il dit sans PHP !! (Seulement textfiles) Je préfère utiliser jsonp avec une fonction de rappel et un webservice comme ip-api.com ou 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(); 

au lieu de response.hostname vous pouvez alerter tout ce que le service vous rend comme

{ 
    "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" 
} 

le temps que vous pouvez obtenir par

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

et le nombre la fréquence visiteur cAMES i stockerait dans le stockage local ..

Questions connexes