phpbar.de logo

Mailinglisten-Archive

[php] Benutzer online

[php] Benutzer online

Helmut P. Fleischhauer hpf at abarcar.com
Fre Sep 22 12:05:42 CEST 2006


Andre Wagner wrote:
> Hallo zusammen,
> 
> In den letzten Tagen wurde schon mal über etwas ähnliches gesprochen (Benutzertabelle vs. Sessiontabelle). Ich stehe momentan vor einer ähnlichen Aufgabe. Allerdings fehlt mir dazu der komplette Anfang. 
> Ich benutze eine Userverwaltung von php-tools.de (patUser). Nun möchte ich anzeigen, dass/ob ein Benutzer eingeloggt ist. Ich weiss, dass die Verlässligkeit einer solchen Anzeige nicht besonders hoch ist. Der Benutzer kann eingeloggt sein, aber nicht vor dem Rechner sitzen. Soweit so gut. Mein Problem ist, wie fang ich so ein Abfrage an bzw. was mach ich am besten nach dem der User sich eingeloggt hat. Wie bekomm ich beispielsweise mit wenn die Loginsession wegen eines Session-Timeouts beendet wurde?
> 
> Fragen über Fragen...
> 
> Gruss,
> Andre

Möglichkeit


#
# Table structure for table 'whoonline'
#

CREATE TABLE whoonline (
   id int(11) NOT NULL auto_increment,
   IP varchar(15) NOT NULL,
   uname varchar(25) NOT NULL,
   date int(10) unsigned NOT NULL,
   userid int(8) unsigned NOT NULL,
   PRIMARY KEY (id)
);


*******

Sessionabfrage nach Benutzer-ID = $onlineid und
Benutzername = $uname

Abfrage im Beispiel mit phplib


$IP=$REMOTE_ADDR;
$wusersec= time();
$db = new DB_abc;
$db->query("delete from whoonline where date < $wusersec -180");
$db1 = new DB_abc;
$db1->query("SELECT * FROM whoonline where IP like '$IP'");
if($db1->num_rows()==0){
$db1->query("insert INTO whoonline (IP,userid,date,uname)
VALUES('$IP','$onlineid','$wusersec','$uname')");
}else{
$query ="update whoonline set ";
$query .= "userid='$onlineid',";
$query .= "uname='$uname',";
$query .= "date='$wusersec'";
$query .= " where IP='$IP'";
$db1->query($query);
}

****************

Auslesen an beliebiger Stelle mit

$db2 = new DB_abc;
$db2->query( "select * from whoonline where uname!=''");
while($db2->next_record()){
$onlinename = $db2->f("uname");
$onlineid = $db2->f("userid");
echo "$onlinename<br>";
}


Grüsse

hpf


php::bar PHP Wiki   -   Listenarchive