Statistiken auf der Website. Schreiben Sie ein Skript hit counter.
Einführung
Ich bin sicher, dass viele von Ihnen verschiedene Websites besuchen, achten Sie auf die Zähler, die auf den Websites. Statistiken zeigen uns, wie viele Menschen eine Ressource besucht, wie viele Seiten verschifft wurden, wie viele Menschen auf der Website sind im Moment, und so weiter. All dies ist ein sehr nützliches Werkzeug, weil es ermöglicht die Website-Eigentümer, die Nachfrage und das Rating ihrer Ressource zu kennen. Je mehr interessante und nützliche Ressourcen, desto mehr wird er besucht.
Im Moment gibt es viele Dienste, die uns eine Menge Tools bieten Statistiken und Daten zu sammeln, sowie deren Analyse. Sie sind alle sehr professionell ihre Aufgaben, aber wenn es begann mit samopisnogo Zähler, der jetzt gefunden werden können.
Wenn Sie verstehen wollen, wie die Registrierung der Benutzer, habe ich eine Lektion vorbereitet, in dem ich Zählung Besuche auf der Website schreiben, werde ich erklären, wie man einen Zähler auf der Website zu installieren und die Daten für ihre eigenen Zwecke zu nutzen.
Details
Damit wir einen einfachen Zähler zu schreiben haben wir ein paar neue Funktionen zu lernen.
* Arbeiten mit Dateien (erstellen / lesen / schreiben); * Die Arbeit mit den Sitzungen; * Mit Funktionen arbeiten, ein Bild zu erzeugen; * Anschluss eines Zählers;
Wir werden drei Optionen zu prüfen:
* Text hit counter; * Text hit counter; * Grafische Besucher begegnen;
Anfang
Erstellen Sie einen Ordner www, Gegen Ordner. Es wird ein Ort zum Speichern der Datei Statistiken und Skript sein. Als nächstes werde ich mehrere Optionen für Zähler liefern.
Variante 1
Um das Messgerät zu verwenden, benötigen wir eine HTML-Seite zu erstellen, in denen wir Skript eingebettet sind. Lassen Sie es eine einfache Seite, die die Informationen enthält.
Speichern Sie diese Seite in Ihre www-Ordner und gehen Sie in die Programmierung Zähler.
counter.php
Um die Daten zu speichern, müssen wir sie irgendwo zu erfassen, auch für den Anfang wäre es eine einfache Textdatei stat.txt benannt sein.
‹?php $url = "counter/stat.txt";
Die Variable $ url-Adresse in der Datei zugeordnet. Dies ist die einzige Konfigurationselement, in dem wir die gewünschten Daten eingestellt, dann besteht das Skript eines logischen Ausdrucks und funktionieren anders, wenn die Arbeit mit Dateien
Dieser Code ist verantwortlich für die Existenz der Datei zu überprüfen, den gesamten Verlauf der logische Aktion, bestellte ich in den Kommentaren.
if(!file_exists($url)) { //Проверка на существование файла. //Если файла не существует, $count = 0; $handle = fopen($url,"a");//создаем его, fwrite($handle,$count);// и записываем нулевое значение fclose($handle);//Закрываем файл }
Als nächstes beschreiben wir den Zustand, wenn die Datei erstellt wurde.
else { //Если файл существует, то работаем с ним $handle = fopen($url,"a+"); //Открываем его $count = fread($handle,filesize($url)); //Читаем данные и присваеваем их переменной $count fclose($handle); //Закрываем $count++;//Добавляем одно посещение к полученному выше $handle = fopen($url,"w"); // Открываем файл, и урезаем его до нулевой длины fwrite($handle,$count); //Записываем переменную $count fclose($handle); //Закрываем }
In dieser Passage beschrieben nur das Skript hit counter, genau hinschauen, im ersten Fragment wir die Datei öffnen, um es zu öffnen und die Anzahl der Besuche zu sehen. Dann erhöhen wir diesen Wert um 1 Einheit ($ count ++;) und diesen Wert in unserer Datei schreiben.
Am Ende der Datei leiten wir Statistiken über die Echo - Anweisung
echo "количество просмотров: $count ";
Wir haben die einfachste Art der Zähler betrachtet, aber glauben Sie mir, manchmal schwierig und erfordert nicht, zum Beispiel, müssen wir die Zahl der Seite liest (Artikel, Anzeigen) innerhalb der Website zu erfahren. Normalerweise bedeutet dies, Website-Besucher das interessanteste Material. Neben dem Zähler zu arbeiten, öffnen wir unsere Datei die index.php, und eine Linie zum Tag hinzufügen
* Einfach zu installieren * Benötigt keine Datenbank
[-] Nachteile des Zählers:
* Leicht außer Atem einfache Update-Seite (F5). * Wenn mehr als eine Person gleichzeitig die Berufung auf das Skript, es oshibka.T.k. die Datei geöffnet ist und von jemand anderem verwendet wird, so müssen Sie das Skript zu ergänzen. * Wenn die Datei mit den Daten gelöscht wurden, werden Sie die gesammelten Statistiken verlieren
Option 2
Zähler enthält nur die Besucher. Was bedeutet das? Besucher - die Zahl der Nutzer, die Ihre Website, wie zum Beispiel einen Tag besucht haben, und selbst wenn die Person den Wert des Seitenzählers aktualisieren wird nicht hinzugefügt werden.
Um einen Zähler zu erstellen, müssen wir lernen, mit Sitzungen zu arbeiten. Was ist der Sinn? Wenn eine Person Ihre Website zum ersten Mal besucht, erstellt es eine Sitzung, die, solange die Person arbeitet nicht den Browser zu schließen, das heißt, Folge die Seite (F5) oder Überschreiten der Seite neu zu laden, werden wir prüfen, ob die Sitzung erstellt wird. Wenn die Sitzung existiert, wird der Benutzer nicht berücksichtigt werden.
Diese Ausführungsform wird leicht mit dem ersten Ausführungsbeispiel im Vergleich verbessert.
Achten Sie auf den Anfang der Datei, session_start () Funktion initialisiert die Sitzung.
counter.php
In dieser Passage, im Vergleich mit dem ersten Verlassen alles unverändert
<? Php
$ Url = "Zähler / stat.txt";
if (! file_exists ($ url)) {
// Wenn die Datei nicht existiert, erstellen Sie es, und schreiben Sie einen Nullwert
Count = $ 0;
Griff $ = fopen ($ url, "a");
fwrite ($ handle, $ count);
fclose ($ handle);
}
Auch hier ist, lesen Sie einfach die Datei und erhalten die Zahl posescheniy.Dalee genau hinschauen
else {
// Wenn die Datei existiert, dann mit ihnen zusammenarbeiten
Griff $ = fopen ($ url, "a +"); // Öffnen Sie es
Count $ = fread ($ handle, Dateigröße ($ url)); // Daten lesen und ordnet sie in die Variable $ count
fclose ($ handle);
Erstellen Sie eine Bedingung, wenn die Sitzung nicht verfügbar ist, bedeutet es, die Person, die die Seite zum ersten Mal besuchen, so dass die Variable $ _SESSION [ 'count'] zuweisen, was das Wert zu Beginn Bedingungen geprüft wird, weiter auf die Variable $ count man hinzufügen, und schreiben Sie es zurück in Datei, und starten sie den Zugang zu ihr zu sperren, machen wir eine Aufzeichnung und offene dostup.Eto müssen zum Zeitpunkt der Behandlung von mehreren Besuchern der Skriptfehler entstanden sind.
if (! isset ($ _ SESSION [ 'count'])) {// Wenn die Sitzung nicht
$ _SESSION [ 'Count'] = 1; // Es erstellen
Count $ ++; // Ein auf die Variable hinzufügen
Griff $ = fopen ($ url, "w");
if (flock ($ handle, LOCK_EX)) {
fwrite ($ handle, $ count); // schreibt sie in eine Datei
Herde ($ handle, LOCK_UN); // Öffnet die Datei
} Else {
echo "später bestätigen";
}
fclose ($ handle);
}
}
// Ausgabe Ansichten.
echo "Anzahl der Ansichten: $ count";
?>
Jetzt werde ich erklären, warum durch Drücken der Taste F5 poseschenie.Tak wie beim ersten Besuch hinzugefügt wird, schaffen wir eine Sitzung, dann ist das Ergebnis if (! Isset ($ _ SESSION [ 'count'] Test), gibt der Ausdruck FALSCH, so etwas hinzufügen, und nicht aufzeichnen .
[+] Vorteile:
* Einfach zu installieren * Benötigt keine Datenbank * Aktualisiere die Seite nicht geschraubt * Wenn das Skript mehrere Personen gleichzeitig Handhabung, gibt es keine Fehler.
[-] Nachteile des Zählers:
* Wenn die Datei mit den Daten gelöscht wurden, werden Sie die gesammelten Statistiken verlieren
Bonus
In dieser Ausführung werden wir an einem Skript suchen, die eine grafische Bild, das die Zahl der Besucher wird angezeigt bauen. Dafür brauchen wir die Unterstützung für unsere Zähler, muss es sein, JPEG-Format Bild zum Testen kann dies.
Als nächstes müssen wir die zweite Option, und fügen Sie eine weitere Datei zu entwickeln, die für den Aufbau des Bildes verantwortlich ist.
counter.php - hier eingestellt werden , mit Imaging - Funktionen arbeiten
<? Php
// Das Substrat für den Zähler
$ Im = imagecreatefromjpeg ( "bg.jpg");
// Textfarbe
$ Schwarz = imagecolorallocate ($ im, 255,255,255);
// Den Text Render
image ($ im, 1,8,4, $ _ GET [ 's'], schwarz $);
Header ( "Content-type: image / jpeg");
// Ausgabe Bild
Imagejpeg ($ im);
// Wir zerstören das Bild in den Speicher nicht verstopft ist
imagedestroy ($ im);
?>
Alle drei Varianten werden in der Zukunft nützlich sein.
[+] Vorteile:
* Einfach zu installieren * Benötigt keine Datenbank * Aktualisiere die Seite nicht geschraubt * Wenn das Skript mehrere Personen gleichzeitig Handhabung, gibt es keine Fehler. * Schöne, anpassbare Aussehen.
[-] Nachteile des Zählers:
* Wenn die Datei aus dem Daten stat.txt gelöscht wird, werden Sie die gesammelten Statistiken verlieren
Abschluss
Alle diese Optionen können leicht in die Praxis umgesetzt werden, um den Zähler zu bringen Sie einfach den Code setzen < ? Php @include (counter.php) ?;?> In der richtigen Stelle
UPGRADE Zähler - Grafische Zähler Hits und Besuche.
Details
Um den Zähler zu ändern, müssen wir lernen:
* Arbeiten mit setcookie () Funktion und superglobalom $ _COOKIE; * Arrays in PHP; * Eigenschaften der Konstruktion von Bildern in PHP; Arbeiten * mit Dateien und der Datenbank MySQL.
Option 1.Schetchik auf Dateien
Alle Zähler werden aus mehreren Dateien bestehen:
Index.php * - eine Seite, auf der es eine Gegen Herausforderung ist * Counter.php - Skript mit logischen Operationen und Daten-Lese / Schreib-Funktionen * Img.php - Skript-Bildgebung * Stat.txt - Datei mit Statistiken
index.php
Standard-Datei HTML-Code enthält, und die Verbindung counter script
Auch in dieser Datei oben auf der Seite mit dem Tag und Sie müssen Cookies (Cookies) zu installieren.
Das erste Attribut der Funktion trägt Cookie-Namen, das zweite Attribut - den Wert, der diesem Namen zugeordnet ist, dh wenn Sie echo $ _COOKIE ausführen [ 'freshcoder'], wird der Browser das Wort count.Trety Attribut angezeigt werden soll, die Zeit des Cookies, das heißt wenn eine Person um 10 Uhr ging, müssen wir für 14 Stunden ein Cookie zu setzen. Die Dauer wird in Sekunden angegeben.
<Php setcookie ( "freshcoder", "count", time () + (24-date ( 'G')) * 3600);?>
<Html>
<Head>
<Title> Beispiel für den Betrieb Zähler </ title>
</ Head>
<Body bgcolor = "white" text = "black" link = "blue" vlink = "purple" alink = "red">
<P> Willkommen </ p>
<Php @include ( "counter.php"); ??>
</ Body>
</ Html>
counter.php
Dieses Skript hat einige Veränderungen erfahren. Als Schutz vor Betrug Zustand verwendet überprüfen Sie ein Cookie auf der Benutzerseite.
Zum Beispiel Menschen, die Seite um 10 Uhr morgens besuchte, brauchen wir einen Besuch und lassen Sie Cookies in Ihrem Browser, der Mann hinzuzufügen, die bis 12.00 Uhr des laufenden Tages gültig.
Skript Logik ist einfach, wenn nicht das Cookie vom Benutzer, wir den Zähler um eins und den Wert in eine Datei zu betrügen, oder einen Hit hinzufügen.
<? Php
$ Url = "Zähler / stat.txt";
if (! file_exists ($ url)) {
// Wenn die Datei nicht existiert, erstellen Sie es, und schreiben Sie einen Nullwert
Count $ = "0 :: 0";
Griff $ = fopen ($ url, "a");
fwrite ($ handle, $ count);
fclose ($ handle);
}
else {
// Wenn die Datei existiert, dann mit ihnen zusammenarbeiten
$ Data = Datei ($ url); // es öffnen
Liste ($ user, $ hit) = explode ( "::", $ data [0]); // Teilen Sie die Arrays in Variablen
if (! $ _ COOKIE [ 'freshcoder']) {$ user ++; $ hit ++;}
else {Hit $ ++;}
Griff $ = fopen ($ url, "w"); // Öffnen Sie die Datei
Count $ = $ user "::" $ hit ..; // Eine Reihe bilden
if (flock ($ handle, LOCK_EX)) {// gesperrte Datei
fwrite ($ handle, $ count); // schreibt sie in eine Datei
Herde ($ handle, LOCK_UN); // Öffnet die Datei
} Else {
echo "später bestätigen";
}
fclose ($ handle);
}
// Ausgabe Ansichten.
echo '<img src = "img.php? u ='. $ user. '& h ='. $ Hit. '" alt = "stat" width = "80" height = "30" border = "0" /> ';
?>
img.php
Dieses Skript hat erhebliche Veränderungen erfahren. da Funktion image (), bei der Konstruktion der Inschriften als Ursprung die obere linke Ecke verwenden, dann im Laufe der Zeit mit der Zunahme der Anzahl unserer Leitungslänge eines Problems - einige von ihnen werden pro Bild vylazit. Um zu verhindern, dass dies geschieht, können wir einfachen Bedingungen schreiben, die Daten zu empfangen, vergleichen sie und verursachen Imagestring () Funktion ändern die Koordinate.
Auch hinzugefügt, um das Skript in der zweiten Zeile der Inschrift zu bauen. Dieses Skript ruft Daten GET-Parameter, so
werden Daten aus superglobala $ _GET extrahieren.
? Img.php u = '.. $
user' & h = '.. $ hit' » in dieser Zeile zugewiesen wir die Variable $ _GET [ 'u'] Wert $ user und $ _GET [ 'h'] - den Wert von $ hit . Dies ist eine sehr einfache Art und Weise predachi Parameter an das Skript. Aber diese Methode ist nicht empfehlenswert, Ihr Kennwort oder vertrauliche Daten zu senden.
<? Php
// Das Substrat für den Zähler
$ Im = imagecreatefromgif ( "bg.gif"); </ p>
// Textfarbe
$ Schwarz = imagecolorallocate ($ im, 255,255,255);
// Zeichnen kolichstvo Besucher
if ($ _ GET [ 'u']> = 1 und $ _GET [ 'u'] <10) {
image ($ im, 2,69,14, $ _ GET [ 'u'], schwarz $);
}
if ($ _ GET [ 'u']> = 10 und $ _GET [ 'u'] <100) {
image ($ im, 2,64,14, $ _ GET [ 'u'], schwarz $);
}
if ($ _ GET [ 'u']> = 100 und $ _GET [ 'u'] <1000) {
image ($ im, 2,59,14, $ _ GET [ 'u'], schwarz $);
}
if ($ _ GET [ 'u']> = 1000 und $ _GET [ 'u'] <10000) {
image ($ im, 2,54,14, $ _ GET [ 'u'], schwarz $);
}
if ($ _ GET [ 'u']> = 10000 und $ _GET [ 'u'] <100000) {
image ($ im, 2,49,14, $ _ GET [ 'u'], schwarz $);
}
// Zeichne kolichstvo Hits
if ($ _ GET [ 'h']> = 1 und $ _GET [ 'h'] <10) {
image ($ im, 2,69,3, $ _ GET [ 'h'], schwarz $);
}
if ($ _ GET [ 'h']> = 10 und $ _GET [ 'h'] <100) {
image ($ im, 2,64,3, $ _ GET [ 'h'], schwarz $);
}
if ($ _ GET [ 'h']> = 100 und $ _GET [ 'h'] <1000) {
image ($ im, 2,59,3, $ _ GET [ 'h'], schwarz $);
}
if ($ _ GET [ 'h']> = 1000 und $ _GET [ 'h'] <10000) {
image ($ im, 2,54,3, $ _ GET [ 'h'], schwarz $);
}
if ($ _ GET [ 'h']> = 10000 und $ _GET [ 'h'] <100000) {
image ($ im, 2,49,3, $ _ GET [ 'h'], schwarz $);
}
Header ( "Content-type: image / gif");
Imagegif ($ im);
imagedestroy ($ im);
?>
Das stellte Zähler für Übergänge zwischen den Seiten zu berücksichtigen und Angabe der tatsächlichen Anzahl der Besucher.
Option 2. Zähler zu MySQL
Zuerst müssen wir eine Tabelle zu erstellen, in dem wir alle Daten gespeichert werden. Wenn Sie auf einem lokalen Server testen, wird die Anfrage wie folgt vor:
Wenn es mit der Datenbank arbeiten, werden nur die Datei counter.php ändern
counter.php
In diesem Beispiel ist alles viel einfacher. Der erste Schritt in die Datenbank in verbinden.
<? Php
// Verbindung zur Datenbank her.
$ Db = @ mysql_connect ( "localhost", "root", "pass") oder ( "Connection Error") sterben;
@mysql_select_db ( "test", $ db) oder die ( "Kann nicht wählen Datenbank");
$ Q = mysql_query ( "SELECT * FROM counter");
$ R = mysql_fetch_array ($ q);
if (! $ _ COOKIE [ 'freshcoder'])
{
$ R [ 'Hosts'] ++; $ R [ 'Treffer'] ++; // Wenn Sie nicht hinzufügen, um den Wert des Cookies
}
else {r $ [ 'Hits'] ++; } // Wenn es Cookies sind nur Treffer plyusuem
mysql_query ( "UPDATE Zähler SET hosts = '". $ r [' Hosts ']. "' trifft = '" $ r. [' Treffer ']. "'");
echo '<img src = "img.php? u ='. $ r [ 'Hosts']. '& h ='. $ r [ 'Treffer']. '" alt = "stat" width = "80" height = "30" border = "0" /> ';
?>
Mit der Funktion mysql_fetch_array ein Array $ r erhalten, die die Schlüsselfelder der Tabelle Zähler sind. Die Variable $ r [ 'Hosts'] - es ist Besucher und $ r [ 'Treffer'] - er trifft. Genau wie bei der Arbeit mit Dateien, die Bedingungen und überprüfen das Cookie verwenden, wenn Sie nicht vorhanden sind, wird die Variable $ r [ 'Hosts'] erhöht wird, wenn es dann erhöhen wir die Variable $ r [ 'Treffer'].
Dies wird durch einen Antrag gefolgt, der die Werteingabe und Einsätze aktualisiert. Danach leiten wir ein Skript Bilder.
img.php
Wir verlassen unverändert.
<? Php
// Das Substrat für den Zähler
$ Im = imagecreatefromgif ( "bg.gif"); </ p>
// Textfarbe
$ Schwarz = imagecolorallocate ($ im, 255,255,255);
// Zeichnen kolichstvo Besucher
if ($ _ GET [ 'u']> = 1 und $ _GET [ 'u'] <10) {
image ($ im, 2,69,14, $ _ GET [ 'u'], schwarz $);
}
if ($ _ GET [ 'u']> = 10 und $ _GET [ 'u'] <100) {
image ($ im, 2,64,14, $ _ GET [ 'u'], schwarz $);
}
if ($ _ GET [ 'u']> = 100 und $ _GET [ 'u'] <1000) {
image ($ im, 2,59,14, $ _ GET [ 'u'], schwarz $);
}
if ($ _ GET [ 'u']> = 1000 und $ _GET [ 'u'] <10000) {
image ($ im, 2,54,14, $ _ GET [ 'u'], schwarz $);
}
if ($ _ GET [ 'u']> = 10000 und $ _GET [ 'u'] <100000) {
image ($ im, 2,49,14, $ _ GET [ 'u'], schwarz $);
}
// Zeichne kolichstvo Hits
if ($ _ GET [ 'h']> = 1 und $ _GET [ 'h'] <10) {
image ($ im, 2,69,3, $ _ GET [ 'h'], schwarz $);
}
if ($ _ GET [ 'h']> = 10 und $ _GET [ 'h'] <100) {
image ($ im, 2,64,3, $ _ GET [ 'h'], schwarz $);
}
if ($ _ GET [ 'h']> = 100 und $ _GET [ 'h'] <1000) {
image ($ im, 2,59,3, $ _ GET [ 'h'], schwarz $);
}
if ($ _ GET [ 'h']> = 1000 und $ _GET [ 'h'] <10000) {
image ($ im, 2,54,3, $ _ GET [ 'h'], schwarz $);
}
if ($ _ GET [ 'h']> = 10000 und $ _GET [ 'h'] <100000) {
image ($ im, 2,49,3, $ _ GET [ 'h'], schwarz $);
}
Header ( "Content-type: image / gif");
Imagegif ($ im);
imagedestroy ($ im);
?>
Wie es? Abonnieren Sie RSS Nachrichten! Sie können auch shram.kiev.ua unterstützen, klicken Sie auf:
Seien Sie nicht zu Ihren Freunden und finden Sie diese Informationen, teilen mit ihnen den Artikel nicht in Ordnung!
Erweitern / Reduzieren
Kommentare
im Auge kommentierte halten , dass der Inhalt und der Ton Ihrer Nachrichten , die Gefühle von echten Menschen verletzen können, Respekt und Toleranz gegenüber seinen Gesprächspartnern, auch wenn Sie Ihr Verhalten in Bezug auf die Meinungsfreiheit und die Anonymität des Internets, ändert ihre Meinung nicht teilen, nicht nur virtuell, sondern realen Welt.Alle Kommentare werden aus dem Index, Spam - Kontrolle versteckt.
Kommentare
im Auge kommentierte halten , dass der Inhalt und der Ton Ihrer Nachrichten , die Gefühle von echten Menschen verletzen können, Respekt und Toleranz gegenüber seinen Gesprächspartnern, auch wenn Sie Ihr Verhalten in Bezug auf die Meinungsfreiheit und die Anonymität des Internets, ändert ihre Meinung nicht teilen, nicht nur virtuell, sondern realen Welt. Alle Kommentare werden aus dem Index, Spam - Kontrolle versteckt.