welche user sind online ?

  • geschlossen
  • PHP

  • Phoenix
  • 1518 Aufrufe 9 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • welche user sind online ?

    Hallo,

    ich würde gerne auf meiner website eine User liste anzeigen lassen welcher user online ist. also namentlich eingelogt ist.
    Bis jetzt wird leider nur wieviel User online sind angezeigt ohne Namen der User.

    Datenbank:

    PHP-Quellcode

    1. CREATE TABLE `useronline` (
    2. `ip` VARCHAR( 15 ) NOT NULL ,
    3. `zeit` INT NOT NULL
    4. );


    PHP-Quellcode

    1. <?php
    2. include("config/config.php");
    3. mysql_connect($dbhost,$dbuser,$dbpass);
    4. mysql_select_db($dbname);
    5. $zeitspanne = 300; //Sekunden
    6. $ip = $_SERVER['REMOTE_ADDR'];
    7. //veraltete Einträge löschen
    8. mysql_query("DELETE FROM useronline WHERE zeit < ".time()."");
    9. //Zeitpunkt erneuern
    10. mysql_query("UPDATE useronline SET zeit = '".(time()+$zeitspanne)."' WHERE ip='".$ip."'");
    11. // ist der Besucher noch nicht eigetragen, so wird ein neuer Eintrag erzeugt.
    12. if(!mysql_affected_rows()) {
    13. mysql_query("INSERT INTO useronline (ip,zeit) VALUES ('$ip ','".(time()+$zeitspanne)."')");
    14. }
    15. // die Zahl der Online-User ermitteln.
    16. $result = mysql_query("SELECT count(*) FROM useronline");
    17. echo mysql_result($result,0)." User online";
    18. ?>
    Alles anzeigen


    also wenn das jemand vervollständigen könnte wäre ich sehr Dankbar

    Gruß Phoenix

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Phoenix ()

  • Hallo Broken Sword
    Woher soll denn der Username kommen? Entweder du zeigst uns das ganze Script oder den Namen, wenn es gedownloaded wurde.

    der Name soll aus der Datenbak hevorgen die bereits vorhanden ist ! nennen wir sie mal abc.. in der Datenbank ist eine usertabelle angelegt auf diese sollte das skript zugreifen und auslesen. In der config die per Include eingefügt habe steht die die Konfiguration, Datenbankdaten uws drin.
    Das Problem ist nun das nur angezeigt wir das 1 User online ist, aber nicht welcher user, ich hätte gerne das mir der Username angezeigt wird.

    Gruß Phoenix

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Phoenix ()

  • Hi,
    da du keine IDs in der online-Tabelle gebrauchst, ist es das einfachste, wenn du bei

    Quellcode

    1. mysql_query("INSERT INTO useronline (ip,zeit) VALUES ('$ip ','".(time()+$zeitspanne)."')");

    den usernamen hinzufügst. (Vorher natürlich TABLE ALTER und bei der Ausgabe mit ner while-Schleife arbeiten)

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Die DB-Struktur hilft mir da leider wenig.

    Wie greifst du denn sonst auf die aktuellen Userdaten zu? Das einfach vor dem INSERT bewerkstelligen und den Namen/userID mit in die online-Tabelle schreiben.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Hallo,

    per login skript

    PHP-Quellcode

    1. include("config/config.php");
    2. include ("useronline.php");
    3. ?>
    4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    5. <html>
    6. <head>
    7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    8. <title>Jukebox</title>
    9. <? include ("inc/header.php"); ?>
    10. <script type="text/javascript" src="login_js.php"></script>
    11. </head>
    12. <body>
    13. <div id="form-ct"></div>
    14. </body>
    15. </html>
    Alles anzeigen


    PHP-Quellcode

    1. <?
    2. include ("config/config.php");
    3. include ("locale/language.php");
    4. include ("inc/database.php");
    5. include ("inc/functions.php");
    6. ?>
    7. Login = function(){
    8. var dialog,form,submitUrl = 'try_login.php';
    9. return{
    10. Init:function(){
    11. Ext.QuickTips.init();
    12. var formPanel = new Ext.form.FormPanel({
    13. baseCls: 'x-plain',
    14. keys: [
    15. {
    16. key : [10,13],
    17. fn: fn_submit_login
    18. }
    19. ],
    20. baseParams: { },
    21. bodyStyle: 'padding:75px 35px;',
    22. defaults: {
    23. width: 200
    24. },
    25. monitorValid:true,
    26. defaultType: 'textfield',
    27. items: [
    28. {
    29. fieldLabel: '<?=lang('username',1);?>',
    30. name: 'username',
    31. value: ''
    32. },{
    33. fieldLabel: '<?=lang('password',1);?>',
    34. id: 'passwordID',
    35. inputType: 'password',
    36. name: 'password',
    37. value: ''
    38. },{
    39. fieldLabel: '<?=lang('save_login',1);?>',
    40. id: 'save_login',
    41. xtype: 'checkbox',
    42. name: 'save_login',
    43. value: ''
    44. }],
    45. labelWidth:120,
    46. region: 'center',
    47. url: submitUrl
    48. });
    49. function fn_submit_login()
    50. {
    51. form.submit({
    52. reset:true,
    53. success:Login.Success,
    54. failure:Login.Failure
    55. });
    56. }
    57. var dialog = new Ext.Window({
    58. buttons: [{
    59. handler: fn_submit_login,
    60. text: '<?=lang('login',1);?>'
    61. }
    62. ],
    63. buttonAlign: 'right',
    64. closable: false,
    65. draggable: false,
    66. layout: 'border',
    67. plain: false,
    68. resizable: false,
    69. html: "<div class='login-title'><img onClick='alert(0)' border=0 src='img/mywebjukebox_hg.png'></div>",
    70. items: [
    71. formPanel
    72. ],
    73. title: '<?=lang("title_login",1);?>',
    74. width: 430,
    75. height: 230
    76. });
    77. form = formPanel.getForm();
    78. dialog.show();
    79. },
    80. Success: function(f,a){
    81. window.location.href = 'index.php';
    82. },
    83. Failure: function(f, a) {
    84. Ext.MessageBox.alert('<?=lang("error",1);?>', '<?=lang("login_fail",1);?>');
    85. Ext.getCmp("passwordID").focus(true,1000);
    86. }
    87. };
    88. }();
    89. Ext.onReady(Login.Init, Login, true);
    Alles anzeigen


    Lg. Phoenix
  • lang('username'), ist einfach nur der HTML-Code für die Beschriftung der Form-Input für username. (Vermutlich "Username:")

    Was man aber braucht, ist der Username des Users, der gerade die Seite aufruft.

    Ist das ein fertiges Script oder hast du das selbst geschrieben?

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • das war ein feriges skript, hätte aber gerne diese erweiterung, leider hat der ersteller den Support und weiterentwicklung eingestellt!!

    ich kann dir aber das skript zukommen lassen.

    LG Phoenix
  • Mach folgendes:
    Füge in die Tabelle mit den Userdatensätzen ein "lastonline" ein.
    Jetzt kannst du bei jeder Aktion des Users (also jedem Seitenaufruf) einfach in "lastonline" den aktuellen Timestamp eintragen.

    Wenn du sehen willst, wer online ist, dann prüfst du einfach bei welchem User der Timestamp maximal 5 Minuten alt ist und fertig. Bisschen Quick'n'Dirty, aber funktioniert und ist mit wenig Aufwand zu erreichen.