ilch Forum » Ilch Clan 1.1 » Allgemein » Geb. Datum im Profil wird nicht angezeig

Geschlossen
  1. #1
    User Pic
    DonnyBresko Mitglied
    Registriert seit
    10.01.2014
    Beiträge
    30
    Beitragswertungen
    1 Beitragspunkte
    Hallo Community,

    ich habe da ein kleines Problem und zwar hab ich mein Profil Editor ein wenig geändert undzwar so das beim setzen des Geb-Datums nicht mehr das Text/Nummern Feld mit 0000-00-00 hat sondern ich habe dafür eine "auswahlbox" eingesetzt. Eben die dinger wo man das Jahr-Monat-Tag auswählt.

    ############################################################

    Dafür habe ich in meiner profi_edit.php das hier geändert:

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    
    $title = $allgAr['title'].' :: Users :: Profil';
    $hmenu  = $extented_forum_menu.'<a class="smalfont" href="?user">Users</a><b> &raquo; </b> Profil'.$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1);
    
    function set_day () {
        $arDay = array_combine(range(1,31),range(1,31));
        return ($arDay);
    }
     
    function set_month () {
        $arMonth = array_combine(range(1,12),range(1,12));
        return ($arMonth);
    }
     
    function set_year () {
        $firstYear = 1950;
        $aktYear = date("Y");
        $arYear = array_combine(range($firstYear,$aktYear),range($firstYear,$aktYear));
        return ($arYear);
    }
    
    if ( $_SESSION['authright'] <= -1 ) {
    
        $csrfCheck = chk_antispam('user_profile_edit', true);
        
    if ( empty ($_POST['submit']) || !$csrfCheck ) {
      $design->header();
    	$abf = 'SELECT email,wohnort,homepage,aim,msn,icq,yahoo,avatar,status,staat,gebdatum,sig,opt_pm_popup,opt_pm,opt_mail,geschlecht,spezrank FROM `prefix_user` WHERE id = "'.$_SESSION['authid'].'"';
    	$erg = db_query($abf);
    	if ( db_num_rows($erg) > 0 ) {
    	  $row = db_fetch_assoc($erg);
    
    	$tpl = new tpl ('user/profil_edit');
    	$t = explode('-',$row['gebdatum']);
    	    $row['year'] = '<option></option>'.arlistee ( $t[0] , set_year() , $tpl , 'year' );
    	    $row['month'] = '<option></option>'.arlistee ( $t[1] , set_month() , $tpl , 'month' );
                $row['day'] = '<option></option>'.arlistee ( $t[2] , set_day() , $tpl , 'day' );
                
    	$row['staat'] = '<option></option>'.arliste ( $row['staat'] , get_nationality_array() , $tpl , 'staat' );
        $row['geschlecht0'] = ( $row['geschlecht'] < 1 ? 'checked' : '' );
        $row['geschlecht1'] = ( $row['geschlecht'] == 1 ? 'checked' : '' );
        $row['geschlecht2'] = ( $row['geschlecht'] == 2 ? 'checked' : '' );
        if ( $row['status'] == 1 ) { $row['status1'] = 'checked'; $row['status0'] = ''; } else { $row['status1'] = ''; $row['status0'] = 'checked'; }
        if ( $row['opt_mail'] == 1 ) { $row['opt_mail1'] = 'checked'; $row['opt_mail0'] = ''; } else { $row['opt_mail1'] = ''; $row['opt_mail0'] = 'checked'; }
        if ( $row['opt_pm'] == 1 ) { $row['opt_pm1'] = 'checked'; $row['opt_pm0'] = ''; } else { $row['opt_pm1'] = ''; $row['opt_pm0'] = 'checked'; }
        if ( $row['opt_pm_popup'] == 1 ) { $row['opt_pm_popup1'] = 'checked'; $row['opt_pm_popup0'] = ''; } else { $row['opt_pm_popup1'] = ''; $row['opt_pm_popup0'] = 'checked'; }
    
        $row['avatarbild'] = ( file_exists ( $row['avatar'] ) ? '<img src="'.$row['avatar'].'" alt=""><br />' : '' );
        $row['Fabreite'] = $allgAr['Fabreite'];
        $row['Fahohe'] = $allgAr['Fahohe'];
        $row['Fasize'] = $allgAr['Fasize'];
        $row['forum_max_sig'] = $allgAr['forum_max_sig'];
        $row['uid'] = $_SESSION['authid'];
        $row['forum_usergallery'] = $allgAr['forum_usergallery'];
        $row['antispam'] = get_antispam('user_profile_edit', 0, true);
        $tpl->set_ar_out($row,0);
        if ($allgAr['forum_avatar_upload']) $tpl->out(1);
        $tpl->set_ar_out($row,2);
    		profilefields_change ( $_SESSION['authid'] );
    		$tpl->out(3);
    
      } else {
        $tpl = new tpl ( 'user/login.htm' );
        $tpl->set_out('WDLINK','index.php',0);
    	}
    
    } elseif ($csrfCheck) {  # submit
    
    # change poassword
    	if ( !empty($_POST['np1']) AND !empty($_POST['np2']) AND !empty($_POST['op'])) {
        if ($_POST['np1'] == $_POST['np2']) {
    		  $akpw = db_result(db_query("SELECT pass FROM prefix_user WHERE id = ".$_SESSION['authid']),0);
    			if (user_pw_check($_POST['op'], $akpw)) {
    			  $newpw = user_pw_crypt($_POST['np1']);
    				db_query("UPDATE prefix_user SET pass = '".$newpw."' WHERE id = ".$_SESSION['authid']);
                    user_set_cookie($_SESSION['authid'], $newpw);
    				$fmsg = $lang['passwortchanged'];
    			} else {
    		    $fmsg = $lang['passwortwrong'];
    		  }
    		} else {
    		  $fmsg = $lang['passwortnotequal'];
    	  }
      }


    und hier dann meine profil_edit.htm

    <tr class="Cnorm">
    <td width="100" align="left" valign="middle">
    <img src="include/images/icons/cake.png" width="16" height="16" alt="" align="left"> 
    <strong>{_lang_birthday}</strong>
    </td>
    <td align="left" valign="top">
    <select style="margin-bottom:2px; width:75px" name="year" />{_list_year@<option%1 value="%2">%3</option>}</select>
    <select style="margin-bottom:2px; width:75px" name="month" />{_list_month@<option%1 value="%2">%3</option>}</select>
    <select style="margin-bottom:2px; width:50px" name="day" />{_list_day@<option%1 value="%2">%3</option>}</select>
    </td>
    </tr>


    ############################################################

    Mein Problem ist nun das zwar im Editor alles angezeigt wird und auch keine Fehlermeldung kommt. Aber wenn ich dann mein Datum auswähle und auf Speichern klicke danach auf mein Profil gehe steht da immer noch.

    0000-00-00

    Ebenso wenn ich zurück ins Profil Edit gehe sind die Felder dann leer als wenn nix ausgewählt wurde.

    Eine Idee wo mein Fehler liegt ?

    Und mein 2tes Anliegen betrifft das, das ich gerne den Online Status eines Users unter seinem Avatar in einem Forum Post und im Profil angezeigt bekommen würde.

    Ungefähr so:
    gesperrtes Bild

    Vom Code würde das ganze in etwa so aussehen lächeln

     <tr class="{class}"> 
        <td width="20%" valign="top"><a name="{id}"></a>{erst}<br />
    	<font class="smalfont">{rang}{avatar}</font><br />
    	<font class="smalfont"><img src="include/designs/CFX_Breskos_Yellow/images/user-online.png"/>&nbsp;Online</font><br />
    	<font class="smalfont">{posts}</font>
    	</td>


    Natürlich soll er dan den jeweiligen Status anzeigen im Moment hab ich einfach einen text und ein bild drinn als veranschaulichung.

    Ich weis das ist viel aber das sind die 2 dinge an dennen ich grad fest hänge.

    Danke für eure hilfe im Voraus


    verwendete ilch Version: 1.1 P

    betroffene Homepage: donnybreskoswelt.com/


    Zuletzt modifiziert von DonnyBresko am 18.07.2015 - 15:25:36
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    1. Das Thema kam mir doch gleich bekannt vor bzw. die Funktionen:
    www.ilch.de/forum-showposts-52568.html#380277

    Du must auf jeden Fall aufpassen, wie zum Schluss die Auswahl zusammengesetzt wird und in der Datenbank gespeichert wird.
    Siehe unter:
    # statische felder speichern
    ...
    gebdatum = ...


    Da Du nicht die vollständige profil_edit.php gepostet hast, ist es nicht ersichtlich, wie die Daten übergeben werden.



    2. Vom Prinzip muss Du ersteinaml prüfen ob der jeweilige User online ist und dann es an das Template ausgeben.
    Folgendes Prinzip:
    $result = db_query('SELECT * FROM `prefix_online` where `uid` = ' . $row['userid']);
    if (db_num_rows($result) > 0)
    {
    	$row['ONLINE'] = '<img src="include/images/icons/online.gif" alt="online" border="0" />';
    }
    else 
    {
    	$row['ONLINE'] = '<img src="include/images/icons/offline.gif" alt="offline" border="0" />';
    }

    ... und dann {ONLINE} ins Template, je nach Art der Übergabe.


    PS.: Falsches Thema aber gleiches Problem ... lasse es deshalb stehen! zunge


    Zuletzt modifiziert von Lord|Schirmer am 16.02.2016 - 20:27:50
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten