Вход Регистрация
Файл: modules/profile/email.php
Строк: 163
<?
if(!defined('SHCMS_ENGINE')) {
    die( 
"Неправильное действие" );
}
    
//Обработка EMAIL Адреса
    
if(isset($_POST['submit_email'])) {
            
$nemail filter_inputINPUT_POST'new_email'FILTER_SANITIZE_EMAIL );
            
$nemail filter_var$nemailFILTER_VALIDATE_EMAIL );
            
$aemail filter_inputINPUT_POST'act_email'FILTER_SANITIZE_EMAIL );
            
$aemail filter_var$aemailFILTER_VALIDATE_EMAIL );    
            
$password filter_input(INPUT_POST'password'FILTER_SANITIZE_STRING);            
        
        
//Проверка на совпадений email`a
        
if($nemail != $aemail) {
            echo 
engine::error(Lang::__('Введенные e-mail адреса не совпадают.'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');
            exit;
        }
        if( empty( 
$aemail ) or strlen$aemail ) > 50 OR @countexplode'@',$aemail ) ) != ) { 
            
            echo 
engine::error(Lang::__('Введенный Email неверный'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');
            exit;
        }
        
        
//Проверяем введен ли пароль
        
if(empty($password)) {
            echo 
engine::error(Lang::__('Не введен пароль'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');
            exit;
        }
        
        if(
strlen($password) < 5) {
        
            echo 
engine::error(Lang::__('Пароль должен быть выше 5 символов'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');
            exit;
            
        } 
            
$row $db->super_query"SELECT COUNT(*) as count FROM `users` WHERE email = '$aemail'" );
        
            if( 
$row['count'] ) { 
                echo 
engine::error(Lang::__('Введенный Email уже существует'));
                echo 
engine::home(array(Lang::__('Назад')),'?act=email');
                exit;
            }            
        
//Кадировка
        
$shgen engine::shgen($password);

        
//Проверка на правильность пароля
        
if($shgen != $users['password']) {
            echo 
engine::error(Lang::__('Неверный текущий пароль'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');
            exit;
        }

            
$mysql $db->query("UPDATE `users` SET `new_email` = '".$db->safesql($aemail)."' WHERE `id` = ".$id_user."");
            if(
$mysql == true) {
                   
$mail = new Mail($users['email']); // Создаём экземпляр класса
                
$mail->setFromName("SHCMS Engine"); // Устанавливаем имя в обратном адресе
                
$mail->send($users['email'], "Информация о смене Email адреса",
                
"Здравствуйте, ".$users['nick']."!<br/>
                Вы получили это письмо от  http://"
.$_SERVER['HTTP_HOST'].", потому что запросили изменение E-mail.<br/>
                <hr/>
                Инструкция по активации
                <hr/>
                Вам необходимо будет активировать изменение e-mail адреса, это необходимо для проверки того, что это действие сделали именно вы. Также это требуется для защиты от нежелательных злоупотреблений и спама.<br/>
                Введите указанные ниже ID пользователя и код активации (не пароль!) в соответствующие поля.<hr/>
                
                <b>ID пользователя:</b> "
.$users['id']."<br/>
                <b>Ключ активации: </b> "
.$users['key']."<br/>
                
                "
);
                
header('Location: ?act=act_email');
                exit;
            }else {
                echo  
engine::error(Lang::__('Ошибка при смене E-mail адреса'));
                echo 
engine::home(array(Lang::__('Назад')),'?act=email');    
                exit;                
            }
    }
    
//Обработка пароля 
    
if(isset($_POST['submit_pass'])) {
            
            
$password1 filter_input(INPUT_POST'password'FILTER_SANITIZE_STRING);
            
$password filter_input(INPUT_POST'new_pass'FILTER_SANITIZE_STRING);
            
$password2 filter_input(INPUT_POST'act_pass'FILTER_SANITIZE_STRING);         
        
        
//Проверяем введен ли пароль
        
if(empty($password1)) {
            echo 
engine::error(Lang::__('Не введен пароль'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');
            exit;
        }
        
//Кадировка в md5
        
$shgen1 engine::shgen($password1);

        
//Проверка на правильность пароля
        
if($shgen1 != $users['password']) {
            echo 
engine::error(Lang::__('Неверный текущий пароль'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');
            exit;
        }
        
        
//Сравниваем на совпадение паролей
        
if($password != $password2) {
            echo 
engine::error(Lang::__('Введенные пароли должны быть одинаковы'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');
            exit;        
        }
        
        
//Проверка пароля на допустимость символов
        
if (preg_match("/[^da-zA-Z_]+/"$password)){
               echo 
engine::error(Lang::__('В пароле присутствуют недопустимые символы'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');            
            exit;
        }
        
//Проверяем на допустимость органиченных символов
        
if(mb_strlen($password) < 5) {
               echo 
engine::error(Lang::__('Недопустимая длина пароля'));
            echo 
engine::home(array(Lang::__('Назад')),'?act=email');            
            exit;
        }
        
        
$shgenk engine::shgen($password);
    
        
$mysql $db->query("UPDATE `users` SET `new_pass` = '".$db->safesql($shgenk)."' WHERE `id` = '".$users['id']."'");
            if(
$mysql == true) {
                   
$mail = new Mail($users['email']); // Создаём экземпляр класса
                
$mail->setFromName("SHCMS Engine"); // Устанавливаем имя в обратном адресе
                
$mail->send($users['email'], "Информация о смене Пароля",
                
"Здравствуйте, ".$users['nick']."!<br/>
                Вы получили это письмо от  http://"
.$_SERVER['HTTP_HOST'].", потому что запросили изменение Пароля.<br/>
                <hr/>
                Инструкция по активации
                <hr/>
                Вам необходимо будет активировать изменение пароля, это необходимо для проверки того, что это действие сделали именно вы. Также это требуется для защиты от нежелательных злоупотреблений и спама.<br/>
                Введите указанные ниже код активации (не пароль!) в соответствующие поля.<hr/>
                
                <b>Ключ активации: </b> "
.$users['key']."<br/>
                
                "
);
                
header('Location: ?act=act_pass');
                exit;
            }else {
                echo  
engine::error(Lang::__('Ошибка при смене Пароля'));
                echo 
engine::home(array(Lang::__('Назад')),'?act=email');    
                exit;                
            }        
        
    }

    
//Информация необходимаЯ
    
echo '<div class="subpost">Вы можете оставить поле пустым, если не хотите обновлять его. Например, вы можете изменить ваш e-mail адрес без заполнения поля 'Пароль' в конце.</div>';
    echo 
'<div class="mainname">'.Lang::__('Изменение e-mail адреса').'</div>';
    echo 
'<div class="mainpost">';
    if(!
$users['key']) {
        echo 
engine::error(Lang::__('Для смени Email адреса необходим "Ключ активации"'));
        echo 
'<div class="subpost">Ключ дается сразу после регистрации на сайте если он у вас отсутствует то обратитесь к администратору сайта!</div>';
        echo 
engine::home(array(Lang::__('Назад')),'?act=edit_profile');
        exit;
    }else {
    
//Действующий email адрес пользователя
    
echo '<b>'.Lang::__('Ваш текущий e-mail адрес:').'</b> '.$users['email'].'<br/><br/>';
        
//Форма смены email адреса
        
$form = new form('?act=email');
        
//Новый email адрес
        
$form->input(Lang::__('Введите новый e-mail адрес:'),'new_email','text');
        
//Подтвержение email адреса
        
$form->input(Lang::__('Повторите новый e-mail адрес'),'act_email','text');
        
//Действующий пароль пользователя
        
$form->input(Lang::__('Текущий пароль'),'password','password');
        
$form->text('<br/><div class="submit">');
        
//Сохраняем
        
$form->submit(Lang::__('Сохранить'),'submit_email');
        
$form->text('</div>');
        
$form->display();
    }    
    echo 
'</div>';
    
//Новый пароль
    
echo '<div class="mainname">'.Lang::__('Новый пароль').'</div>';
    echo 
'<div class="mainpost">';
        
$form = new form('?act=email');
        
//Действующий пароль пользователя
        
$form->input(Lang::__('Текущий пароль'),'password','password');
        
//Новый пароль
        
$form->input(Lang::__('Введите ваш НОВЫЙ пароль'),'new_pass','password');
        
//Подтвержение нового пароля
        
$form->input(Lang::__('Подтверждение нового пароля'),'act_pass','password');
        
$form->text('<br/><div class="submit">');
        
//Сохраняем
        
$form->submit(Lang::__('Сохранить'),'submit_pass');
        
$form->text('</div>');
        
$form->display();
    echo 
'</div>';
    
    echo 
engine::home(array(Lang::__('Назад'),'/modules/profile.php?act=edit_profile'));
Онлайн: 0
Реклама