PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
» MySQL Tutorial
» PHP
» MySQL
» Codeschnipsel

Downloads
» Einführung
» Scripts
» Command Board

Sonstiges
» md5-Generator
» Generator
» Wissenswertes

PHP lernen


Dieses Projekt wird unterstützt von
Lichteffekte Shop

 
Partner:
PHP Forum
Mathe Nachhilfe
Suchmaschinenoptimierung

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

News
13.08 - » Spam im Gästebuch
Endlich Schluss mit dem Spam

08.12 - » Clanletter 2.0
Clanletter wurde komplett neu programmiert

01.09 - » Command Board 1.0 - 2.0
Das Command Board 1.0 Beta 2.0 ist erschienen


Mehr

Forum
» Entwickler Forum

» insert nach login

» Tabellenzelle zu groß







© PHP-Einfach.de 2003 - 2012