<?php 
/** 
 * Extended User Profile 
 * 
 * You may not change or alter any portion of this comment or credits 
 * of supporting developers from this source code or any supporting source code 
 * which is considered copyrighted (c) material of the original comment or credit authors. 
 * This program is distributed in the hope that it will be useful, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 * 
 * @copyright       (c) 2000-2016 XOOPS Project (www.xoops.org) 
 * @license             GNU GPL 2 (http://www.gnu.org/licenses/gpl-2.0.html) 
 * @package             profile 
 * @since               2.3.0 
 * @author              Taiwen Jiang <[email protected]> 
 */ 
 
$xoopsOption['pagetype'] = 'user'; 
include __DIR__ . '/header.php'; 
/* @var XoopsConfigHandler $config_handler */ 
$config_handler             = xoops_getHandler('config'); 
$GLOBALS['xoopsConfigUser'] = $config_handler->getConfigsByCat(XOOPS_CONF_USER); 
 
if (!$GLOBALS['xoopsUser'] || $GLOBALS['xoopsConfigUser']['allow_chgmail'] != 1) { 
    redirect_header(XOOPS_URL . '/modules/' . $GLOBALS['xoopsModule']->getVar('dirname', 'n') . '/', 2, _NOPERM); 
} 
 
$GLOBALS['xoopsOption']['template_main'] = 'profile_email.tpl'; 
include $GLOBALS['xoops']->path('header.php'); 
 
if (!isset($_POST['submit']) || !isset($_POST['passwd'])) { 
    //show change password form 
    include_once $GLOBALS['xoops']->path('class/xoopsformloader.php'); 
    $form = new XoopsThemeForm(_PROFILE_MA_CHANGEMAIL, 'emailform', $_SERVER['REQUEST_URI'], 'post', true); 
    $form->addElement(new XoopsFormPassword(_US_PASSWORD, 'passwd', 15, 50), true); 
    $form->addElement(new XoopsFormText(_PROFILE_MA_NEWMAIL, 'newmail', 15, 50), true); 
    $form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit')); 
    $form->assign($GLOBALS['xoopsTpl']); 
} else { 
    $myts   = MyTextSanitizer::getInstance(); 
    $pass   = @$myts->stripSlashesGPC(trim($_POST['passwd'])); 
    $email  = @$myts->stripSlashesGPC(trim($_POST['newmail'])); 
    $errors = array(); 
    if (!password_verify($oldpass, $GLOBALS['xoopsUser']->getVar('pass', 'n'))) { 
        $errors[] = _PROFILE_MA_WRONGPASSWORD; 
    } 
    if (!checkEmail($email)) { 
        $errors[] = _US_INVALIDMAIL; 
    } 
 
    if ($errors) { 
        $msg = implode('<br>', $errros); 
    } else { 
        //update password 
        $GLOBALS['xoopsUser']->setVar('email', trim($_POST['newmail'])); 
        /* @var XoopsMemberHandler $member_handler */ 
        $member_handler = xoops_getHandler('member'); 
        if ($member_handler->insertUser($GLOBALS['xoopsUser'])) { 
            $msg = _PROFILE_MA_EMAILCHANGED; 
 
            //send email to new email address 
            $xoopsMailer =& xoops_getMailer(); 
            $xoopsMailer->useMail(); 
            $xoopsMailer->setTemplateDir($GLOBALS['xoopsModule']->getVar('dirname', 'n')); 
            $xoopsMailer->setTemplate('emailchanged.tpl'); 
            $xoopsMailer->assign('SITENAME', $GLOBALS['xoopsConfig']['sitename']); 
            $xoopsMailer->assign('ADMINMAIL', $GLOBALS['xoopsConfig']['adminmail']); 
            $xoopsMailer->assign('SITEURL', XOOPS_URL . '/'); 
            $xoopsMailer->assign('NEWEMAIL', $email); 
            $xoopsMailer->setToEmails($email); 
            $xoopsMailer->setFromEmail($GLOBALS['xoopsConfig']['adminmail']); 
            $xoopsMailer->setFromName($GLOBALS['xoopsConfig']['sitename']); 
            $xoopsMailer->setSubject(sprintf(_PROFILE_MA_NEWEMAIL, $GLOBALS['xoopsConfig']['sitename'])); 
            $xoopsMailer->send(); 
        } else { 
            $msg = implode('<br>', $GLOBALS['xoopsUser']->getErrors()); 
        } 
    } 
    redirect_header(XOOPS_URL . '/modules/' . $GLOBALS['xoopsModule']->getVar('dirname', 'n') . '/userinfo.php?uid=' . $GLOBALS['xoopsUser']->getVar('uid'), 2, $msg); 
} 
 
$xoBreadcrumbs[] = array('title' => _PROFILE_MA_CHANGEMAIL); 
 
include __DIR__ . '/footer.php'; 
 
 |