Mailinglisten-Archive |
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