ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Mail an Admin, wenn Member E-Mail ändert

Geschlossen
  1. #1
    User Pic
    tcrack Mitglied
    Registriert seit
    31.07.2011
    Beiträge
    46
    Beitragswertungen
    0 Beitragspunkte
    Hallo liebe ilch-Gemeinde,

    ich versuche seit Tagen folgenden Wunsch zu realisieren, was aber leider nicht klappt traurig

    Wenn ein Member seine E-Mail Adresse im Profil ändert, möchte ich gerne per Email darüber Informiert werden.

    Ich habe folgendes in die profil_edit.php und auch (abwechselnd) in die confirm.php eingefügt:

    $id    = '1'; # User Id welcher die Email erhalten soll
    $title = 'Eine E-Mailadresse wurde geändert'; # Betreff der Email
    $text  = "Hallo,\n\n soeben wurde eine Emailadresse eines Members geändert.\n\nMit freundlichen Grüssen\n\nAdministrator"; # Email Inhalt
    $email  = db_query('SELECT `email` FROM `prefix_user` WHERE `id` = ' . $id); # Email des Empfängers aus Datenbank
    icmail($email, $title, $text); # Email versenden


    Da aber sowohl in der profil_edit als auch in der confirm.php schon die Abfrage "$id" vorkommt, klappt das scheinbar nicht mit dem versenden.

    Was kann ich da machen ?

    Hier noch meine profil_edit.php
    <?php
    #   Copyright by: Manuel Staechele
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    require_once("include/contents/googlemap/config.php");
    
    $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 ) {
    
    if ( empty ($_POST['submit']) ) {
      $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,gmapkoords 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');
    	$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['GOOGLE_MAP_KEY'] = GOOGLE_MAP_KEY;
    
        $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 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 ($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'])."',
              gmapkoords = '".escape($_POST['gmapkoords'], '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('?user-8' , $fmsg  , 15 );
    
    }
    
    } else {
    		$tpl = new tpl ( 'user/login' );
    		$tpl->set_out('WDLINK', '?user-8', 0);
    }
    
    $design->footer();
    ?>


    und meine confirm.php

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    $title = $allgAr['title'].' :: User :: Confirm';
    $hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b>Confirm'.$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1);
    $design->header();
    
    $abgelaufen = time() - 172800; # 2 tage
    $abgelaufen = date('Y-m-d H:i:s',$abgelaufen);
    db_query("DELETE FROM prefix_usercheck WHERE datime < '".$abgelaufen."'");
    
    $erg = db_query("SELECT * FROM prefix_usercheck WHERE `check` = '".escape($_GET['check'], 'string')."'");
    if ( db_num_rows($erg) == 1 ) {
      $row = db_fetch_assoc($erg);
    	switch ( $row['ak'] ) {
    
    		# confirm regist
    	  case 1 :
    		  if ( 0 == db_count_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '".$row['name']."'") ) {
    			  db_query("INSERT INTO prefix_user (name,pass,recht,regist,llogin,email,status,opt_mail,opt_pm)
    			  VALUES('".$row['name']."','".$row['pass']."',-1,'".time()."','".time()."','".$row['email']."',1,1,1)");
    
    
                  $uid = db_last_id(); // ID des neuen Users
                  $sid = 1; // ID des Absenders
                  $title = 'Herzlich Willkommen beim ';
                  $txt = 'hier steht normalerweise text ';
                  sendpm($sid,$uid,$title,$txt,-1);
    
    			  echo $lang['confirmregist'];
    			} else {
    			  echo $lang['confirmregistfailed'];
    			}
    		  break;
    
    		# confirm new pass
    		case 2 :
    		  db_query("UPDATE prefix_user SET pass = '".$row['pass']."' WHERE name = BINARY '".$row['name']."'");
    		  echo $lang['confirmpassword'];
          break;
    
        # confirm new email
        case 3 :
          list ($id, $muell) = explode('||', $row['check']);
          db_query("UPDATE prefix_user SET email = '".$row['email']."' WHERE id = ". escape($id, 'integer'));
          echo $lang['confirmemail'];
          break;
    
        # ak 4 wurde besetzt fuer joinus anfragen...
        case 4 :  break;
    
        # ak 5 remove account
        case 5:
            list ($id, $muell) = explode('-remove-', $row['check']);
            if ($id != $_SESSION['authid']) {
                break;
            }
            user_remove($id);
            wd('index.php','Dein Account wurde gel&ouml;scht. Du wirst nun auf die Startseite geleitet.',7);
            break;
    	}
    	db_query("DELETE FROM prefix_usercheck WHERE `check` = '".$row['check']."'");
    } else {
      echo $lang['confirmfailure'];
    }
    
    $design->footer();
    ?>


    Thanks :-)


    verwendete ilch Version: 1.1 P
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Jens238 Mitglied
    Registriert seit
    20.03.2013
    Beiträge
    404
    Beitragswertungen
    44 Beitragspunkte
    Versuch mal so...

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
     
     
    defined ('main') or die ( 'no direct access' );
     
    $title = $allgAr['title'].' :: User :: Confirm';
    $hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b>Confirm'.$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1);
    $design->header();
     
    $abgelaufen = time() - 172800; # 2 tage
    $abgelaufen = date('Y-m-d H:i:s',$abgelaufen);
    db_query("DELETE FROM prefix_usercheck WHERE datime < '".$abgelaufen."'");
     
    $erg = db_query("SELECT * FROM prefix_usercheck WHERE `check` = '".escape($_GET['check'], 'string')."'");
    if ( db_num_rows($erg) == 1 ) {
      $row = db_fetch_assoc($erg);
        switch ( $row['ak'] ) {
     
            # confirm regist
          case 1 :
              if ( 0 == db_count_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '".$row['name']."'") ) {
                  db_query("INSERT INTO prefix_user (name,pass,recht,regist,llogin,email,status,opt_mail,opt_pm)
                  VALUES('".$row['name']."','".$row['pass']."',-1,'".time()."','".time()."','".$row['email']."',1,1,1)");
     
     
                  $uid = db_last_id(); // ID des neuen Users
                  $sid = 1; // ID des Absenders
                  $title = 'Herzlich Willkommen beim ';
                  $txt = 'hier steht normalerweise text ';
                  sendpm($sid,$uid,$title,$txt,-1);
     
                  echo $lang['confirmregist'];
                } else {
                  echo $lang['confirmregistfailed'];
                }
              break;
     
            # confirm new pass
            case 2 :
              db_query("UPDATE prefix_user SET pass = '".$row['pass']."' WHERE name = BINARY '".$row['name']."'");
              echo $lang['confirmpassword'];
          break;
     
        # confirm new email
        case 3 :
          list ($id, $muell) = explode('||', $row['check']);
          db_query("UPDATE prefix_user SET email = '".$row['email']."' WHERE id = ". escape($id, 'integer'));
          
          # Email an Admin
          $title_admin = 'Eine E-Mailadresse wurde geändert'; # Betreff der Email
          $text_admin  = "Hallo,\n\n soeben wurde eine Emailadresse eines Members geändert.\n\nMit freundlichen Grüssen\n\nAdministrator"; # Email Inhalt
          $email_admin  = db_query("SELECT `email` FROM `prefix_user` WHERE `id` = '1'"); # Email des Empfängers aus Datenbank
          $html_admin = false;
          icmail($email_admin, $title_admin, $text_admin, '',$html_admin); # Email versenden
                
          echo $lang['confirmemail'];
          break;
     
        # ak 4 wurde besetzt fuer joinus anfragen...
        case 4 :  break;
     
        # ak 5 remove account
        case 5:
            list ($id, $muell) = explode('-remove-', $row['check']);
            if ($id != $_SESSION['authid']) {
                break;
            }
            user_remove($id);
            wd('index.php','Dein Account wurde gel&ouml;scht. Du wirst nun auf die Startseite geleitet.',7);
            break;
        }
        db_query("DELETE FROM prefix_usercheck WHERE `check` = '".$row['check']."'");
    } else {
      echo $lang['confirmfailure'];
    }
     
    $design->footer();
    ?>
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    tcrack Mitglied
    Registriert seit
    31.07.2011
    Beiträge
    46
    Beitragswertungen
    0 Beitragspunkte
    Danke für deine schnelle Antwort zwinker ,

    aber leider kommt keine E-Mail bei mir an traurig
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    tcrack Mitglied
    Registriert seit
    31.07.2011
    Beiträge
    46
    Beitragswertungen
    0 Beitragspunkte
    Ist es vielleicht möglich das als PM (Persönliche Nachricht ) zu machen (an Admin) ?


    Zuletzt modifiziert von tcrack am 14.09.2014 - 16:17:12
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    tcrack Mitglied
    Registriert seit
    31.07.2011
    Beiträge
    46
    Beitragswertungen
    0 Beitragspunkte
    Hi, habe es selber mit PM geschafft lachen

        # confirm new email
        case 3 :
          list ($id, $muell) = explode('||', $row['check']);
          db_query("UPDATE prefix_user SET email = '".$row['email']."' WHERE id = ". escape($id, 'integer'));
                  $uid = 1; // ID des neuen Users
                  $sid = $_SESSION['authid']; // ID des Absenders
                  $title = 'Änderung der Email Adresse ';
                  $txt = 'Ich habe meine Email Adresse geändert ';
                  sendpm($sid,$uid,$title,$txt,0);                   
          echo $lang['confirmemail'];
          break;


    Jetzt sieht der Member im Postausgang und der Admin im Posteingang, dass die Email Adresse geändert wurde.

    Trotzdem vielen Dank zwinker

    Kann Geschlossen werden
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Jens238 Mitglied
    Registriert seit
    20.03.2013
    Beiträge
    404
    Beitragswertungen
    44 Beitragspunkte
    Wenn Du nicht willst das der Member das im Postausgang sieht,
    setz bei der $sid nicht die ID des Users der die Email ändert, sondern einfach eine 0...
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    tcrack Mitglied
    Registriert seit
    31.07.2011
    Beiträge
    46
    Beitragswertungen
    0 Beitragspunkte
    Danke für den Tipp Stern
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten