ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Datei profil_edit.php ändern

Geschlossen
  1. #1
    User Pic
    Tommy67 Mitglied
    Registriert seit
    07.06.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Hallo Leute,
    ich habe hier im Forum schon 2 Anläufe unternommen, doch ich komme nicht mehr weiter und BITTE dringend um Eure Hilfe.

    Ich habe Dateien profil_edit.php und profil_edit.htm verändert.
    Soweit funktioniert das auch wunderbar bis auf 2 Sachen die ich nicht hinbekomme.

    Hier die geänderten Bereiche aus der profil_edit.php

    GANZ OBEN
    	$abf = 'SELECT email,wohnort,homepage,aim,msn,icq,yahoo,avatar,status,staat,gebdatum,sig,opt_pm_popup,opt_pm,opt_mail,geschlecht,spezrank,gilde,lev,alf,fen,gla,hel,mid,nam,forn,wat,ruf,tok,kar,abe,sos,vol,cad,ran,gle,pgi,ctp,gesamt,durch FROM `prefix_user` WHERE id = "'.$_SESSION['authid'].'"';


    IN DER MITTE
      # statische felder speichern
    		  db_query("UPDATE prefix_user
    			  SET
              homepage = '".get_homepage(escape($_POST['homepage'], 'string'))."',
              wohnort = '".escape($_POST['wohnort'], 'string')."',
              icq = '".escape($_POST['icq'], 'string')."',
              msn = '".escape($_POST['msn'], 'string')."',
              yahoo = '".escape($_POST['yahoo'], 'string')."',
              ".$avatar_sql_update."
              aim = '".escape($_POST['aim'], 'string')."',
              staat = '".escape($_POST['staat'], 'string')."',
              geschlecht = '".escape($_POST['geschlecht'], 'string')."',
              status = '".escape($_POST['status'], 'string')."',
              opt_mail = '".escape($_POST['opt_mail'], 'string')."',
              opt_pm = '".escape($_POST['opt_pm'], 'string')."',
              opt_pm_popup = '".escape($_POST['opt_pm_popup'], 'string')."',
              gebdatum = '".get_datum(escape($_POST['gebdatum'], 'string'))."',
              sig = '".substr(escape($_POST['sig'], 'string'),0,$allgAr['forum_max_sig'])."',
    	  gilde = '".escape($_POST['gilde'], 'string')."',
      	  lev = '".escape($_POST['lev'], 'string')."',
    	  alf = '".escape($_POST['alf'], 'int')."',
    	  fen = '".escape($_POST['fen'], 'int')."',
    	  gla = '".escape($_POST['gla'], 'int')."',
    	  hel = '".escape($_POST['hel'], 'int')."',
    	  mid = '".escape($_POST['mid'], 'int')."',
    	  nam = '".escape($_POST['nam'], 'int')."',
    	  forn = '".escape($_POST['forn'], 'int')."',
    	  wat = '".escape($_POST['wat'], 'int')."',
    	  ruf = '".escape($_POST['ruf'], 'int')."',
    	  tok = '".escape($_POST['tok'], 'int')."',
    	  kar = '".escape($_POST['kar'], 'int')."',
    	  abe = '".escape($_POST['abe'], 'int')."',
    	  sos = '".escape($_POST['sos'], 'int')."',
    	  vol = '".escape($_POST['vol'], 'int')."',
    	  cad = '".escape($_POST['cad'], 'int')."',
    	  ran = '".escape($_POST['ran'], 'int')."',
    	  gle = '".escape($_POST['gle'], 'int')."',
    	  pgi = '".escape($_POST['pgi'], 'int')."',
    	  ctp = '".escape($_POST['ctp'], 'int')."',
    
    	  gesamt = '$gesamt',
              durch = '$durch'
    			   
    	  WHERE id = ".$_SESSION['authid']
          );


    Gecko war so freundlich und hat mir schon versucht dabei zu helfen !
    ABER ich bekomme es nicht hin und suche jetzt einen der bereit ist die Anpassung zu machen.

    die Variable
    $gesamt
    soll die Werte von alf,fen,gla,hel,mid,nam,forn,wat,ruf,tok,kar,abe,sos,vol,cad,ran,gle,pgi,ctp, addiert beinhalten
    und das in das Feld
    'gesamt' der DB gespeichert werden.

    $durch
    soll $gesamt/19
    sein und auch gespeichert werden.

    Ich hoffe es findet sich jemand bei dem ich mich bedanken kann,
    wenn nicht wäre es sehr sehr schade.

    betroffene Homepage: eagle-team-int.de


    Zuletzt modifiziert von Tommy67 am 15.05.2010 - 20:16:23
    MfG Tommy67
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    servus

    wenn ich das richtig verstanden haben, dann sollte das funktionieren ist aber nicht getestet

    $abf = 'SELECT email,wohnort,homepage,msn,icq,yahoo,avatar,status,staat,gebdatum,sig,opt_pm_popup,opt_pm,opt_mail,geschlecht,spezrank, (SUM(alf)+SUM(fen)+SUM(gla)+SUM(hel)+SUM(mid)+SUM(nam)+SUM(forn)+SUM(wat)+SUM(ruf)+SUM(tok)+SUM(kar)+SUM(abe)+SUM(sos)+SUM(vol)+SUM(cad)+SUM(ran)+SUM(gle)+SUM(pgi)+SUM(ctp)) as gesamt FROM `prefix_user` WHERE id = "'.$_SESSION['authid'].'"';
    $erg = db_query($abf);
    	if ( db_num_rows($erg) > 0 ) {
    	  $row = db_fetch_assoc($erg);
    
    $gesamt = $row ['gesamt']
    $durch = $gesamt / 19 ;



    Zuletzt modifiziert von Vips am 16.05.2010 - 01:26:45
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Nein so nicht, aber das ist doch eigentlich ganz simpel,

    gesamt = ".($gesamt = $alf + $fen + $gla + ...).",
    $durch = ".($gesamt / 19)."


    Die ... kannst du ja sicher selbst befüllen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Tommy67 Mitglied
    Registriert seit
    07.06.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Hallo ihr Beiden,

    schon mal ein grosses Danke,

    @ Mairu

    soweit so gut, aber rechnen will das Ding immer noch nicht oder es wird nicht in die DB gespeichert.

    gesamt = ".($gesamt = $alf + $fen + $gla + ...).",


    Ich bin mir nicht sicher, aber die variablen $alf + $fen + ...
    sind doch gar nicht definiert oder seh ich das falsch ?


    Zuletzt modifiziert von Tommy67 am 16.05.2010 - 11:40:37
    MfG Tommy67
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Tommy67 Mitglied
    Registriert seit
    07.06.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Also ich habe meine Modifikationen mal ganz verändert.

    	if ( db_num_rows($erg) > 0 ) {
    	  $row = db_fetch_assoc($erg);
    
    	$gesamt = 190;
    	$$durch = $gesamt/19;
    		
    	$tpl = new tpl ('user/profil_edit');
    	$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'];
        $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);
    	}
    
    	} else {  # submit
    
      # change password
    	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 ($akpw == md5($_POST['op'])) {
    			  $newpw = md5($_POST['np1']);
    				db_query("UPDATE prefix_user SET pass = '".$newpw."' WHERE id = ".$_SESSION['authid']);
            setcookie(session_und_cookie_name(), $_SESSION['authid'].'='.$newpw, time() + 31104000, "/" );
    				$fmsg = $lang['passwortchanged'];
    			} else {
    		    $fmsg = $lang['passwortwrong'];
    		  }
    		} else {
    		  $fmsg = $lang['passwortnotequal'];
    	  }
      }
    
      # avatar speichern START
    			$avatar_sql_update = '';
          if ( !empty ( $_FILES['avatarfile']['name'] ) AND $allgAr['forum_avatar_upload'] ) {
    				$file_tmpe = $_FILES['avatarfile']['tmp_name'];
            $rile_type = ic_mime_type ($_FILES['avatarfile']['tmp_name']);
    				$file_type = $_FILES['avatarfile']['type'];
    				$file_size = $_FILES['avatarfile']['size'];
            $fmsg = $lang['avatarisnopicture'];
            $size  = @getimagesize ($file_tmpe);
            $endar = array (1 => 'gif', 2 => 'jpg', 3 => 'png');
    				if ( ($size[2] == 1 OR $size[2] == 2 OR $size[2] == 3) AND $size[0] > 10 AND $size[1] > 10 AND substr ( $file_type , 0 , 6 ) == 'image/' AND substr ( $rile_type , 0 , 6 ) == 'image/' ) {
    				  $endung = $endar[$size[2]];
              $breite = $size[0];
              $hoehe  = $size[1];
              $fmsg = $lang['avatarcannotupload'];
    				  if ( $file_size <= $allgAr['Fasize'] AND $breite <= $allgAr['Fabreite'] AND $hoehe <=  $allgAr['Fahohe'] ) {
    					  $neuer_name = 'include/images/avatars/'.$_SESSION['authid'].'.'.$endung;
    						@unlink (db_result(db_query("SELECT avatar FROM prefix_user WHERE id = ".$_SESSION['authid']),0));
                move_uploaded_file ( $file_tmpe , $neuer_name );
                @chmod($neuer_name, 0777);
                $avatar_sql_update = "avatar = '".$neuer_name."',";
                $fmsg = $lang['pictureuploaded'];
    					}
    				}
    			} elseif ( isset($_POST['avatarloeschen']) ) {
            $fmsg = $lang['picturedelete'];
            @unlink (db_result(db_query("SELECT avatar FROM prefix_user WHERE id = ".$_SESSION['authid']),0));
            $avatar_sql_update = "avatar = '',";
          }
      # avatar speichern ENDE
    
    
      # email aendern
      if ($_POST['email'] != $_POST['aemail']) {
        $id = $_SESSION['authid'].'||'.md5 (uniqid (rand()));
        db_query("INSERT INTO prefix_usercheck (`check`,email,datime,ak)
        VALUES ('".$id."','".escape($_POST['email'],'string')."',NOW(),3)");
        $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
        $text = $lang['changedthemail'] . sprintf ($lang['registconfirmlink'], $page, $id );
        icmail ($_POST['email'], $lang['mail'].' '.$lang['changed'], $text );
        $fmsg = $lang['pleaseconfirmmail'];
      }
      #
    
      #remove account
      if (isset($_POST['removeaccount'])) {
        $id = $_SESSION['authid'].'-remove-'.md5 (uniqid (rand()));
        db_query("INSERT INTO prefix_usercheck (`check`,email,datime,ak)
        VALUES ('".$id."','".escape($_POST['email'],'string')."',NOW(),5)");
        $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
        $text = $lang['removeconfirm'] . sprintf ($lang['registconfirmlink'], $page, $id );
        icmail ($_POST['email'], html_entity_decode($lang['removeaccount']), $text );
        $fmsg = $lang['pleaseconfirmremove'];
      }
      # remove account
    
      # statische felder speichern
    		  db_query("UPDATE prefix_user
    			  SET
              homepage = '".get_homepage(escape($_POST['homepage'], 'string'))."',
              wohnort = '".escape($_POST['wohnort'], 'string')."',
              icq = '".escape($_POST['icq'], 'string')."',
              msn = '".escape($_POST['msn'], 'string')."',
              yahoo = '".escape($_POST['yahoo'], 'string')."',
              ".$avatar_sql_update."
              aim = '".escape($_POST['aim'], 'string')."',
              staat = '".escape($_POST['staat'], 'string')."',
              geschlecht = '".escape($_POST['geschlecht'], 'string')."',
              status = '".escape($_POST['status'], 'string')."',
              opt_mail = '".escape($_POST['opt_mail'], 'string')."',
              opt_pm = '".escape($_POST['opt_pm'], 'string')."',
              opt_pm_popup = '".escape($_POST['opt_pm_popup'], 'string')."',
              gebdatum = '".get_datum(escape($_POST['gebdatum'], 'string'))."',
              sig = '".substr(escape($_POST['sig'], 'string'),0,$allgAr['forum_max_sig'])."',
    		  gilde = '".escape($_POST['gilde'], 'string')."',
      		  lev = '".escape($_POST['lev'], 'string')."',
    		  alf = '".escape($_POST['alf'], 'int')."',
    		  fen = '".escape($_POST['fen'], 'int')."',
    		  gla = '".escape($_POST['gla'], 'int')."',
    		  hel = '".escape($_POST['hel'], 'int')."',
    		  mid = '".escape($_POST['mid'], 'int')."',
    		  nam = '".escape($_POST['nam'], 'int')."',
    		  forn = '".escape($_POST['forn'], 'int')."',
    		  wat = '".escape($_POST['wat'], 'int')."',
    		  ruf = '".escape($_POST['ruf'], 'int')."',
    		  tok = '".escape($_POST['tok'], 'int')."',
    		  kar = '".escape($_POST['kar'], 'int')."',
    		  abe = '".escape($_POST['abe'], 'int')."',
    		  sos = '".escape($_POST['sos'], 'int')."',
    		  vol = '".escape($_POST['vol'], 'int')."',
    		  cad = '".escape($_POST['cad'], 'int')."',
    		  ran = '".escape($_POST['ran'], 'int')."',
    		  gle = '".escape($_POST['gle'], 'int')."',
    		  pgi = '".escape($_POST['pgi'], 'int')."',
    		  ctp = '".escape($_POST['ctp'], 'int')."',
    		  gesamt = '".escape($_POST['gesamt'], 'int')."',
    		  durch = '".escape($_POST['durch'], 'double')."'
    			WHERE id = ".$_SESSION['authid']
    	);
    	echo "TEST";
    	echo $gesamt;
    	echo $durch;


    ganz oben habe ich die Variablen auf einen festen Wert gesetzt
    	$gesamt = 190;
    	$$durch = $gesamt/19;


    und ganz unten möchte ich die kurz anzeigen lassen
    	echo "TEST";
    	echo $gesamt;
    	echo $durch;


    Test wird mir über dem Kopf für 3 sek angezeigt,alles andere nicht.

    Jemand eine Idee ?


    Zuletzt modifiziert von Tommy67 am 16.05.2010 - 13:02:26
    MfG Tommy67
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Hast recht, das war doof.
    Versuchs mal so.

    # statische felder speichern
    $fields = array('alf','fen','gla','hel','mid','nam','forn','wat','ruf','tok','kar','abe','sos','vol','cad','ran','gle','pgi','ctp');
    $sqladd = array();
    $gesamt = 0;
    foreach ($fields as $f){
        $tmp = escape($_POST[$f], 'integer');
        $sqladd[] = $f . ' = ' . $tmp;
        $gesamt += $tmp;
    }
    $sqladd[] = 'gesamt = ' . $gesamt;
    $sqladd[] = 'durch = ' . ($gesamt / 19);
    
    $sqladd = implode(", ", $sqladd);
    
    db_query("UPDATE prefix_user SET
              homepage = '".get_homepage(escape($_POST['homepage'], 'string'))."',
              wohnort = '".escape($_POST['wohnort'], 'string')."',
              icq = '".escape($_POST['icq'], 'string')."',
              msn = '".escape($_POST['msn'], 'string')."',
              yahoo = '".escape($_POST['yahoo'], 'string')."',
              ".$avatar_sql_update."
              aim = '".escape($_POST['aim'], 'string')."',
              staat = '".escape($_POST['staat'], 'string')."',
              geschlecht = '".escape($_POST['geschlecht'], 'string')."',
              status = '".escape($_POST['status'], 'string')."',
              opt_mail = '".escape($_POST['opt_mail'], 'string')."',
              opt_pm = '".escape($_POST['opt_pm'], 'string')."',
              opt_pm_popup = '".escape($_POST['opt_pm_popup'], 'string')."',
              gebdatum = '".get_datum(escape($_POST['gebdatum'], 'string'))."',
              sig = '".substr(escape($_POST['sig'], 'string'),0,$allgAr['forum_max_sig'])."',
          gilde = '".escape($_POST['gilde'], 'string')."',
          lev = '".escape($_POST['lev'], 'string')."',
          ".$sqladd."
          WHERE id = ".$_SESSION['authid']
    );
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Tommy67 Mitglied
    Registriert seit
    07.06.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    MAIRU !!!!!
    Werde Dich ab heute in meine Gebete mit einschliessen !!!
    Ein einfaches DANKE ist wohl viel zu wenig.

    Dennoch möchte ich mich bei Dir ganz herzlich bedanken !


    Ein kleine Frage habe ich noch.
    die profil_edit.htm hat ja jetzt die beiden Felder für
    GESAMT und DURCHSCHNITT
    Kann man die so machen das sie die Daten zwar anzeigen, aber nicht editierbar sind ?

    <label style="float:left; width:35%;">Gesamt</label><input style="margin-bottom:2px;" name="gesamt" value="{gesamt}"/> 
    <strong>HIER NICHTS &Auml;NDERN !</strong><br style="clear:both;" />
    
    <label style="float:left; width:35%;">Durchschnitt</label><input style="margin-bottom:2px;" name="durch" value="{durch}"/> 
       		    <strong>HIER NICHTS &Auml;NDERN !</strong><br style="clear:both;" />


    Das ist zwar nicht zwingend erforderlich, aber wäre schön.

    Nochmals VIELEN VIELEN DANK
    MfG Tommy67
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Sicher du brauchst ja keine Input Felder benutzen einfach nur {gesamt} reicht auch, andere Möglichkeit ist, dem input das Attribut readonly="readonly" zu verpassen, dann sollte man es auch nicht ändern können.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Tommy67 Mitglied
    Registriert seit
    07.06.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    So damit wäre das jetzt erledigt.

    Nochmals einen RIESEN DANK an Mairu !!!

    Threat kabb geschlossen werden ;-)
    MfG Tommy67
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten