Online-Benutzeranzeige in PHP

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

      Online-Benutzeranzeige in PHP

      Produkt: Online-Benutzeranzeige in PHP

      Version: 1.0

      Editor: Matzelix

      Entwickler: Matzelix

      Entwicklungsjahr: 2006

      Benötigte Ressourcen: -

      Alternative Ressourcen: -

      Screen Shots: -


      Beschreibung:

      Ich habe vor längerer Zeit mal ein php-script geschrieben, mit dem man die Zahl der registrierten Benutzer, die Zahl der Online-Benutzer und die Namen der Benutzer nach Räumen aufgeteilt darstellen kann, ohne dabei die chat.pl und die template Engine zu benutzen. Dadurch kann man die Zahl der gestartenen Prozesse der chat.pl verringern, besonders dann, wenn man viele externe Anzeigen über den Chat auf seiner Website eingebaut hat. Es kann also die Belastung des Servers verringern, wenn man eine gut besuchte Website hat mit eingebauter Chat-Online-Anzeige.

      <?php
      function lese_dateien($path)
      {
      $result = array();

      $handle = opendir($path);

      if ($handle)
      {
      while (false !== ($file = readdir($handle)))
      {
      if ($file != "." && $file != "..")
      {
      if (strstr ( $file, '.user' ) )
      {
      $name = $path . "/" . $file;
      $result[] = $name;
      }
      }
      }
      }
      closedir($handle);
      return $result;
      }

      function lese_raeume($path)
      {
      $result = array();

      $handle = opendir($path);

      if ($handle)
      {
      while (false !== ($file = readdir($handle)))
      {
      if ($file != "." && $file != "..")
      {
      if (strstr ( $file, '.dat' ) )
      {
      $name = $path . "/" . $file;
      $result[] = $name;
      }
      }
      }
      }
      closedir($handle);
      return $result;
      }
      $memberlistfile = file ('/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Members/memberlist.txt');
      $membercount = count ($memberlistfile);
      echo "<b>" . $membercount . "</b> registrierte Benutzer<br />\n";

      $onlineusers = lese_dateien("/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Online");
      $onlineusercount = count($onlineusers);
      $rooms = lese_raeume("/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Rooms");

      $roomprivate = array();
      $roomname = array();
      foreach($rooms as $value)
      {
      $roomfile = file ( $value );
      $roomfile = str_replace(chr(10), '', $roomfile);
      $roomkey = strtolower($roomfile[0]);
      $roomprivate[$roomkey] = $roomfile[2];
      $roomname[$roomkey] = $roomfile[0];
      }
      echo "<b>" . $onlineusercount . "</b> Benutzer online<br />\n";
      echo "<br />";
      echo "Wer ist wo im Chat:<br />\n";
      echo "<hr />";
      if ($onlineusercount == 0)
      echo "kein Benutzer online<br />\n";
      $roomusercount = array ();
      $roomusers = array();
      foreach($onlineusers as $value)
      {
      $onlinefile = file ( $value );
      $onlinedata = $onlinefile[0];
      $a = explode ("|", $onlinedata );
      $roomusercount[$a[3]]++;
      $roomusers[$a[3]][$a[2]] = $a[2];
      }
      $roomcount = count($roomusercount);
      natcasesort ($roomusers);
      $nonprivatusers = false;
      foreach($roomusers as $users)
      {
      $raum = key($roomusers);
      if (!$roomprivate[$raum])
      {
      $nonprivatusers = true;
      echo "<b>" . $roomname[$raum] . ":</b>(" . $roomusercount[$raum] . "/". $onlineusercount . ") <br />\n";
      next($roomusers);
      natcasesort ($users);
      foreach ($users as $benutzer)
      {
      echo $benutzer . "<br />\n";
      }
      }
      }
      if (!$nonprivatusers and $onlineusercount != 0)
      echo "Keine Benutzer in den <br />öffentlichen Räumen...<br />\n";
      echo "<hr />";
      ?>


      Dieses Script benutze ich jetzt schon mehr als ein halbes Jahr und hatte eigentlich keine Probleme damit. Im Prinzip müsst ihr nur die folgenden Pfade im Programmtext anpassen:

      $memberlistfile = file ('/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Members/memberlist.txt');

      $onlineusers = lese_dateien("/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Online");

      $rooms = lese_raeume("/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Rooms");


      Die Einbindung könnte, wenn man das o.g. Script als "chatinfo.php" den Webspace lädt, wie folgt aussehen:

      <?php include('gtchat96/chatinfo.php'); ?>


      Eine Variante des o.g. Script für die Einbindung mit javascript könnte so aussehen:

      <?php
      function lese_dateien($path)
      {
      $result = array();

      $handle = opendir($path);

      if ($handle)
      {
      while (false !== ($file = readdir($handle)))
      {
      if ($file != "." && $file != "..")
      {
      if (strstr ( $file, '.user' ) )
      {
      $name = $path . "/" . $file;
      $result[] = $name;
      }
      }
      }
      }
      closedir($handle);
      return $result;
      }

      function lese_raeume($path)
      {
      $result = array();

      $handle = opendir($path);

      if ($handle)
      {
      while (false !== ($file = readdir($handle)))
      {
      if ($file != "." && $file != "..")
      {
      if (strstr ( $file, '.dat' ) )
      {
      $name = $path . "/" . $file;
      $result[] = $name;
      }
      }
      }
      }
      closedir($handle);
      return $result;
      }

      $memberlistfile = file ('/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Members/memberlist.txt');
      $membercount = count ($memberlistfile);
      echo 'document.write("<b>' . $membercount . '</b> registrierte Benutzer<br>");' . "\n";

      $onlineusers = lese_dateien("/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Online");
      $onlineusercount = count($onlineusers);
      $rooms = lese_raeume("/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Rooms");
      $roomprivate = array();
      $roomname = array();
      foreach($rooms as $value)
      {
      $roomfile = file ( $value );
      $roomfile = str_replace(chr(10), '', $roomfile);
      $roomkey = strtolower($roomfile[0]);
      $roomprivate[$roomkey] = $roomfile[2];
      $roomname[$roomkey] = $roomfile[0];
      }
      echo 'document.write("<b>' . $onlineusercount . '</b> Benutzer online<br><br>Wer ist wo im Chat:<br><hr>");' . "\n";
      if ($onlineusercount == 0)
      echo 'document.write("kein Benutzer online<br>");' . "\n";
      $roomusercount = array ();
      $roomusers = array();
      foreach($onlineusers as $value)
      {
      $onlinefile = file ( $value );
      $onlinedata = $onlinefile[0];
      $a = explode ("|", $onlinedata );
      $roomusercount[$a[3]]++;
      $roomusers[$a[3]][$a[2]] = $a[2];
      }
      $roomcount = count($roomusercount);
      natcasesort ($roomusers);
      $nonprivatusers = false;
      foreach($roomusers as $users)
      {
      $raum = key($roomusers);
      if (!$roomprivate[$raum])
      {
      $nonprivatusers = true;
      echo 'document.write("<b>' . $roomname[$raum] . ':</b>(' . $roomusercount[$raum] . '/'. $onlineusercount . ') <br>");' . "\n";
      next($roomusers);
      natcasesort ($users);
      foreach ($users as $benutzer)
      {
      echo 'document.write("' . $benutzer . '<br>");' . "\n";
      }
      }
      }
      if (!$nonprivatusers and $onlineusercount != 0)
      echo 'document.write("Keine Benutzer in den <br>öffentlichen Räumen...<br>");' . "\n";
      echo 'document.write("<hr>");'. "\n";

      ?>



      Auch hier müssen die folgenden Zeilen an den eigenen Server / Webspace angepasst werden:

      $memberlistfile = file ('/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Members/memberlist.txt');

      $onlineusers = lese_dateien("/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Online");


      $rooms = lese_raeume("/srv/www/htdocs/web1/html/cgi-bin/gtchat96/Rooms");


      Wenn man das o.g. Script z.b. als "chatinfo_js.php" in den www Ordner des GTChats auf den Webspace lädt, dann kann man die Anzeige z.B. auf die folgende Weise einbinden:

      <script language="JavaScript" src="http://deine-domain.tld/gtchat96/chatinfo_js.php" type="text/javascript"></script>


      ----------------------------

      Viel Spaß damit wünscht das GTChat-Developer.com - Team!

      Zum Eintrag in der Datenbank