Einzelnen Beitrag anzeigen
  #2  
Alt 31-12-2005, 14:32
pyro pyro is offline
Online Marketing Trainee
 
Registrierungsdatum: Dec 2005
Beiträge: 24
Standard

sollte eigentlich relativ einfach zum selbst proggen sein... user über IP definieren, welche nach 5-10 min verfällt, es sei denn sie wird über das laden einer page von dir wieder erneuert....

hier ein kleines Beispiel... hab aber nicht selbst gecheckt:

<?php
// Configuration
$dbhost = "localhost";
$dbuser = "[to-add]"; // MySQL Username
$dbpass = "[to-add]"; // MySQL Password
$dbname = "[to-add]"; // Database Name
$timeoutseconds = 1200; // length of session, 20 minutes is the standard

$timestamp=time();
$timeout=$timestamp-$timeoutseconds;
$ip = substr($REMOTE_ADDR, 0, strrpos($REMOTE_ADDR,"."));

// Connect to MySQL Database
@mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($dbname) or die("No db");

// Add this user to database
$loopcap = 0;
while ($loopcap<3 && @mysql_query("insert into useronline values('$timestamp','$ip','$PHP_SELF')"))
{ // in case of collision
$timestamp = $timestamp+$ip{0}; $loopcap++;
}

// Delete users that have been online for more then "$timeoutseconds" seconds
@mysql_query("delete from useronline where timestamp<$timeout");

// Select users online
$result = @mysql_query("select distinct ip from useronline");
$user = @mysql_num_rows($result);

mysql_free_result($result);
@mysql_close();

// Show all users online
if ($user==1) {echo $user.' user online';} else {echo $user.' users online';}
?>


Und hier noch ein Beispiel, daß auch differenziert auf welcher page (und nicht die gesamte website wie oben (obwohl auch dort wie es scheint beim speichern differenziert wird, jedoch in der Ausgabe nicht mehr (mag aber auch nur ungenau geschaut haben) -> wäre auch einfach anzugleichen)):

<?
/************************************************** ***
**************HTTP://SOFTWARE.REDSHIFT.JE*************
********************FREE SOFTWARE*********************
************************************************** ***/

//Configure your database settings here:
$server = "localhost";
$db_user = "username";
$db_pass = "password";
$database = "users";
$table = "useronline";
$timeoutseconds = 300; //Recommended setting

//Connect
mysql_connect($server, $db_user, $db_pass);

//Fetch Time
$timestamp = time();
$timeout = $timestamp - $timeoutseconds;



//Insert User
$insert = mysql_db_query($database, "INSERT INTO $table VALUES
('$timestamp','$REMOTE_ADDR','$PHP_SELF')") or die("Failed!");

//Delete User
$delete = mysql_db_query($database, "DELETE FROM $table WHERE timestamp<$timeout") or die("Failed!");

//Fetch Users Online
$result = mysql_db_query($database, "SELECT DISTINCT ip FROM $table WHERE file='$PHP_SELF'") or die("Failed!");
$users = mysql_num_rows($result);

//spit out the results
if($users == 1) {
print("$users User Online!\n");
} else {
print("$users Users Online!\n");
}
?>

mfg pyro

Geändert von pyro (31-12-2005 um 14:38 Uhr).
Mit Zitat antworten