ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Alter stimmt nicht

Geschlossen
  1. #1
    User Pic
    shadow Mitglied
    Registriert seit
    27.05.2006
    Beiträge
    48
    Beitragswertungen
    0 Beitragspunkte
    Erst mal allen ein schönes neues Jahr!!! Drink

    Mein Fehler ist dieser:

    Seit heute (genau nach der Jahresumstellung -> kann es daran liegen??????) spinnt meine Altersanzeige. Wenn ich mein Geburtsdatum (den 19.01.1988) eingebe zeigt er mir an, dass ich 19 sein soll obwohl ich erst 18 bin. zwinker verärgert

    Hier ein Scrennshot:

    gesperrtes Bild

    Woran kann das liegen und wie kann ich den Fehler wieder beheben???

    THX @nd a good year!!

    Shadow

    EDIT: Ach ja, ich habe es schon mit anderen Usern probiert aber bei allen der selbe Fehler. Stelle ich auf 1989 bin ich wieder 18.

    betroffene Homepage: gibtesnochnicht.de :-)


    Zuletzt modifiziert von shadow am 02.01.2007 - 01:15:00
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Da ist offensichtlich ein Fehler in der Altersberechnung. Wenn du die Datei online.php im include/boxes Ordner mit einer neueren Version aus dem Modulpaket von SLJ ersetzt sollte es allerdings gehen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    shadow Mitglied
    Registriert seit
    27.05.2006
    Beiträge
    48
    Beitragswertungen
    0 Beitragspunkte
    Aber der Fehler wird ja nicht nur in der Online-Box angezeigt sondern z.B. auch unter Member ect. Halt überall wo ein Alter auch steht.

    ^^


    Kann ich trotzdem nur die Online austauschen??? Oder wo wird generell das ALter berechnet??
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ja dann ersetze halt alle Dateien mit einer neueren Version, wüsste nicht was dagegen spricht, wenn du noch weißt welche du vom 1.5 oder welches du drauf hast hochgeladen hast, solltest du jetzt einfach durch die vom 1.6.1 ersetzen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    shadow Mitglied
    Registriert seit
    27.05.2006
    Beiträge
    48
    Beitragswertungen
    0 Beitragspunkte
    Habe alle Dateien die damit zusammenhängen könnten ersetzt. Is immer noch falsch.. traurigtraurigtraurigtraurig

    Ich habe keine Ahnung woran es liegt... traurig


    Möchte mal nachvollziehen wie der Fehler entstehen könnte. Wie wird denn genau das Alter berechnet??????


    Zuletzt modifiziert von shadow am 02.01.2007 - 12:01:34
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Mhh, naja ich kann dir meine Altersberechnung geben, aber das es bei niemand anderen falsch ist (also bei unserer Seite war es auch falsch), ich dachte das wäre mit neueren Versionen verbessert worden, die ich nicht benutzte.
    $age1=explode("-",$row1->gebdatum);
    $age = date("Y",time())-$age1[0];
    
    if (date("m",time())-$age1[1] < 0) $age = $age - 1;
    elseif ((date("m",time())-$age1[1] == 0) && (date("d",time())-$age1[2] < 0)) $age = $age - 1;
    danach sollte es mit den if Abfragen losgehen (in der online.php).


    Zuletzt modifiziert von Mairu am 02.01.2007 - 12:01:51
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    shadow Mitglied
    Registriert seit
    27.05.2006
    Beiträge
    48
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von Mairu

    Mhh, naja ich kann dir meine Altersberechnung geben, aber das es bei niemand anderen falsch ist (also bei unserer Seite war es auch falsch), ich dachte das wäre mit neueren Versionen verbessert worden, die ich nicht benutzte.
    $age1=explode("-",$row1->gebdatum);
    $age = date("Y",time())-$age1[0];
    
    if (date("m",time())-$age1[1] < 0) $age = $age - 1;
    elseif ((date("m",time())-$age1[1] == 0) && (date("d",time())-$age1[2] < 0)) $age = $age - 1;
    danach sollte es mit den if Abfragen losgehen (in der online.php).


    Zuletzt modifiziert von Mairu am 02.01.2007 - 12:01:51


    Wo muss das rein?? in die Online???

    Hat sich erledigt. Habs gesehen^^.


    Zuletzt modifiziert von shadow am 02.01.2007 - 12:03:52
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    shadow Mitglied
    Registriert seit
    27.05.2006
    Beiträge
    48
    Beitragswertungen
    0 Beitragspunkte
    Bei mir sieht die Online.php (box ordner) so aus:

    <?php
    if (!defined('main')) {die("no direct access");}
    $dif = date('Y-m-d H:i:s', time() - 60);
    $abf = "SELECT uid FROM `prefix_online` WHERE uptime > '". $dif."' limit 5";
    $resultID = db_query($abf);
    $brk='';
    $uid = array();
    $guests = 0;
    $guestn = $lang['guests'];
    $content='';
    
    while ($row = db_fetch_object($resultID)) {
    	
    $abf1 = db_query("SELECT id,name, geschlecht, gebdatum FROM prefix_user WHERE id= '".$row->uid."' ");
    
    $row1 = db_fetch_object($abf1);
    if ($row->uid != 0 AND $brk!=$row->uid) {
    
    
    $t1 = 0;
    $t2 = 0;
    $t3 = 0;
    
    
    
    $age1=explode("-",$row1->gebdatum);
    $age = date("Y",time())-$age1[0];
    
    
    $geb = $row1->gebdatum;
    $a = explode('-', $geb);
    $endung = $a[count($a) - 1];
    
    
       $tag = $a[2];
       $mon = $a[1];
       $jah = $a[0];
    
    
    if ($mon > date("m")){$t1 = 2;}
    if ($mon == date("m")){$t1 = 1;}
    if ($tag > date("d")){$t2 = 1;}
    
    $t3 = ($t1 + $t2);
    
    if ($t3 > 1){$age2 = ($age -1);}
    else{$age2 = $age;}
    
    
    
    
    
    if ($row1->geschlecht == 0){
    if ($row1->gebdatum != 0000-00-00 ){
    		$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.'">('.$age.') '.$row1->name.'</a></td></tr>'."\n";
    		$uid[] = $row->uid;
    }else{
    		$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.'">'.$row1->name.'</a></td></tr>'."\n";
    		$uid[] = $row->uid;
    }
    }
    elseif ($row1->geschlecht == 1){
    if ($row1->gebdatum != 0000-00-00 ){
    		$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.'">(M-'.$age.') '.$row1->name.'</a></td></tr>'."\n";
    		$uid[] = $row->uid;
    }else{
    		$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.'">(M) '.$row1->name.'</a></td></tr>'."\n";
    		$uid[] = $row->uid;
    }
    }
    elseif ($row1->geschlecht == 2){
    if ($row1->gebdatum != 0000-00-00 ){
    		$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.'">(W-'.$age.') '.$row1->name.'</a></td></tr>'."\n";
    		$uid[] = $row->uid;
    }else{
    		$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.'">(W) '.$row1->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;
    
    
    $abf2 = db_query("SELECT id,name, geschlecht, gebdatum FROM prefix_user WHERE id= '".$row2->id."'  ");
    
    $row0 = db_fetch_object($abf2);
    	
    
    $t1 = 0;
    $t2 = 0;
    $t3 = 0;
    
    
    
    $age1=explode("-",$row0->gebdatum);
    $age = date("Y",time())-$age1[0];
    
    
    $geb = $row0->gebdatum;
    $a = explode('-', $geb);
    $endung = $a[count($a) - 1];
    
    
       $tag = $a[2];
       $mon = $a[1];
       $jah = $a[0];
    
    
    if ($mon > date("m")){$t1 = 2;}
    if ($mon == date("m")){$t1 = 1;}
    if ($tag > date("d")){$t2 = 1;}
    
    $t3 = ($t1 + $t2);
    
    if ($t3 > 1){$age2 = ($age -1);}
    else{$age2 = $age;}
    
    
    
    
    
    if ($row0->geschlecht == 0){
    if ($row0->gebdatum != 0000-00-00 ){
    $content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><a href="index.php?user-details-'.$row0->id.'" title="'.$lang['lasttimeonline'].$datum.'">('.$age.') '.$row0->name.'</a></td></tr>'."\n";
    $uid[] = $row->uid;
    }else{
    $content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><a href="index.php?user-details-'.$row0->id.'" title="'.$lang['lasttimeonline'].$datum.'">'.$row0->name.'</a></td></tr>'."\n";
    $uid[] = $row->uid;
    }
    
    }
    elseif ($row0->geschlecht == 1){
    if ($row0->gebdatum != 0000-00-00 ){
    $content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><a href="index.php?user-details-'.$row0->id.'" title="'.$lang['lasttimeonline'].$datum.'">(M-'.$age.') '.$row0->name.'</a></td></tr>'."\n";
    $uid[] = $row->uid;
    }else{
    $content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><a href="index.php?user-details-'.$row0->id.'" title="'.$lang['lasttimeonline'].$datum.'">(M) '.$row0->name.'</a></td></tr>'."\n";
    $uid[] = $row->uid;
    }
    }
    elseif ($row0->geschlecht == 2){
    if ($row0->gebdatum != 0000-00-00 ){
    $content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><a href="index.php?user-details-'.$row0->id.'" title="'.$lang['lasttimeonline'].$datum.'">(W-'.$age.') '.$row0->name.'</a></td></tr>'."\n";
    $uid[] = $row->uid;
    }else{
    $content.='<tr><td><img src="include/images/icons/offline.gif"  border="0" alt="offline"></td><td><a href="index.php?user-details-'.$row0->id.'" title="'.$lang['lasttimeonline'].$datum.'">(W) '.$row0->name.'</a></td></tr>'."\n";
    $uid[] = $row->uid;
    }
    
    }
    
    
    	}
    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>


    Da ist 2mal eine Stelle mit
    $age1=explode
    zu welchem muss die Altersabfrage von euch????
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    shadow Mitglied
    Registriert seit
    27.05.2006
    Beiträge
    48
    Beitragswertungen
    0 Beitragspunkte
    Habe es jetzt zum ersten eingefügt und es funzt.

    Noch ein paar Fragen:

    Sollte ich es auch in der online.php (wie oben beschrieben) noch zu dem zweiten
    $age1=explode
    stellen oder reicht ein mal????

    Das muss ich jetzt bei allen Altersabfragen im Script wiederholen, gell???

    THX

    Shadow
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Mit time stamp wäre es viel einfacher,... aber leider beim geburtsdatum nicht möglich,... zwinker

    Aber nach meinen test sollte das Alter stimmen,..;)
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten