ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Online Anzeige in Online Box geht nicht

Geschlossen
  1. #1
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    Hallo zusammen,

    das leidige Thema Online Box. Ich habe gestern NAcht mit Gecko zusammen die Einstellung in der index.php vorgenommen das meine Zeit richtig ghet da ich einen amerikanischen Hostebtreiber habe. Soweit ist walles gut und dafür nochmals herzlichen Dank.

    Nur eines ist jetzt passiert in meiner online Box wird niemand mehr online angezeigt, obwohl wie ihr im Screenshot seht das wenn ich über den namen fahre die richtige online Zeit kommt.

    [img]http://www.devilclan.com/Bilder/Screenshot.bmp[/img]

    Der Code der Onlinebox sieht folgendermasen aus:

    <?php
    if (!defined('main')) {die("no direct access");}
    $dif = date('Y-m-d H:i:s', time() - 28800);
    $abf = "SELECT uid FROM `prefix_online` WHERE uptime > '". $dif."'";
    $resultID = db_query($abf);
    $brk='';
    $uid = array();
    $guests = 0;
    $guestn = $lang['guests'];
    $content='';
    
    while ($row = db_fetch_object($resultID)) {
    	if ($row->uid != 0 AND $brk!=$row->uid) {
    		$name=@db_result(db_query('SELECT name FROM prefix_user WHERE id='.$row->uid),0);
    		$content.= '<tr><td><img src="include/images/icons/online.gif" border="0" alt="online"></td>';
    		$content.='<td><a href="index.php?user-details-'.$row->uid.'">'.$name.'</a></td></tr>'."\n";
    		$uid[] = $row->uid;
    	}
    	if ($row->uid == 0) { $guests++; }
    	$brk=$row->uid;
    }
    if ($guests == 1) { $guestn = $lang['guest']; }
    if (empty($content)) { $content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><font color="#003366">0 User </font></td></tr>'."\n"; }
    
    $content.='<tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px;"></td></tr>'."\n";
    $where = (count($uid)>0) ? 'WHERE id NOT IN ('.implode(', ', $uid).')' : '';
    $abf2 = 'SELECT * FROM prefix_user '.$where.' ORDER BY llogin DESC LIMIT 0,5';
    $erg2 = db_query($abf2);
    
    while ($row2 = db_fetch_object($erg2)) {
    	$datum = date('H:i d.m.y',$row2->llogin);
    	$user = $row2->name;
    	$content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><a href="index.php?user-details-'.$row2->id.'" title="'.$lang['lasttimeonline'].$datum.'">'.$user.'</a></td></tr>'."\n";
    }
    if ($guests == 0) {
    	$content.= '<tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px";></td></tr>'."\n".'
    		<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><font size="-1" color="#003366">0 '.$lang['guests'].'</td></tr>'."\n";
    } else {
    	$content.= '<tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px;"></td></tr>'."\n".'
    		<tr><td><img src="include/images/icons/online.gif" border="0" alt="online"></td><td><font size=-1>'.$guests.' '.$guestn.'</font></td></tr>'."\n";
    }
    ?>
    <table align="center" border="0" cellpadding="0" cellspacing="0" >
     <?php echo $content; ?>
    </table>


    betroffene Homepage: externer Link


    Zuletzt modifiziert von Lord|Schirmer am 02.02.2011 - 07:59:41
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    IRvD Mitglied
    Registriert seit
    30.03.2010
    Beiträge
    460
    Beitragswertungen
    31 Beitragspunkte
    Schau mal im Admin Bereich / Server Konfiguration ob die

    Server (PHP) Zeit
    SQL Zeit

    gleich sind.

    Stehen im unteren Bereich rechts.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    Server (PHP) Zeit 2011-02-02 07:41:58
    SQL Zeit 2011-02-02 07:41:58


    ja sind gleich. hab Sicherheitshalber nochmal nachgeschaut.


    externer Link <<<< auch schon probiert !
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    keiner mehr eine Idee ?
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Beatzler Mitglied
    Registriert seit
    17.04.2005
    Beiträge
    186
    Beitragswertungen
    0 Beitragspunkte
    Hey,

    ich hab ja aktuell genau das gleiche Problem....

    Habe auch mithilfe von Gecko ( Vielen Dank dafür nochmals ) in der Hauptindex die Anpassung auf die deutsche Zeit vorgenommen:

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    define ( 'main' , TRUE );
    date_default_timezone_set('Europe/Berlin');


    entsprechend wurde die onlinebox soo angepasst:

    <?php
    if (!defined('main')) {die("no direct access");}
    $dif = date_default_timezone_set('Europe/Berlin');
    $abf = "SELECT uid FROM `prefix_online` WHERE uptime > '". $dif."'";


    Klappt damit auch erstmal wieder, sehr großes Problem nur:
    Die User und Gäste werden extrem lange als online angezeigt, weit über eine stunde !!! Teilweise summiert es sich somit auf über ~ 80 Gäste etc...

    Wie kann ich nun den alten Wert der online Box mit Zeitangabe wie lange User und Gäste angezeigt werden sollen:

    $dif = date('Y-m-d H:i:s', time() - 2000);


    im neuen integrieren ?? Das ich das da auch mit -2000 usw. habe ?!?!

    Danke für jeden Tipp !

    MFG Beatzler


    Zuletzt modifiziert von Beatzler am 03.02.2011 - 16:59:49
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    she Mitglied
    Registriert seit
    13.11.2010
    Beiträge
    1.115
    Beitragswertungen
    82 Beitragspunkte
    2000 / 60 = 33,3333333 Minuten.

    Deshalb 60 = 1 Minute
    120 = 2 Minute usw.
    Google+ shelfinger.eu
    Das Wissen verfolgt mich - doch ich bin schneller!
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Beatzler Mitglied
    Registriert seit
    17.04.2005
    Beiträge
    186
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von she

    2000 / 60 = 33,3333333 Minuten.

    Deshalb 60 = 1 Minute
    120 = 2 Minute usw.


    Hey,

    jaa das ist schon klar... die 2000 waren jetzt nen doofes beispiel .... Nur wie bekomme ich generell nen Ablauflimit da wieder rein ?

    Aktuell siehts in der Box ja wie gesagt so aus:

    $dif = date_default_timezone_set('Europe/Berlin');


    Ohne irgendeine Ablaufangabe.... wie bekommt man das wieder hin ?

    Danke für Tipps!

    MFG Beatzler
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Beatzler Mitglied
    Registriert seit
    17.04.2005
    Beiträge
    186
    Beitragswertungen
    0 Beitragspunkte
    Hey,


    habe eine Lösung im Forum gefunden :-)

    Die Suche ist manchmal aber auch nur über X-Umwege erst nützlich ;-)

    folgendes funktioniert bei mir grad perfekt! Anpassungen zuvor wie oben beschrieben...

    $dif = db_result(db_query('SELECT TIMESTAMPADD(MINUTE, -5, NOW())'));


    Hier gefunden:

    externer Link

    MFG Beatzler
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    Ne funktioniert bei mir leider nicht.
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Trucker-Siggi Mitglied
    Registriert seit
    21.11.2010
    Beiträge
    740
    Beitragswertungen
    41 Beitragspunkte
    welche online box ist es den?
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    die standard onlinebox
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Trucker-Siggi Mitglied
    Registriert seit
    21.11.2010
    Beiträge
    740
    Beitragswertungen
    41 Beitragspunkte
    mal versucht die zu ersetzen?
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also eigentlich gibts keinen Grund, warum das nicht gehen sollte, kannst ja mal schicken, wie deine Datei jetzt aussieht.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    So das ist meine Online Datei im Moment. Wenn ich über die offline angezeigten Personen mit der Maus fahre kommt die reelle Zeit als wären sie online werden aber nicht als online angezeigt.

    also ich hab schon viel gelernt hier aber das ist für mich ein Buch mit sieben Siegeln. Sorry fürs nerven.

    <?php
    if (!defined('main')) {die("no direct access");}
    $dif = date_default_timezone_set('Europe/Berlin');
    $abf = "SELECT uid FROM `prefix_online` WHERE uptime > '". $dif."'";
    $resultID = db_query($abf);
    $brk='';
    $uid = array();
    $guests = 0;
    $guestn = $lang['guests'];
    $content='';
    
    while ($row = db_fetch_object($resultID)) {
    	if ($row->uid != 0 AND $brk!=$row->uid) {
    		$name=@db_result(db_query('SELECT name FROM prefix_user WHERE id='.$row->uid),0);
    		$content.= '<tr><td><img src="include/images/icons/online.gif" border="0" alt="online"></td>';
    		$content.='<td><a href="index.php?user-details-'.$row->uid.'">'.$name.'</a></td></tr>'."\n";
    		$uid[] = $row->uid;
    	}
    	if ($row->uid == 0) { $guests++; }
    	$brk=$row->uid;
    }
    if ($guests == 1) { $guestn = $lang['guest']; }
    if (empty($content)) { $content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><font color="#003366">0 User </font></td></tr>'."\n"; }
    
    $content.='<tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px;"></td></tr>'."\n";
    $where = (count($uid)>0) ? 'WHERE id NOT IN ('.implode(', ', $uid).')' : '';
    $abf2 = 'SELECT * FROM prefix_user '.$where.' ORDER BY llogin DESC LIMIT 0,5';
    $erg2 = db_query($abf2);
    
    while ($row2 = db_fetch_object($erg2)) {
    	$datum = date('H:i d.m.y',$row2->llogin);
    	$user = $row2->name;
    	$content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><a href="index.php?user-details-'.$row2->id.'" title="'.$lang['lasttimeonline'].$datum.'">'.$user.'</a></td></tr>'."\n";
    }
    if ($guests == 0) {
    	$content.= '<tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px";></td></tr>'."\n".'
    		<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><font size="-1" color="#003366">0 '.$lang['guests'].'</td></tr>'."\n";
    } else {
    	$content.= '<tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px;"></td></tr>'."\n".'
    		<tr><td><img src="include/images/icons/online.gif" border="0" alt="online"></td><td><font size=-1>'.$guests.' '.$guestn.'</font></td></tr>'."\n";
    }
    ?>
    <table align="center" border="0" cellpadding="0" cellspacing="0" >
     <?php echo $content; ?>
    </table>



    Zuletzt modifiziert von nosense am 05.02.2011 - 10:56:38
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    ZitatZitat geschrieben von SiV-Siggi

    mal versucht die zu ersetzen?


    Ja hab sie auch ersetzt das war mein erster Gedanke aber leider nichts
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja aber du hast nun wirklich nicht das was hier im Thema steht, sondern was komplett falsches zunge

    Ersetze deine Zeile 3 mit der aus dem Post von Beatzler, nachdem du selbst sagst, dass es mit dem bei dir nicht geht, allerdings hast du es ja nicht so.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    Hatte ich schon bekomme aber dann den Fehler:

    MySQL Error:
    1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(MINUTE, -5, NOW())' at line 1
    in Query:
    SELECT TIMESTAMPADD(MINUTE, -5, NOW())

    Debug backtrace:
    @ mysql.php:32 -- debug_bt()
    @ mysql.php:50 -- db_check_error(...)
    @ online.php:3 -- db_query(...)
    @ design.php:332 -- require_once(...)
    @ design.php:254 -- design->get_boxcontent(...)
    @ design.php:46 -- design->get_boxes(...)
    @ news.php:12 -- design->design(...)
    @ index.php:34 -- require_once(...)


    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in D:\Hosting\5428280\html\include\includes\func\db\mysql.php on line 54
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Kannst du mal Serverkonfiguration nachschauen, was bei dir für eine MySQL Version läuft?
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    Hallo Mairu zuerst mal euch allen Danke für eure Hartnäckigkeit bei mir läuft

    MySQL-Version 4.1.24-max-log
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Mhh das ist das Problem, eigentlich sollte man heutzutage schon MySQL 5 einsetzen, dann würde es gehen.

    In deinem Fall muss du die Zeitdifferenz halt manuell setzen, und diesen erstmal bestimmen, was auch über die Serverkonfiguration gehen sollte, da dort PHP und MySQL Zeit angezeigt werden, meist sinds volle Stunden, du müsstest dann nur die Zahl vor hour dementsprechend ändern.

    $dif = date('Y-m-d H:i:s', strtotime('-1 hour') - 60);



    Zuletzt modifiziert von Mairu am 06.02.2011 - 13:43:20
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    nein geht leider auch nicht

    <?php
    if (!defined('main')) {die("no direct access");}
    $dif = date('Y-m-d H:i:s', strtotime('-8 hour') - 60);
    $abf = "SELECT uid FROM `prefix_online` WHERE uptime > '". $dif."'";
    $resultID = db_query($abf);
    $brk='';
    $uid = array();
    $guests = 0;
    $guestn = $lang['guests'];
    $content='';
    
    while ($row = db_fetch_object($resultID)) {
    	if ($row->uid != 0 AND $brk!=$row->uid) {
    		$name=@db_result(db_query('SELECT name FROM prefix_user WHERE id='.$row->uid),0);
    		$content.= '<tr><td><img src="include/images/icons/online.gif" border="0" alt="online"></td>';
    		$content.='<td><a href="index.php?user-details-'.$row->uid.'">'.$name.'</a></td></tr>'."\n";
    		$uid[] = $row->uid;
    	}
    	if ($row->uid == 0) { $guests++; }
    	$brk=$row->uid;
    }
    if ($guests == 1) { $guestn = $lang['guest']; }
    if (empty($content)) { $content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><font color="#003366">0 User </font></td></tr>'."\n"; }
    
    $content.='<tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px;"></td></tr>'."\n";
    $where = (count($uid)>0) ? 'WHERE id NOT IN ('.implode(', ', $uid).')' : '';
    $abf2 = 'SELECT * FROM prefix_user '.$where.' ORDER BY llogin DESC LIMIT 0,5';
    $erg2 = db_query($abf2);
    
    while ($row2 = db_fetch_object($erg2)) {
    	$datum = date('H:i d.m.y',$row2->llogin);
    	$user = $row2->name;
    	$content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><a href="index.php?user-details-'.$row2->id.'" title="'.$lang['lasttimeonline'].$datum.'">'.$user.'</a></td></tr>'."\n";
    }
    if ($guests == 0) {
    	$content.= '<tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px";></td></tr>'."\n".'
    		<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><font size="-1" color="#003366">0 '.$lang['guests'].'</td></tr>'."\n";
    } else {
    	$content.= '<tr><td colspan="2"><hr style="height: 0px; border: dashed #9AB1C8 0px; border-top-width: 1px;"></td></tr>'."\n".'
    		<tr><td><img src="include/images/icons/online.gif" border="0" alt="online"></td><td><font size=-1>'.$guests.' '.$guestn.'</font></td></tr>'."\n";
    }
    ?>
    <table align="center" border="0" cellpadding="0" cellspacing="0" >
     <?php echo $content; ?>
    </table>


    Kann ich ein Backup machen und dann auf eine 5 er aufspielen ?


    Zuletzt modifiziert von nosense am 06.02.2011 - 17:24:17
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    Also hab jetzt die 5.0.91 drauf aber geht immer noch nicht egal was ich versuche
    0 Mitglieder finden den Beitrag gut.
  23. #23
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Irgendwie kann ich das nicht glauben, eventuell gibst mir halt mal FTP Zugriff und ich ändere es, bevor wir hier nicht zu einem Ende kommen, eine der geposteten Lösungen sollte eigentlich funktionieren.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  24. #24
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    Hallo MAiru danke für das Angebot der Hilfe... du hast ne PM mit den Zugangsdaten..
    0 Mitglieder finden den Beitrag gut.
  25. #25
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Mhh ok Problem war, das die Zeitverschiebung so groß war, dass die online Tabelle ständig leer war, es werden ja automatisch alte Einträge gelöscht, allerdings mit Scripttime, habe das auf MySQL Time umgestellt, sollte jetzt gehen.

    Problem war auch, dass in der admin.php die Zeitzone nicht gesetzt wurde, in der index.php aber schon, deswegen könnte man den Zeitunterschied nicht sehen und er war bei beiden unterschiedlich.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  26. #26
    User Pic
    nosense Mitglied
    Registriert seit
    17.01.2011
    Beiträge
    27
    Beitragswertungen
    3 Beitragspunkte
    Hallo Mairu herzlichen Dank für Deine Hilfe und ich kann nur sagen macht weiter so ich bin überwältigt von Eurem Wissen und eurem Team das so famous den Usern hilft.

    Nocheinmal herzlichen Dank an allen die am Script mitwirken....
    2 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten