[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Wieviele User sind online ... - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
Raffael1981
Beiträge: 70
Registriert: 6. Nov 2006, 11:36
Wohnort: 3011 - Irenental
Kontaktdaten: Website

Wieviele User sind online ...

17. Apr 2007, 10:18

Hallo zusammen,

bastel grad an einem Modul welches anzeigen soll, wieviele User im Moment online sind:

Eingabe nix

Ausgabe:

Code: Alles auswählen

<?php

$datafile = "files/online.txt"; 
$onlinetime = "120"; 

$time = time();
$datei = fopen($datafile, "r");
$writetext = "";
$count = "1";
$onlinetime = $time - $onlinetime;
while($erg = fgets($datei, 1000))
{
   $inhalt = explode("|", $erg);
   $inhalt[1] = str_replace("\n", "", $inhalt[1]);
   if($inhalt[0] == $REMOTE_ADDR || $inhalt[1] < $onlinetime || $inhalt[0]=="")
   continue;
   $writetext .= "$inhalt[0]|$inhalt[1]\n";
   $count++;
}
fclose($datei);
$writetext .= "$REMOTE_ADDR|$time\n";
$datei = fopen($datafile, "w");
fputs($datei, $writetext);
fclose($datei);
echo "Derzeit sind  ";
echo $count; 
echo " Benutzer online";
?>
Man braucht nur noch ein txt-File mit dem Namen "online.txt" in den Medienpool uploaden und die Sache sollte laufen?!

Leider kann ich es auf meiner Testseite nicht so gut probieren, da ich ja keine so tolle Frequenz dort habe ... :cry: :D

Kann vielleicht mal jemand einen Blick drauf werfen?!
Vielen Dank im Voraus!

lg raffi

Edit: Titel angepasst (wurde nicht erwähnt was/wer online ist) [TAB]

Dr KillerJoe
Beiträge: 1711
Registriert: 24. Nov 2005, 22:29
Kontaktdaten: ICQ Website Yahoo Messenger

17. Apr 2007, 13:21

Hi.

Macht Dein Modul nicht das gleiche wie >dieses Modul<?

mfg
Flo
Die Doku und Wiki sind Deine Freunde!!!

Benutzeravatar
Raffael1981
Beiträge: 70
Registriert: 6. Nov 2006, 11:36
Wohnort: 3011 - Irenental
Kontaktdaten: Website

17. Apr 2007, 13:29

hi,

vom prinzip her, ist es glaub ich recht ähnlich aber mit dem timeout sollte der eintrag ja wieder verschwinden ...

und somit entsteht für count ja nur eine zahl der user in den letzten 120 sec ...

hast vielleicht eine andere variante für mich??

lg raffael

Dr KillerJoe
Beiträge: 1711
Registriert: 24. Nov 2005, 22:29
Kontaktdaten: ICQ Website Yahoo Messenger

17. Apr 2007, 13:34

Hi.

Ich brauche keinen Besucherzähler, daher hab ich auch keine bessere/andere Lösung.

Hab mich halt nur gefragt was Redaxo nachher mit (übertrieben) 30 unterschiedlichen Besucherzählern anfangen soll ;)

mfg
Flo
Die Doku und Wiki sind Deine Freunde!!!

Benutzeravatar
Raffael1981
Beiträge: 70
Registriert: 6. Nov 2006, 11:36
Wohnort: 3011 - Irenental
Kontaktdaten: Website

17. Apr 2007, 13:42

:?

ist ja ok ...

die konstruktivität deines beitrags zu meiner frage hält sich offensichtlich in grenzen ...

dennoch vielen Dank!

Benutzeravatar
uwe
Beiträge: 264
Registriert: 21. Dez 2005, 18:39
Wohnort: Hamburg
Kontaktdaten: Website

18. Apr 2007, 08:30

Moin Raffael1981,

das hatten wir schon mal! Mal im Forum suchen nach User Online!
Dazu hatte ich hierschon mal eine Modul-Lösung skizziert (Meine die gaaaaanz am Ende des Threads, nicht die snippets dazwischen :lol: ).

Leider hattest du keinen Link zu deiner "Testseite" angegeben.
Wenn's diesein sollte, da finde ich keinen Zähler. Du solltest dort in der Navi Untermenues, sobald das Übergeordnete angeklickt wird, auch anzeigen. Oder die Untermenues wenigstens in der Krümelnavi anzeigen.

Mfg
Uwe

zehbaeh
Beiträge: 556
Registriert: 17. Okt 2006, 11:52
Wohnort: Solingen

18. Apr 2007, 14:22

Ich hab mal in meiner lokalen Umgebung gekramt.), und festgestellt das ich sowas (warum auch immer) auch schonmal gebastelt hatte.
Das ganze nutzt allerdings keine DB (Performance) und auch keine Datei zum speichern der Information (Probleme mit konkurrienden Zugriffen), sondern...bitte dem Inhalt entnehmen :wink:

Eingabe

Code: Alles auswählen

<?php
$txt = htmlspecialchars('REX_VALUE[1]');
$min = max(1,intval('REX_VALUE[2]'));
if($txt == '') $txt = 'Benutzer in den letzten #minutes Minuten: #count';
echo <<<HTML
<strong>Angezeigter Text (#minutes,#count sind Platzhalter):</strong><br />
<input class="inp100" name="VALUE[1]" value="$txt" /><br /><br />
<strong>Betrachtungszeitraum in Minuten:</strong>
<input name="VALUE[2]" value="$min" size="3" />
HTML;
?>
Ausgabe

Code: Alles auswählen

<?php
function onlineCounter()
{
  $path = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'.online';
  if(!(is_dir($path) || @mkdir($path))) return NULL;
  $str = htmlspecialchars('REX_VALUE[1]');
  $minutes = max(1,intval('REX_VALUE[2]'));
  $timeout = time() - $minutes*60;
  $count = 1;
  $id = '.'.MD5($_SERVER['REMOTE_ADDR']);
  $d = dir($path);
  while (FALSE !== ($e = $d->read())) {
    if(strlen($e) < 3) continue;
    $fn = $path.DIRECTORY_SEPARATOR.$e;
    if(filemtime($fn) <= $timeout) {
      @unlink($fn);
      continue;
    }
    if($id != $e) $count++;
  }
  $d->close();
  @touch($path.DIRECTORY_SEPARATOR.$id);
  return strtr($str,array('#minutes'=>$minutes,'#count'=>$count));
}
echo '<span id="onlinecounter">'.onlineCounter().'</span>';
?>

Zurück zu „Allgemeines [R3]“