In diesem Tutorial möchte ich euch einen einfachen Counter basierend auf Php und einer Mysql Datenbank vorstellen. Dieser soll die Anzahl der Aufrufe zählen und eine Liste mit den Seiten anlegen von unsere Besucher kommen. Dazu kommt eine Reloadsperre um nur echte Besucher zu zählen.
1. Erstellt ihr eine neue PHP Datei. Diese nennt ihr z.B. counter.php
2. Zuerst müssen wir die IP/Reloadsperre einbauen, dies machen wir über Sessions deshalb starten wir unsere PHP Datei mit
- <?PHP
- session_set_cookie_params(14400);
- session_start ();
- ?>
3. Da nach erstellen wir ein Mysql Datenbank, in welcher wir später die Seiten eintragen von denen unsere Besucher kommen.
- CREATE TABLE IF NOT EXISTS `ref` (
- `page` text NOT NULL,
- `count` int(6) NOT NULL
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
4. Jetzt kann man optional noch eine Textdatei anlegen, welche nachher die anzahl der gesamten Besucher nocheinmal aufzählt (Wichtig: In diesem Tutorial wird die Textdatei zur Berechnung und Anzeige der Besucher benutzt. Die Mysql Datenbank soll lediglich anzeigen von wo die Besucher gekommen sind.)
Wir erstellen also eine Counter.txt (Achtung: Die Txt Datei ist später von Auserhalb aufrufbar und sollte daher beim eigenen Counter umbennant werden. )
5. Nun wechseln wir wieder in unser PHP-Script und fügen folgende Zeilen ein.
- <?
- $url = parse_url($_SERVER["HTTP_REFERER"]);
- $ref1 = $url["host"];
z.B:
- toobisblog.blogspot.de
- $dbhost = "Host" ;
- $dbuser = "Username" ;
- $dbpass = "Passwort" ;
- $dbname = "Name der Datenbank" ;
Dann soll sich unser PHP Code mit der Datenbank verbinden und nach einem Datensatz zu der Referer-Seite unseres Besuchers suchen. Dazu schreiben wir folgendes:
- $connect=mysql_connect($dbhost, $dbuser, $dbpass);
- if(!$connect) die("Konnte keien Verbindung herstellen!");
- mysql_select_db($dbname);
- $abfrage = "SELECT page, Count FROM ref WHERE Url = '".$ref1."' ";
- $ergebnis = mysql_query($abfrage) OR die(mysql_error());
- $row = mysql_num_rows($ergebnis);
Dann müssen wir natürlich auf das Ergebnis reagiern und entweder einen neuen Eintrag vornehmen oder den bestehenden updaten:
- if($row == 0)
- {
- $eintrag = "INSERT INTO ref (page, Count) VALUES ('$ref1', '1')";
- $eintragen = mysql_query($eintrag);
- }
- else
- {
- $update = "SELECT page,Count FROM ref WHERE page = '".$ref1."' ";
- $updaten = mysql_query($update);
- $zeile = mysql_fetch_array( $updaten);
- $zeile ["Count"] += 1;
- $ref2 = $zeile ["Count"] ;
- $update2 = "UPDATE `ref` SET `count`=count +1 WHERE page = '".$ref1."' ";
- $updaten2 = mysql_query($update2);
- }
- ?>
6. Nun müssen wir das PHP-Script noch dazu bringen die Counter stände in der Counter.txt zu aktualisieren.
- <?Php
- $datei = fopen('counter.txt','r+');
- $counterstand = fgets($datei, 10);
wenn das passiert ist muss PHP natürlich noch den Counterstand updaten:
- if($counterstand == '')
- {
- $counterstand = 0;
- }
- if(!isset($_SESSION['counter_ip']))
- {
- $counterstand++;
- rewind($datei);
- fwrite($datei, $counterstand);
- $_SESSION['counter_ip'] = true;
- }
- fclose($datei);
- echo $counterstand;
- ?>
Diese nimmt einfach nur die Daten aus der Counter.txt und der Datenbank und gibt diese aus.
- <?php
- $datei = fopen('counter.txt','r+');
- $counterstand = fgets($datei, 10);
- if($counterstand == ''
- {
- $counterstand = 0;
- }
- echo "<h1>Counter Insgesamt:</h1></br>";
- echo "<h2>";
- echo $counterstand;
- echo "</h2></br>";
- fclose($datei);
- echo "<h3>Besucher kommen von:</h3>";
- $dbhost = "Host" ;
- $dbuser = "Username der DB" ;
- $dbpass = "Paswort" ;
- $dbname = "Datenbankname" ;
- $connect=mysql_connect($dbhost, $dbuser, $dbpass);
- if(!$connect) die("Konnte keine Verbindung herstellen!");
- mysql_select_db($dbname);
- $abfrage = "SELECT * FROM ref ";
- $ergebnis = mysql_query($abfrage) OR die(mysql_error());
- echo "<table>";
- while ($zeile = mysql_fetch_array( $ergebnis, MYSQL_ASSOC))
- {
- echo "<tr>";
- echo "<td>";
- echo $zeile['page'] ;
- echo ": ";
- echo"</td>";
- echo "<td>";
- echo $zeile['count'] ;
- echo "</td>";
- echo "</tr>";
- }
- echo "</table>";
- ?>
Das war mein erstes Tutorial hier auf TOOBIS-BLOG. Ich hoffe es war recht verständlich und hilfreich
Tobias
Keine Kommentare:
Kommentar veröffentlichen