Statistiques sur le site. L'écriture d'un compteur de script frappé.
introduction
Je suis sûr que beaucoup d'entre vous visiter divers sites Web, prêter attention aux compteurs qui se trouvent sur les sites Web. Les statistiques nous montrent combien de personnes ont visité une ressource, combien de pages ont été expédiées, combien de personnes sont sur le site en ce moment et ainsi de suite. Tout cela est un outil très utile car elle permet au propriétaire du site de savoir, la demande et l'estimation de ses ressources. Les ressources les plus intéressantes et utiles, plus il se rend.
À l'heure actuelle, il existe de nombreux services qui nous offrent beaucoup d'outils pour recueillir des statistiques et des données, ainsi que leur analyse. Ils sont tous effectuer de manière très professionnelle de leurs tâches, mais quand il a commencé avec samopisnogo compteur, qui peut être trouvé maintenant.
Si vous voulez comprendre comment l'enregistrement des utilisateurs, j'ai préparé une leçon que je vais écrire des visites de comptage sur le site, je vais vous expliquer comment installer un compteur sur le site et utiliser les données pour leurs propres fins.
détails
Pour nous d'écrire un compteur simple, nous devons apprendre quelques nouvelles fonctionnalités.
* Travailler avec des fichiers (création / lecture / écriture); * Travailler avec les sessions; * Travailler avec des fonctions pour créer une image; * Connexion d'un compteur;
Nous allons examiner trois options:
* Texte hit counter; * Texte hit counter; * Visiteurs graphiques compteur;
début
Créez un dossier www, contrer dossier. Ce sera un endroit pour stocker les statistiques de fichiers et script. Ensuite, je vais vous donner plusieurs options pour les compteurs.
l' option 1
Pour utiliser le compteur, nous avons besoin de créer une page html, dans lequel nous sommes embarqués script. Que ce soit une simple page qui contient les informations.
Envoyer cette page à votre dossier www et passez à l'encontre de la programmation.
counter.php
Pour enregistrer les données, nous avons besoin de les enregistrer quelque part, même pour le début que ce serait un simple fichier texte nommé stat.txt.
‹?php $url = "counter/stat.txt";
L'adresse URL $ la variable attribué au fichier. Ceci est le seul élément de configuration dans laquelle nous avons fixé les données souhaitées, puis le script consiste en une expression logique et fonctionne bien si travailler avec des fichiers
Ce code est chargé de vérifier l'existence du fichier, l'ensemble du cours de l'action logique, j'ai commandé dans les commentaires.
if(!file_exists($url)) { //Проверка на существование файла. //Если файла не существует, $count = 0; $handle = fopen($url,"a");//создаем его, fwrite($handle,$count);// и записываем нулевое значение fclose($handle);//Закрываем файл }
Ensuite, nous décrivons la condition lorsque le fichier est créé.
else { //Если файл существует, то работаем с ним $handle = fopen($url,"a+"); //Открываем его $count = fread($handle,filesize($url)); //Читаем данные и присваеваем их переменной $count fclose($handle); //Закрываем $count++;//Добавляем одно посещение к полученному выше $handle = fopen($url,"w"); // Открываем файл, и урезаем его до нулевой длины fwrite($handle,$count); //Записываем переменную $count fclose($handle); //Закрываем }
Dans ce passage, nous venons de décrire le compteur de script frappé, regardez attentivement, dans le premier fragment, nous ouvrons le fichier pour l'ouvrir et voir le nombre de visites. Ensuite, on augmente cette valeur de 1 unité ($ count ++;) et écrire cette valeur dans notre fichier.
A la fin du fichier, nous tirons des statistiques à l' aide de l'instruction echo
echo "количество просмотров: $count ";
Nous avons examiné le type le plus simple de mètres, mais croyez-moi, parfois difficile et ne nécessite pas, par exemple, nous avons besoin de connaître le nombre de lectures de page (articles, annonces) dans le site. Habituellement, cela indique les visiteurs du site le matériel le plus intéressant. À côté du comptoir pour travailler, nous ouvrons notre fichier index.php, et ajouter une ligne à la balise
* Facile à installer * Ne nécessite pas de base de données
[-] Inconvénients du compteur:
* Page simple mise à jour facilement poussif (F5). * Si plus d'une personne au même appel de temps pour le script, il oshibka.T.k. le fichier est ouvert et utilisé par quelqu'un d'autre, si vous avez besoin pour compléter le script. * Si le fichier est supprimé avec les données, vous perdrez les statistiques accumulées
l' option 2
Compteur ne comprend que les visiteurs. Qu'est-ce que cela signifie? Visiteurs - le nombre d'utilisateurs qui ont visité votre site, comme une journée, et même si la personne mettra à jour la valeur de la page counter ne sera pas ajoutée.
Pour créer un compteur, nous devons apprendre à travailler avec des sessions. Quelle est la signification? Si une personne visite votre site pour la première fois, il crée une session qui fonctionne tant que la personne ne ferme pas le navigateur, à savoir, ultérieure de recharger la page (F5) ou traversant le site, nous allons vérifier si la session est créée. Si la session existe, l'utilisateur ne sera pas prise en compte.
Ce mode de réalisation est légèrement améliorée par rapport au premier mode de réalisation.
Faites attention au début du fichier, la fonction session_start () initialise la session.
counter.php
Dans ce passage, par rapport à la première tout en laissant inchangée
<? Php
$ Url = "compteur / stat.txt";
if (! file_exists ($ url)) {
// Si le fichier n'existe pas, créez-le, et écrire une valeur nulle
$ Count = 0;
$ Handle = fopen ($ url, "a");
fwrite (Poignée de $, $ count);
fclose (Poignée de $);
}
Ici aussi, il suffit de lire le fichier et obtenir le numéro posescheniy.Dalee regardez attentivement
else {
// Si le fichier existe, puis de travailler avec eux
$ Handle = fopen ($ url, "a +"); // Ouvrez
$ Count = fread ($ handle, filesize ($ url)); // Lire les données et les affecte à la variable count $
fclose (Poignée de $);
Créer une condition si la session est pas disponible, cela signifie que la personne visitant la page pour la première fois, de sorte que la variable $ _SESSION [ 'count'] attribuer ce que la valeur est vérifiée dans les conditions de début, plus à l'$ variable count ajouter un, et l'écrire avant fichier, et de commencer à verrouiller l'accès, nous faisons un dossier et ouvert dostup.Eto doivent au moment du traitement de plusieurs visiteurs à l'erreur de script se pose.
if (! isset ($ _ SESSION [ 'count'])) {// Si la session est pas
$ _SESSION [ 'Count'] = 1; // Création il
$ Count ++; // Ajouter un à la variable
$ Handle = fopen ($ url, "w");
if (flock ($ handle, LOCK_EX)) {
fwrite ($ handle, $ count); // écrit dans un fichier
flock ($ handle, LOCK_UN); // Déverrouille le fichier
} Else {
echo "Confirmer plus tard»;
}
fclose (Poignée de $);
}
}
// Vues de sortie.
echo "Nombre de vues: $ count";
?>
Maintenant, je vais expliquer pourquoi en appuyant sur F5 est ajouté poseschenie.Tak comme la première visite, nous créons une session, alors le résultat if (! Isset ($ _ SESSION [ 'count'] test), l'expression retourne FALSE, donc ajouter quoi que ce soit et ne sera pas enregistrer .
[+] Plus:
* Facile à installer * Ne nécessite pas de base de données * Ne pas mettre à jour la page vissée * Lors de la manipulation du script plusieurs personnes en même temps, il n'y a pas d'erreur.
[-] Inconvénients du compteur:
* Si le fichier est supprimé avec les données, vous perdrez les statistiques accumulées
prime
Dans ce mode de réalisation, nous allons examiner un script qui va construire une image graphique que le nombre de visiteurs sera affiché. Pour cela nous avons besoin du soutien pour notre compteur, il doit être l'image de format jpeg pour le test peut prendre cela.
Ensuite, nous devons développer la deuxième option, et ajouter un autre fichier, qui sera responsable de la construction de l'image.
counter.php - Voici être réglé pour fonctionner avec des fonctions d'imagerie
<? Php
// Le substrat pour le compteur
$ Im = imagecreatefromjpeg ( "bg.jpg");
// Couleur du texte
$ Noir = imagecolorallocate ($ im, 255,255,255);
// Rendu le texte
imagestring ($ im, 1,8,4, $ _ GET [ 's'], $ noir);
Header ( "Content-type: image / jpeg");
// Image de sortie
Imagejpeg ($ im);
// Nous détruisons l'image à la mémoire ne soit pas bouché
imagedestroy ($ im);
?>
Les trois variantes seront utiles à l'avenir.
[+] Plus:
* Facile à installer * Ne nécessite pas de base de données * Ne pas mettre à jour la page vissée * Lors de la manipulation du script plusieurs personnes en même temps, il n'y a pas d'erreur. * Belle apparence personnalisable.
[-] Inconvénients du compteur:
* Si le fichier est supprimé de la stat.txt de données, vous perdrez les statistiques accumulées
conclusion
Toutes ces options peuvent être facilement mises en pratique, afin de mettre le compteur vient de mettre le code < ? Php @include (counter.php) ?;?> Dans le bon endroit
UPGRADE contre - coups et visites de compteur graphique.
détails
Pour modifier le compteur, nous avons besoin d'apprendre:
* Travailler avec setcookie () et superglobalom _COOKIE $; * Les tableaux en PHP; * Caractéristiques de construction d'images en PHP; * Utilisation des fichiers et base de données MySQL.
Option 1.Schetchik sur les fichiers
Tout le compteur sera composé de plusieurs fichiers:
* Index.php - une page sur laquelle il y a un compteur défi * counter.php - Fonctions / écriture de script avec des opérations logiques et de lecture de données * Img.php - imagerie de script * Stat.txt - statistiques de fichiers contenant
index.php
fichier standard contenant html-code, et le compteur de connexion de script
Également dans ce fichier en haut de la page à la balise et vous devez installer les cookies (cookies).
Le premier attribut de la fonction porte le nom de cookie, le second attribut - la valeur qui est attribué à ce nom, à savoir si vous exécutez echo $ _COOKIE [ 'freshcoder'], le navigateur affiche l'attribut mot count.Trety spécifie le temps du cookie, à savoir si une personne est allé à 10 heures, nous avons besoin de définir un cookie pendant 14 heures. La durée est spécifiée en secondes.
<Php setcookie ( "freshcoder", "count", time () + (24 jour ( 'G')) * 3600);?>
<Html>
<Head>
<Titre> Exemple de fonctionnement compteur </ title>
</ Head>
<Body bgcolor = text "blanc" = "black" link = "blue" vlink = alink "purple" = "red">
<P> Bienvenue </ p>
<Php @include ( "counter.php"); ??>
</ Body>
</ Html>
counter.php
Ce script a subi quelques modifications. En tant que protection contre la tricherie utilisée condition que vous vérifiez un cookie sur le côté de l'utilisateur.
Par exemple, les gens ont visité le site à 10 heures du matin, nous avons besoin d'ajouter une visite et de laisser les cookies dans votre navigateur, l'homme qui sera valable jusqu'à 24:00 de la journée en cours.
logique script est simple, sinon le cookie de l'utilisateur, nous tricher le compteur par un et écrire la valeur dans un fichier, ou ajouter un hit.
<? Php
$ Url = "compteur / stat.txt";
if (! file_exists ($ url)) {
// Si le fichier n'existe pas, créez-le, et écrire une valeur nulle
$ Count = "0 :: 0";
$ Handle = fopen ($ url, "a");
fwrite (Poignée de $, $ count);
fclose (Poignée de $);
}
else {
// Si le fichier existe, puis de travailler avec eux
$ Data = fichier ($ url); // Ouvre
liste ($ user, $ hit) = explode ( "::", $ data [0]); // Diviser le tableau en variables
if (! $ _ COOKIE [ 'freshcoder']) {$ user ++; $ frappé ++;}
else {$ hit ++;}
$ Handle = fopen ($ url, "w"); // Ouvrir le fichier
$ Count = $ user "::" $ hit ..; // Former une rangée
if (flock ($ handle, LOCK_EX)) {// fichier verrouillé
fwrite ($ handle, $ count); // écrit dans un fichier
flock ($ handle, LOCK_UN); // Déverrouille le fichier
} Else {
echo "Confirmer plus tard»;
}
fclose (Poignée de $);
}
// Vues de sortie.
echo '<img src = "img.php? u ='. $ utilisateur. '& h ='. $ hit." alt = "stat" width = hauteur "80" = border "30" = "0" /> ';
?>
img.php
Ce script a subi des changements importants. parce que fonction imagestring (), dans la construction des inscriptions que l'origine en utilisant le coin supérieur gauche, puis au fil du temps avec l'augmentation de notre longueur de la ligne de nombres d'un problème - certains d'entre eux vylazit par image. Pour éviter cela, on peut écrire des conditions simples qui reçoivent des données, les comparer, et provoquer fonction imagestring () pour modifier les coordonnées.
Également ajouté au script pour construire la deuxième ligne de l'inscription. Ce script récupère paramètre GET de données, de sorte
va extraire les données de superglobala $ _GET.
? Img.php u = '.. $
utilisateur' & h = '.. $ hit' » dans cette ligne, nous avons attribué le $ _GET variable [ 'u'] valeur $ user et $ _GET [ 'h'] - la valeur de $ frappé . Ceci est un très simples paramètres de façon predachi au script. Mais cette méthode ne soit pas recommandé d'envoyer votre mot de passe ou des données sensibles.
<? Php
// Le substrat pour le compteur
$ Im = imagecreatefromgif ( "bg.gif"); </ p>
// Couleur du texte
$ Noir = imagecolorallocate ($ im, 255,255,255);
// Dessine kolichstvo visiteurs
if ($ _ GET [ 'u']> = 1 AND $ _GET [ 'u'] <10) {
imagestring ($ im, 2,69,14, $ _ GET [ 'u'], $ noir);
}
if ($ _ GET [ 'u']> = 10 ET $ _GET [ 'u'] <100) {
imagestring ($ im, 2,64,14, $ _ GET [ 'u'], $ noir);
}
if ($ _ GET [ 'u']> = 100 ET $ _GET [ 'u'] <1000) {
imagestring ($ im, 2,59,14, $ _ GET [ 'u'], $ noir);
}
if ($ _ GET [ 'u']> = 1000 ET $ _GET [ 'u'] <10000) {
imagestring ($ im, 2,54,14, $ _ GET [ 'u'], $ noir);
}
if ($ _ GET [ 'u']> = 10000 ET $ _GET [ 'u'] <100000) {
imagestring ($ im, 2,49,14, $ _ GET [ 'u'], $ noir);
}
// Dessine kolichstvo résultats
if ($ _ GET [ 'h']> = 1 AND $ _GET [ 'h'] <10) {
imagestring ($ im, 2,69,3, $ _ GET [ 'h'], $ noir);
}
if ($ _ GET [ 'h']> = 10 ET $ _GET [ 'h'] <100) {
imagestring ($ im, 2,64,3, $ _ GET [ 'h'], $ noir);
}
if ($ _ GET [ 'h']> = 100 ET $ _GET [ 'h'] <1000) {
imagestring ($ im, 2,59,3, $ _ GET [ 'h'], $ noir);
}
if ($ _ GET [ 'h']> = 1000 ET $ _GET [ 'h'] <10000) {
imagestring ($ im, 2,54,3, $ _ GET [ 'h'], $ noir);
}
if ($ _ GET [ 'h']> = 10000 ET $ _GET [ 'h'] <100000) {
imagestring ($ im, 2,49,3, $ _ GET [ 'h'], $ noir);
}
Header ( "Content-type: image / gif");
Imagegif ($ im);
imagedestroy ($ im);
?>
Ce compteur tourné pour tenir compte des transitions entre les pages et indiquant le nombre réel de visiteurs.
Option 2. Compteur à MySQL
Tout d'abord, nous devons créer un tableau dans lequel nous allons stocker toutes les données. Si vous testez sur un serveur local, la demande sera le suivant:
Lorsque vous travaillez avec la base de données va changer uniquement le fichier counter.php
counter.php
Dans cet exemple, tout ce qui est beaucoup plus facile. La première étape de connexion à la base de données.
<? Php
// Connexion à la base de données.
$ Db = @ mysql_connect ( "localhost", "root", "pass") or die ( "Erreur de connexion");
@mysql_select_db ( "test", $ db) or die ( "Impossible de sélectionner la base de données");
$ Q = mysql_query ( "SELECT * FROM counter");
$ R = mysql_fetch_array ($ q);
if (! $ _ COOKIE [ 'freshcoder'])
{
$ R [ 'hôtes'] ++; $ R [ 'hits'] ++; // Si vous ne pas ajouter la valeur du cookie
}
else {$ r [ 'frappe'] ++; } // S'il y a des cookies, juste plyusuem résultats
mysql_query ( '. $ r "hosts compteur SET UPDATE =" [' hosts ']. "', frappe = '" $ r. [' hits ']. "'");
echo '<img src = "img.php? u ='. $ r [ 'hôtes']. '& h ='. $ r [ 'hits']. '" alt = "stat" width = hauteur "80" = "30" border = "0" /> ';
?>
Avec la fonction mysql_fetch_array obtenir un tableau $ r, qui sont les domaines clés du compteur de table. Le $ r variable [ 'hosts'] - ses visiteurs, et $ r [ 'hits'] - il frappe. Tout comme lorsque vous travaillez avec des fichiers en utilisant les conditions et vérifier le cookie, si vous n'existe pas, le $ r variable [ 'hosts'] est incrémenté s'il y a alors on augmente la variable $ r [ 'hits'].
Ceci est suivi par une requête qui met à jour l'entrée et la valeur des inserts. Après cela, nous tirons un script images.
img.php
Nous laissons inchangés.
<? Php
// Le substrat pour le compteur
$ Im = imagecreatefromgif ( "bg.gif"); </ p>
// Couleur du texte
$ Noir = imagecolorallocate ($ im, 255,255,255);
// Dessine kolichstvo visiteurs
if ($ _ GET [ 'u']> = 1 AND $ _GET [ 'u'] <10) {
imagestring ($ im, 2,69,14, $ _ GET [ 'u'], $ noir);
}
if ($ _ GET [ 'u']> = 10 ET $ _GET [ 'u'] <100) {
imagestring ($ im, 2,64,14, $ _ GET [ 'u'], $ noir);
}
if ($ _ GET [ 'u']> = 100 ET $ _GET [ 'u'] <1000) {
imagestring ($ im, 2,59,14, $ _ GET [ 'u'], $ noir);
}
if ($ _ GET [ 'u']> = 1000 ET $ _GET [ 'u'] <10000) {
imagestring ($ im, 2,54,14, $ _ GET [ 'u'], $ noir);
}
if ($ _ GET [ 'u']> = 10000 ET $ _GET [ 'u'] <100000) {
imagestring ($ im, 2,49,14, $ _ GET [ 'u'], $ noir);
}
// Dessine kolichstvo résultats
if ($ _ GET [ 'h']> = 1 AND $ _GET [ 'h'] <10) {
imagestring ($ im, 2,69,3, $ _ GET [ 'h'], $ noir);
}
if ($ _ GET [ 'h']> = 10 ET $ _GET [ 'h'] <100) {
imagestring ($ im, 2,64,3, $ _ GET [ 'h'], $ noir);
}
if ($ _ GET [ 'h']> = 100 ET $ _GET [ 'h'] <1000) {
imagestring ($ im, 2,59,3, $ _ GET [ 'h'], $ noir);
}
if ($ _ GET [ 'h']> = 1000 ET $ _GET [ 'h'] <10000) {
imagestring ($ im, 2,54,3, $ _ GET [ 'h'], $ noir);
}
if ($ _ GET [ 'h']> = 10000 ET $ _GET [ 'h'] <100000) {
imagestring ($ im, 2,49,3, $ _ GET [ 'h'], $ noir);
}
Header ( "Content-type: image / gif");
Imagegif ($ im);
imagedestroy ($ im);
?>
Vous aimez? Abonnez - vous à RSS nouvelles! Vous pouvez également soutenir shram.kiev.ua, cliquez sur:
Ne soyez pas mal à vos amis et trouver cette information, partager avec eux l'article!
Développer / Réduire
Commentaires
Commentant, gardez à l' esprit que le contenu et le ton de vos messages peuvent blesser les sentiments des gens réels, montrer du respect et de la tolérance à ses interlocuteurs, même si vous ne partagez pas leur avis, votre comportement en termes de liberté d'expression et de l' anonymat offert par Internet, est en train de changer non seulement virtuel, mais dans le monde réel.Tous les commentaires sont cachés à l'index, le contrôle anti - spam.
Commentaires
Commentant, gardez à l' esprit que le contenu et le ton de vos messages peuvent blesser les sentiments des gens réels, montrer du respect et de la tolérance à ses interlocuteurs, même si vous ne partagez pas leur avis, votre comportement en termes de liberté d'expression et de l' anonymat offert par Internet, est en train de changer non seulement virtuel, mais dans le monde réel. Tous les commentaires sont cachés à l'index, le contrôle anti - spam.