|
|
|
Live - Counter
Zurück zur Übersicht Ein Counter welcher euch die Anzahl der Besucher ausgibt, welche gerade eure Homepage besuchen.
Wenn du wissen möchtest wie viele Besucher gerade auf deiner Homepage online sind kannst du keinen normalen Counter verwenden sondern benötigst einen Live-Counter (User-Counter).
Für diesen Counter benötigen wir eine Tabelle in einer Datenbank.
Tabellenname : live_counter
ip_v : speichert die IP Adresse des Besuchers
last_update : speichert den timestamp, wenn der Besucher zuletzt online war
Der SQL Code:
CREATE TABLE IF NOT EXISTS `live_counter` (
`live_id` int(11) NOT NULL auto_increment,
`ip_v` varchar(15) NOT NULL,
`last_update` int(14) NOT NULL,
PRIMARY KEY (`live_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Damit wir den Onlinestatus des Besuchers erfassen können erstellen wir die Datei. zeitupdate.php
zeitupdate.php
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
|
<?php
/* Am Anfang bauen wir eine
Datenbankverbindung auf. In
den nachfolgenden 4 Zeilen
musst du die Zugansdaten
deiner Datenbank eintragen. */
$live_servername = "";
$live_username = "";
$live_passwort = "";
$live_datenbankname = "";
$live_verbindung = mysql_connect
($live_servername,$live_username,$live_passwort)
or die ("keine Verbindung moeglich.
Benutzername oder Passwort sind falsch");
mysql_select_db($live_datenbankname)
or die ("Die Datenbank existiert nicht.");
/* Daten des Besuchers abfragen
*/
$ip_adresse = $_SERVER['REMOTE_ADDR'];
$live_time = time();
/* Abfrage ob die IP Adresse
schon eingetragen ist
*/
$live_abfrage = "SELECT COUNT(live_id)
FROM live_counter WHERE ip_v = '$ip_adresse'";
$live_ergebnis = mysql_query($live_abfrage);
$live_menge = mysql_fetch_row($live_ergebnis);
if($live_menge[0] == 0){
/* Die IP Adresse neu eintragen
*/
$live_eintrag = "INSERT INTO live_counter
(ip_v,last_update)
VALUES('$ip_adresse',$live_time)";
$live_eintragen = mysql_query($live_eintrag);
}else{
/* Update durchfuehren
*/
$live_aendern = "UPDATE live_counter
Set last_update='$live_time'
WHERE ip_v = '$ip_adresse'";
$live_update = mysql_query($live_aendern);
}
mysql_close($live_verbindung);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<Meta http-equiv="refresh" content="10" >
<title> </title>
</head>
<body>
</body>
</html>
|
|
Zuerst stellen wir eine Verbindung zur Datenbank her.
Danach speichern wir uns die IP Adresse des Besuchers und die aktuelle Uhrzeit auf Variablen.
Anschließend wird überprüft ob diese IP Adresse schon einmal unsere Homepage besucht hat.
Wenn dieser Fall zutrifft wird die Uhrzeit aktualisiert.
Ansonsten wird die IP Adresse mit der aktuellen Uhrzeit neu eingetragen.
Zum Schluss schließen wir die Datenbankverbindung wieder.
Nach dem PHP Teil wird die Datei per meta-refresh alle 10 Sekunden aktualisiert.
Dieser Teil kann weggelassen werden. Dann kann es aber vorkommen, dass ein Besucher als offline gewertet wird wenn er einen längeren Text auf der Homepage ließt.
-----------------------
Möchtest du die Anzahl der Besucher ausgeben welche gerade online sind, kannst du diese Funktion auf deiner Hauptseite (auch auf Unterseiten) einbauen.
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
|
<?php
function live_user_anzeigen(){
/* wieviel zeit muss vergehen,
damit der besucher inaktiv gesetzt wird*/
$aktiv_sekunden = 10;
$aktiv_minuten = 0;
$aktiv_zeit = time() - $aktiv_sekunden - $aktiv_minuten * 60;
/* Datenbankabfrage wie viele
Besucher gerade online sind */
$aktiv_abfrage = "SELECT COUNT(live_id)
FROM live_counter
WHERE last_update > $aktiv_zeit";
$aktiv_ergebnis = mysql_query($aktiv_abfrage);
$aktiv_menge = mysql_fetch_row($aktiv_ergebnis);
$aktiv_menge = $aktiv_menge[0];
/* Hier kannst du das Design
beliebig aendern */
echo "Online: $aktiv_menge Besucher ";
}
?>
|
|
Die Funktion wird mit live_user_anzeigen(); aufgerufen.
WICHTIG! Damit diese Funktion einsatzbereit ist muss eine Datenbankverbindung aufgebaut werden.
-----------------------
Auf jeder Seite wo die Besucher gezählt werden sollen muss dieser Code im <body> eingefügt werden.
src gibt den Pfad der aktualisierungsdatei an
<iframe src="zeitupdate.php" width="0" height="0" style="display:none"></iframe>
----------------------------
Bei einer gutbesuchten Homepage kann die Liste der IP Adressen ziemlich lang werden und sollte täglich optimiert werden. Deshalb kann die Tablle mit dieser PHP-Datei: live_ip_loeschen.php wieder verkleinert werden.
live_ip_loeschen.php
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
|
<?php
/* Am Anfang bauen wir eine
Datenbankverbindung auf. In
den nachfolgenden 4 Zeilen
musst du die Zugansdaten
deiner Datenbank eintragen. */
$live_servername = "";
$live_username = "";
$live_passwort = "";
$live_datenbankname = "";
$live_verbindung = mysql_connect ($live_servername,$live_username,$live_passwort)
or die ("keine Verbindung möglich. Benutzername
oder Passwort sind falsch");
mysql_select_db($live_datenbankname)
or die ("Die Datenbank existiert nicht.");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title> </title>
</head>
<body>
<?php
$zulange_nicht_aktiv = time() - 3600;
$live_abfrage = "SELECT ip_v
FROM live_counter
WHERE last_update < $zulange_nicht_aktiv";
$live_ergebnis = mysql_query($live_abfrage);
while($live_row = mysql_fetch_object($live_ergebnis))
{
$live_loeschen = "DELETE FROM live_counter
WHERE ip_v = '$live_row->ip_v'";
$live_loesch = mysql_query($live_loeschen);
if($live_loesch)
echo "<br /> IP $live_row->ip_v wurde geloescht. <br />";
else
echo "<br /> IP $live_row->ip_v konnte nicht geloescht werden. <br />";
}
?>
</body>
</html>
|
|
Diese PHP-Datei bewirkt, dass alle IP-Adressen welche länger als 1 Stunde nicht aktiv waren gelöscht werden.
Autor: M0op
Homepage: http://d-book.cwsurf.de
Kommentare
Zurück zur Übersicht
Autor M0op
|
|
|
|