Geschrieben von Sebat am 02.01.2004 um 00:07:
Wieviele sind Online
##########################################################
# Anzeigen vieviel auf einer Seite online sind #
# Original:
gibt es hier #
# Beispiel:
gibt es hier #
# Von Sebat <"Sebat@TalkBoard.de"> #
# Verfasst am 01.01.2003 um 23.36 UHR GMT +1 #
##########################################################
##########################################################
# Was Ihr dafür benötigt #
##########################################################
+ MySQL
+ PhPmyAdmin (Optional)
+ Webserver mit PhP unterstützung
##########################################################
# Erstellen der Datenbanken #
##########################################################
+ Wir brauchen eine neue Tabelle namens "online" diese erstellen wir in unserer Datenbank.
|
+-+ In dieser Tabelle erstellen wir 3 Felder
|
+-+ 1. Name "ID" typ "int" länge *frei wählbar* auto_increment Primärschlüssel
+ 2. Name "IP" typ "vchar" länge *frei wählbar mind. 15*
+ 3. Name "zeit" typ "int" länge "20"
##########################################################
# benötigte PhP Datein #
##########################################################
+ connect.php *Enthält MySql Informationen*
+ online.php *quell code für online*
##########################################################
# Connect.php #
##########################################################
php: |
1:
2:
3:
4:
|
<?
mysql_connect("localhost","BENUTZERNAME","PASSWORT");
mysql_select_db("DATENBANK");
?> |
|
> localhost = Adresse des Datenbankservers (meist Localhost)
> BENUTZERNAME = Benutzername zum DB-Server
> PASSWORT = Passwort zum DB-Server
> DATENBANK = Name der Datenbank
##########################################################
# online.php #
##########################################################
php: |
1:
2:
3:
4:
|
<?
include ('connect.php');
$time = time();
$ip = $REMOTE_ADDR; |
|
> Ermittelt die Zeit und die IP Adresse und bindet die connect.php ein
php: |
1:
2:
3:
|
$registriert = mysql_query("SELECT COUNT(*) FROM `online` WHERE IP = '$ip'");
$reg = mysql_fetch_row($registriert);
$set = $reg[0]; |
|
> schaut ob es schon einen eintrag mit der ip adresse (also den user) gibt und setzt das ergebnis in $set
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
if($set == "0")
{
mysql_query("INSERT INTO `online` (`ID`, `IP`, `zeit`) VALUES ('', '$ip', '$time')");
}
> wenn $set 0 ist (also kein Eintrag da ist) werden die aktuellen daten in die DB geschrieben
else
{
mysql_query("UPDATE `online` SET `zeit` = '$time' WHERE `IP` = '$ip'");
} |
|
> wenn es aber schon einen gibt wird die Zeit "verlängert" also aktualisiert
php: |
1:
|
$time_new = $time-300; |
|
> Rechnet die aktuelle Zeit um 300 sekunden zurück (die Zeit die die user online bleiben auch wenn sie nix auf der Seite machen
php: |
1:
|
mysql_query("DELETE FROM `online` WHERE `zeit` < '$time_new'"); |
|
$anz_gesamt = mysql_query("SELECT COUNT(*) FROM `online`");
$online_gesamt = mysql_fetch_row($anz_gesamt);
> Zuerst werden alle einträge gelöscht deren Zeit kleiner als die aktuelle Zeit - 300 ist
> Ließt die anzahl der aktuellen einträge aus
##########################################################
# letzte anpassungen #
##########################################################
Einfach die Datei via Include einbinden in die endgültige datei und an gegebener stelle ausgeben lassen mit $online_gesamt[0]
Beispiel:
php: |
1:
|
echo "Zur Zeit bewegen sich $online_gesamt[0] User auf dieser Seite"; |
|
##########################################################
# Anmerkungen #
##########################################################
durch ein paar änderungen / zusätze kann aus diesem Wieviele sind on auch ein Wer ist wo werden!
Naja wie ihr mich kennt Alle Rechtschreibfehler dürfen behalten werden.
CU Sebat