ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » profiledit ändern

Geschlossen
  1. #1
    User Pic
    CiSeN Mitglied
    Registriert seit
    06.01.2010
    Beiträge
    58
    Beitragswertungen
    1 Beitragspunkte
    Hallo zusammen,

    die Nervensäge meldet sich mal wieder zu Wort. Heute mit dem Problem:

    "Wieso wird mir im Admin Bereich weder der Name noch die E-Mail angezeigt?"

    gesperrtes Bild

    Folgender Sachverhalt:

    Wie schon in einem anderen Post angemerkt finde ich hier das usercp sehr cool gemacht und dachte mir, dass es ja möcglich sein sollte, das auf das eigene Script umzusetzen. Also habe ich einfach mal ganz ungeniert angefangen es zu probieren. ICh hab mir also die /contents/user.php geschnappt und folgendermaßen erweitert:

    <?php 
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    # menu
    require_once('include/contents/forum/menu.php');
    
    switch($menu->get(1)) {
    	 default 				: 			$userDatei = 'memb_list'; 				break;
    		case 'regist' 		: case  1 : $userDatei = 'regist'; 					break;
    		case 'confirm' 		: 			$userDatei = 'confirm'; 				break;
    		case 'login' 		: case  2 : $userDatei = 'login'; 					break;
    		case 'logout' 		: case  3 : $userDatei = 'logout'; 					break;
    		case 'mail' 		: case  4 : $userDatei = 'mail'; 					break;
    		case 'usergallery' 	: 			$userDatei = 'usergallery'; 			break; 
    		case 'details' 		: case  6 : $userDatei = 'user_details'; 			break;
    		case 'profil' 		: case  8 : $userDatei = 'profil_edit'; 			break;
    		case 'remind' 		: case 13 : $userDatei = 'password_reminder'; 		break;
    		case 'cp' 			: case 14 : $userDatei = 'cp' ; 					break;
    		case 'cpprofile' 	: case 15 : $userDatei = 'cp-profile'; 				break;
    		case 'cpimages' 	: case 16 : $userDatei = 'cp-images'; 				break;
    		case 'cptexts' 		: case 17 : $userDatei = 'cp-texts'; 				break;
    		case 'cpsettings' 	: case 18 : $userDatei = 'cp-settings'; 			break;
    		case 'cppassword' 	: case 19 : $userDatei = 'cp-password'; 			break;
    		case 'cpdelete' 	: case 20 : $userDatei = 'cp-delete'; 				break;
    }
     
    require_once('include/contents/user/'.$userDatei.'.php');
    
    
    ?>


    Anschließend habe ich mir die /contents/user/profil_edit.php kopiert und in cp-delete.php umbenannt und den Inhalt folgendermaßen angepasst:

    <?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);
    
    
    
    if ( $_SESSION['authright'] <= -1 ) {
    
        $csrfCheck = chk_antispam('user_cp-delete', true);
        
    if ( empty ($_POST['submit']) || !$csrfCheck ) {
      $design->header();
    	$abf = 'SELECT email,opt_pm_popup,opt_pm,opt_mail,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/cp-delete');
    
        $row['uid'] = $_SESSION['authid'];
    
        $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
    
      #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'], ILCH_ENTITIES_FLAGS, ILCH_CHARSET), $text );
        $fmsg = $lang['pleaseconfirmremove'];
      }
      #remove account
    
    
      # statische felder speichern
    		  db_query("UPDATE prefix_user
    			  SET
    
    
              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')."',
    
    
    				WHERE id = ".$_SESSION['authid']
          );
    
    
    	# change other profil fields
    
      profilefields_change_save ( $_SESSION['authid'] );
    	$design->header();
    
    	# definie and print msg
    	$fmsg = ( isset($fmsg) ? $fmsg : $lang['changesuccessful'] );
    	wd('?usercp' , $fmsg  , 3 );
    
    }
    
    } else {
    		$tpl = new tpl ( 'user/login' );
    		$tpl->set_out('WDLINK', '?usercp', 0);
    }
    
    $design->footer();
    ?>


    zum Schluss natürlich noch eine entsprechende htm datei erstellt und getestet.

    Soweit funktioniert es auch, ausser dass, wie auf dem obrigen Scrren zu sehen ist, mir nicht die Felder Name und E-Mail angezeigt werden.

    Also was habe ich falsch gemacht?

    Ich bin für jede laienhafte Erklärung dankbar, also bitte kein Fachchinesisch.
    Und ich sage auch schonmal Danke im Voraus für jede Unterstützung.


    verwendete ilch Version: 1.1 P
    Bombing For Peace Is Like Fu**ing For Virginity !!!
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Moin,
    also ganz oben stellst Du eine Frage zum Admin-Bereich, postest dann aber nur Dateien aus dem Frontend.
    Hast Du was an den Dateien zu User verwalten - nicht bestätigte Registrierungen geändert (admin.php?puser)?
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    CiSeN Mitglied
    Registriert seit
    06.01.2010
    Beiträge
    58
    Beitragswertungen
    1 Beitragspunkte
    Moin,

    nein habe ich nicht. Genau das ist ja das spannende an der Geschichte... Das was ich gepostet habe ist das was ich gemacht hatte, um profile_edit ein wenig zu modifizieren. Und als ich kontrollieren wollte, ob der Löschvorgang funktiert hatte ist mir das im Adminbeteich aufgefallen.


    Zuletzt modifiziert von CiSeN am 31.07.2016 - 08:29:47
    Bombing For Peace Is Like Fu**ing For Virginity !!!
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    OK also dass der Name nicht auftaucht, ist codetechnisch bedingt...
    db_query("INSERT INTO prefix_usercheck (`check`,email,datime,ak)
        VALUES ('".$id."','".escape($_POST['email'],'string')."',NOW(),5)");

    Hier fehlt im INSERT der Eintrag für den Namen völlig.
    Um das zu ermöglichen, bitte die geposteten Zeilen durch folgende ersetzen:
    db_query("INSERT INTO prefix_usercheck (`check`,name,email,datime,ak)
        VALUES ('".$id."','".$_SESSION['authname']."','".escape($_POST['email'],'string')."',NOW(),5)");


    Warum bei Dir die Mail-Adresse nicht angezeigt wird, weiß ich nicht.
    Schau mal in der Datenbank in der Tabelle ic?_usercheck nach, ob dort überhaupt eine Mail-Adresse eingetragen ist.

    P.S.: Hab oben nochmal was geänder!


    Zuletzt modifiziert von Outi77 am 31.07.2016 - 09:42:00
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    CiSeN Mitglied
    Registriert seit
    06.01.2010
    Beiträge
    58
    Beitragswertungen
    1 Beitragspunkte
    Danke für deine Antwort Outi77.

    Der Name wird mir im Backend nun angezeigt.

    Deinem Tipp mit der Datenbank bin ich mal zumindest soweit nachgegangen, um festzustellen, dass sich die Spalte "email" in icX_usercheck nicht füllt.

    Das irsinnige daran ist, dass sich die Spalte füllt, wenn ich es wie gewohnt über die profil_edit ausführe.

    Ich poste nochmal den code aus der delete.php, denn irgendwas scheine ich darin ja vergessen zu haben:

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    
    $title = $allgAr['title'].' :: Übersicht :: Profil löschen';
    $hmenu  = $extented_forum_menu.'<a href="?cp">Übersicht</a>&nbsp;&nbsp;&bull;&nbsp;&nbsp;Profil löschen'.$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1);
    
    
    
    if ( $_SESSION['authright'] <= -1 ) {
    
    	$csrfCheck = chk_antispam('user_profile_edit', true);
        
    	if ( empty ($_POST['submit']) || !$csrfCheck ) {
    
    		$design->header();
    
    		$abf = 'SELECT email,vorname,nachname,aboutme,wohnort,homepage,youtube,psn,xboxlive,steam,origin,ubisoft,avatar,backgroundimage,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 ('cp/delete');
    
    				$row['uid'] = $_SESSION['authid'];
    
    				$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
    
    	
    	
    
    		#REMOVE ACCOUNT ANFANG
    
    		if (isset($_POST['removeaccount'])) {
    			$id = $_SESSION['authid'].'-remove-'.md5 (uniqid (rand()));
    			db_query("INSERT INTO prefix_usercheck (`check`,name,email,datime,ak)
    			VALUES ('".$id."','".$_SESSION['authname']."','".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'], ILCH_ENTITIES_FLAGS, ILCH_CHARSET), $text );
    			$fmsg = $lang['pleaseconfirmremove'];
    		}
    
    		#REMOVE ACCOUNT ENDE
    
    		# change other profil fields
    
    		profilefields_change_save ( $_SESSION['authid'] );
    		$design->header();
    
    		# definie and print msg
    		
    		$fmsg = ( isset($fmsg) ? $fmsg : $lang['changesuccessful'] );
    		wd('?cp' , $fmsg  , 3 );
    
    	}
    
    } else {
    		$design->header();
    		
    		$tpl = new tpl ( 'user/login' );
    		
    		$tpl->set_out('WDLINK', '?cp', 0);
    }
    
    $design->footer();
    ?>


    Ich bin weiterhin für jeden Lösungsansatz dankbar.


    Zuletzt modifiziert von CiSeN am 03.08.2016 - 11:31:43
    Bombing For Peace Is Like Fu**ing For Virginity !!!
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Also die einzig logische Erklärung, warum die Mail-Adresse nicht in die Tabelle ic?_usercheck eingetragen wird, wäre, dass gar keine Mail-Adresse aus der Profil-Edit übergeben wird.
    Steht denn im Mailadress-Feld ganz oben was drin?
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    CiSeN Mitglied
    Registriert seit
    06.01.2010
    Beiträge
    58
    Beitragswertungen
    1 Beitragspunkte
    Ja, die E-Mail-Adresse wird mir sowohl in der originalen profil_edit, wie auch in der von mir neu erstellten datei "profile.php" korrekt angezeigt.

    An diesem Punkt mit dem Profil löschen verzweifel ich gerade regelrecht.
    Alles andere klappt; ich kann also Profildaten seperat getrennt von Profiltexten abändern, nur diese Geschichte beim Profil löschen will irgendwie (noch) nicht fruchten.
    Bombing For Peace Is Like Fu**ing For Virginity !!!
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Hast Du zu der neu erstellten Datei profile.php auch eine neue Template-Datei, sprich eine htm?
    Dann schau mal, ob Du da vielleicht dem Feld für die Mail-Adresse das falsche name-Attribut gegeben hast.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    CiSeN Mitglied
    Registriert seit
    06.01.2010
    Beiträge
    58
    Beitragswertungen
    1 Beitragspunkte
    Ja, die habe ich und ich habe das input-Feld auch 1:1 aus der originalen profil_edit übernommen, sprich:

    <input style="margin-bottom:2px;" name="email" value="{email}" /><input type="hidden" name="aemail" value="{email}" />


    Jetzt habe ich gerade auch nochmal vorsichtshalber kontrolliert, ob denn die E-Mail-Änderng klappt und diese klappr.

    Aaaaaaaaaaahhhhhhhh, wenn ich nichtschon bekloppt wäre, würde ich es gleich werden. grumml
    Bombing For Peace Is Like Fu**ing For Virginity !!!
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Jetzt könntest Du mal per Firebug im Firefox (oder Entwickler-Konsole) schauen, was beim POST alles mitgesendet wird.
    Ansonsten gehen mir langsam die Ideen aus...
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    CiSeN Mitglied
    Registriert seit
    06.01.2010
    Beiträge
    58
    Beitragswertungen
    1 Beitragspunkte
    Oha, jetzt verlangst du aber was von mir... wie funktioniert das denn genau? :/
    Bombing For Peace Is Like Fu**ing For Virginity !!!
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    OK also nehmen wir mal Firefox als Browser:
    Im geöffneten Browser gehts Du oben auf Extras->Add-ons.
    Links auf Erweiterungen, dann oben rechts im Feld mit Alle Add-ons durchsuchen gibst Du Firebug ein.
    Wenn gefunden, klickst Du bei Firebug auf Installieren.
    nach nem Browser-Neustart kannst Du jetzt mit F12 das Tool ein-und ausschalten.
    Wenn Du jetzt zb nachschauen möchtest, was beim POST übergeben wird, aktivierst Du den Reiter Netzwerk. Wenn Du jetzt den POST abschickst, erscheint im Fenster unten zunächst Mal die url, an die gepostet wurde.
    Wenn Du vor der url das Plus-Zeichen zum aufklappen klickst, siehst Du weitere Infos (Parameter/Header/POST/Antwort/HTML/Cache/Cookies).
    Wenn Du POST anklickst, zeigt es Dir unter Anderem den Inhalt der Variable $_POST. Aber Du mußt Dich beeilen, denn Du hast dafür nicht mehr Zeit, als die Weiterleitung wartet (meist 3 Sekunden). Kannst aber für diesen Zweck die Zeit in der entsprechenden php-File hochsetzen...
    wd('index.php?user-profile', 'User gelöscht', 3);

    Die Zahl am Schluss gibt die Dauer in Sekunden wieder, bis man weitergeleitet wird. Manchmal taucht keine Zahl auf, dann schreibst Du sie einfach wie gezeigt dahinter.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    1 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    CiSeN Mitglied
    Registriert seit
    06.01.2010
    Beiträge
    58
    Beitragswertungen
    1 Beitragspunkte
    Moah danke, jetzt hab ich's auch gelöst bekommen... Es fehlte der bezug zu der email in der htm datei... Ich hab jetzt einfach mal das e-mail feld mit in die datei gepackt und *zack* schon wurde die email in usercheck eingetragen

    So, mein problem hat sich somit in luft aufgelöst! DANKE dir dir nochmal für die ganzen tipps und ein RIESIGES DANKE wegen der erklärung zu firebug!

    Den daumen hoch hast du dir damit redlich gesichert lächeln


    Zuletzt modifiziert von CiSeN am 03.08.2016 - 20:14:47
    Bombing For Peace Is Like Fu**ing For Virginity !!!
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten