Statistiques d'un site web

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 415 fois - Téléchargée 28 fois

Contenu du snippet

Ces scripts sont issus du site www.dixipub.com qui permet d'avoir les stats d'audience d'un site web en temps réel.

A partir d'une seule table dans une base de données on peut avoir toutes les statistiques possibles et imaginables d'un site web.

Source / Exemple :


Dans une base mysql créez une table "ligne" avec les champs suivants:

-liburl (varchar 255) -> L'url de la page visitée
-host (varchar 255) -> Le nom du visiteur
-referer (varchar 255) -> La page d'ou le visiteur provient
-timestamp (integer) -> Pour stocker la date au format timestamp

ensuite pour remplir la table voici le script:

<?php
$liburl = $GLOBALS["PHP_SELF"];
$host = gethostbyaddr($GLOBALS["REMOTE_ADDR"]);
$referer= $GLOBALS["HTTP_REFERER"];
$timestamp = time();

$db = connect();
mysql_query("insert into ligne (timestamp,host,liburl,referer) values ('$timestamp','$host','$liburl','$referer')",$db) ;
?>

/////////////////////////////////////////////////////////////////////////////
Le seul truc que j'arrive pas à faire et que dixipub arrive c'est d'avoir la configuration du client (o.s. , résolution d'écran, navigateur, pays, langue)

Quelqu'un connait-il les fonctions ou les variables php pour les avoir ?

A voir également

Ajouter un commentaire

Commentaires

cs_heine
Messages postés
58
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 novembre 2006

euh tu parles de dixit la, c'est bien c vrai parce que l'on voit l'apercu en tableau et tout, mais toi vour visualiser les stats dans ta source c'est ou..? ta source est un simple include de quelques varibles la... j'me trompe.? :*/
cs_cedy
Messages postés
1
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
25 mars 2005

pour connaitre le pays, perso je fait un whois sur l'ip via un serveur fait pour puis j'explode ce que je reçoie et resort la ligne qui contien le mot country. pour choper l'ip qqun t'as déja répondu ..

le code que je te cole ici est tiré d'un autre site, je l'ai modifier pour qu'il ne me donne que ce que j'ai besoin . c'est a dire la variable $pays

__________________________________

<?
// ********************************************
// Initiation des variables
// ********************************************
$whois_ip_demande=getenv("REMOTE_ADDR");


// ********************************************
// Vérification des champs vide
// ********************************************
if (empty($whois_ip_demande))
whois_erreur(1);

// ********************************************
// Résolution du nom et conformité de l'IP selectionné
// ********************************************
if (ip2long($whois_ip_demande)==-1) // Si ce n'est pas une IP
{
$nom_correspondant=gethostbyname($whois_ip_demande); // Alors résolution du nom
if ($nom_correspondant!=$whois_ip_demande) // Si il a résolut le nom
$whois_ip_demande=$nom_correspondant; // Récupération de l'ip résolut
else
whois_erreur(2);
}

// ********************************************
// Transforme les saisies tel que 10.10..4 en 10.10.0.4
// ********************************************
$inetaddr=ip2long($whois_ip_demande);
$whois_ip_demande=long2ip($inetaddr);



// ********************************************
// Appel de la fonction connexion
// ********************************************
$buffer=connexion("whois.ripe.net",$whois_ip_demande);
$serveur_ayant_repondu="whois.ripe.net";

// ********************************************
// Vérifie si on est sur le bon serveur
// ********************************************
if (eregi("www.iana.org", $buffer))
{
$buffer=connexion("whois.arin.net",$whois_ip_demande);
$serveur_ayant_repondu = "whois.arin.net";
}
elseif (eregi("whois.apnic.net", $buffer))
{
$buffer=connexion("whois.apnic.net",$whois_ip_demande);
$serveur_ayant_repondu = "whois.apnic.net";
}
elseif (eregi("whois.registro.br", $buffer))
{
$buffer=connexion("whois.registro.br",$whois_ip_demande);
$serveur_ayant_repondu = "whois.registro.br";
}
elseif (eregi("nic.ad.jp", $buffer))
{
$buffer=connexion("whois.nic.ad.jp",$whois_ip_demande);
}

// ********************************************
// Intégre les retours charriot
// ********************************************
$buffer2 = nl2br($buffer);

// ********************************************
// Affiche le resultat
// ********************************************

$text = explode("
", $buffer2);
for ($i=0; $i <50; $i++)
{
if (stristr($text[$i], "country"))
{

$pays_ = explode(" ", $text[$i]);
$pays = $pays_[6];
}
else { continue;}
}

// ********************************************
// Fin du script général
// ********************************************
//fin_du_script();

// ********************************************
// Fonction de connexion whois
// ********************************************
function connexion($serveur,$ip_recherche)
{
// ********************************************
// Ouverture de la session TCP
// ********************************************
$socket=fsockopen($serveur, 43);

if ($socket!=0)
{
// ********************************************
// Envoi de l'IP demandé
// ********************************************
fwrite($socket, "$ip_recherche\n");

// ********************************************
// Receptionne dans buffer la réponse
// ********************************************
while (feof($socket)==0)
$tampon = $tampon . fgets($socket, 1000); // Le . signifie concatenation

// ********************************************
// Ferme la session TCP
// ********************************************
fclose($socket);
}
else
// ********************************************
// Sortie du script
// ********************************************
whois_erreur(3);

return ($tampon);
}

// ********************************************
// Fonction d'affichage de l'erreur de saisie
// ********************************************
function whois_erreur($erreur) // $erreur représente le numéro d'erreur.
{

// ********************************************
// Message personnalisé
// ********************************************
if ($erreur==1)
echo'null';
elseif ($erreur==2)
echo'null';
elseif ($erreur==3)
echo'null';

// ********************************************
// Fin du script général
// ********************************************
fin_du_script();
}

function fin_du_script()
{

// ********************************************
// Fin du script général
// ********************************************
exit(0);
}

?>

________________________________
Splacheur
Messages postés
69
Date d'inscription
jeudi 8 mai 2003
Statut
Membre
Dernière intervention
9 octobre 2005

nan je crois que pour savoir le pays du visiteur, il faut en effet utiliser l'IP (pas le $HTTP_USER_AGENT), et la traiter avec un script spécial utilisant une base de donnée contenant tous les noms de pays. Un membre en a déjà parlé ici, je vous conseil de faire une recherche grâce au moteur en haut de la page ;-)
moon80
Messages postés
1
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
6 décembre 2003

Je connais dixipub.com c'est vrai que c'est l'un des meilleurs et il est très complet.
Pour ta question :
Grace à $HTTP_USER_AGENT tu peux récupérer la langue et la pays de l'utilisateur, ainsi que le navigateur. et l'OS
Pour cela, il faut faire des extractions du type "fr -> france" "ie 6.0 -> internetExplorer6.0" etc.
flashfun
Messages postés
296
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
11 septembre 2004

Souvant, les configues client sont récupéré avec des javascripts.

Il génère une balise image, dont l'adresse correspond à une page php.
La page php enregistre les infos par la methode GET puis renvois une image.

C'est la seul methode que je connais.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.