• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Who is online - Script problem

Status
Für weitere Antworten geschlossen.

Frank

Neues Mitglied
Who is online - Script problem *gelöst*

Hallo,
ich arbeite zur zeit an einer internetseite wo sich benutzer einloggen können etc.
Ich möchte nun anzeigen, wer online ist. Natürlich ist das nicht 100% in echtzeit sondern mit 5 min abweichung (wie hier im forum (zumindest im alten)).
Ich habe dafür ein script geschrieben, das auf meinem localhost (apachefriends |XAMPP) wunderbat funktioniert hat.
Nun, auf meinem online host will es nicht mehr so wie ich und ich finde einfach den fehler nicht. ich hoffe ihr könnt mir weiterhelfen..

Die Letzte Zeit, an der der besucher online war, wird in einer datenbank gespeichert (verbindung durch include).
Die Zeit wird in diesem vormat gespeichert:
dmy,Gis
also z.b:
100706,210816
[tag][monat][jahr],[stunde][minute][sekunde]

Hier das (gekürzte) script
PHP:
$abfrage = "SELECT online FROM freets_member";
$ergebnis = mysql_query($abfrage);
while ($row = mysql_fetch_object($ergebnis))
{
 $online = $row->online;
 $online_array = split('\,',$online);
 $day = $online_array[0];
 $time = $online_array[1];
 $thisday = date("dmy");
 $thistime = date("Gis");
 if($thisday != $day)
 {
  echo '<img src="../images/offline.gif" width="7" height="7" border="0" alt="offline">';
 }
 else
 {
  $min = substr($time,1,2);
  $thismin = date("i");
  $thismin = $thismin - 5;
  if ($min > $thismin)
  {
    echo '<img src="../images/online.gif" width="7" height="7" border="0" alt="online">';
  }
  else
  {
    echo '<img src="../images/offline.gif" width="7" height="7" border="0" alt="offline">';
  }
 }
}

*EDIT FEHLERBESCHRIEBUNG*

Ok, also:
auf meinem localhost wurde jenachdem, ob ein benutzer online war "online.gif" oder "offline.gif" angezeigt (als bild).
Auf meinem webspace wird jedoch grundsätzlich NUR offline angezeigt.
Es scheitert (glaube ich) immer an der 2. if bedingung (hab ich mit echo rausbekommen):
PHP:
if ($min > $thismin)
  {
    echo '<img src="../images/online.gif" width="7" height="7" border="0" alt="online">';
  }
  else
  {
    echo '<img src="../images/offline.gif" width="7" height="7" border="0" alt="offline">';
  }
 
Zuletzt bearbeitet:
@Frank
ich möchte dich darauf hinweisen, dass du keinerlei Fehlerbeschreibung gepostet hast.
Bitte füge diese mit einem Edit in deinen ersten Post ein.
 
Speichere am besten einen Zeitstempel ab, dann ersparst du dir die ganzen Stringoperationen und du kannst den Zahlenwert direkt zum vergleichen nutzen.
 
Lol...
Ich weiß nich warum... aber auf einmal funktioniert es.
Ich habe nichts geändert und doch wird es wieder richtig angezeigt.

Das mit dem Timestamp werde ich noch machen. ist echt einfacher...
Danke für den Tipp!

*EDIT*
Ok war doch noch nich ganz in Ordnung hab aber Mitlerweile den Fehler gefunden:
Es lag daran:
PHP:
$min = substr($time,1,2);
Es hätte so sein müssen:
PHP:
$min = substr($time,2,2);
hab die funktionsweise von php substr() mit der LIMIT funktion von MYSQL verwechselt was den 2. und 3. Param angeht
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben