|
PHP Besucher zählen (MySQL) |
|
|
|
|
Tutorial Übersicht -
Developer Tutorials
|
|
Mittwoch, 11. März 2009 um 17:03 |
Auch ein schönes PHP Script.
Hiermit lassen sich die User der letzten x Minuten anzeigen.
1. Notwendigkeit die MySQL DB
Damit das ganze auch funktioniert, erstellen wir eine kleine Datenbank:
CREATE TABLE `current_users` (
`ip` varchar(30) NOT NULL default ‘’,
`time` varchar(30) NOT NULL default ‘’
) TYPE=MyISAM;
2. Einfügen des Codes
nun speichern wir in einer PHP Datei folgenden Code:
<?
$server = 'localhost'; // Server
$user = 'root'; // Benutzer
$pass = ''; // PWD
$db2 = 'online'; // DB
$db = mysql_connect($server, $user, $pass)
or die("Keine Verb. zur DB");
if(!$db)
die("DB existiert nicht");
if(!mysql_select_db("$db2",$db))
die("Keine DB gewählt");
$server_time=date("U");
$client_ip=$_SERVER['REMOTE_ADDR'];
$query = mysql_query("SELECT * FROM current_users WHERE ip='$client_ip'");
$check = mysql_fetch_array($query);
if($check) {
$update="UPDATE current_users set time='$server_time' where ip='$check[ip]'";
mysql_query($update) or die("Unable to process update: " . mysql_error());
} else {
$sql =
"INSERT INTO `current_users` (`ip`, `time`) VALUES ('$client_ip', '$server_time')";
$result =
mysql_query($sql) or die("Unable to process insert: " . mysql_error());
}
$time=$server_time-1800; // 60*30 = 30 Minuten!!!
// Remove users outside time limit
$remove = "DELETE from current_users WHERE time<'$time'";
mysql_query($remove) or die("Unable to delete: " . mysql_error());
// Show the count
$sql2 = mysql_query("SELECT ip FROM current_users" );
$currentVisitors = mysql_num_rows($sql2);
echo 'Es waren '.$currentVisitors.' Benutzer online (30 Minuten).';
?>
Die Ausgabe sieht dann ähnlich so aus:
Es waren 24 Benutzer online (30 Minuten).
|
|
Aktualisiert ( Mittwoch, 11. März 2009 um 17:52 )
|
Comments