Example #1
0
 private function _processForgetForm()
 {
     $aMessages = array('info' => array(), 'errors' => array());
     $t = $GLOBALS['rtti']->getTable('auth_users');
     if (CUtils::_sessionVar('c_sec_code') != md5(CUtils::_postVar('captcha') . __CAPTCHA_HASH)) {
         $aMessages['errors'][] = $this->_aErrors['incorrect_securecode'];
     } else {
         $sLogin = CUtils::_postVar('login');
         if ($aUser = $GLOBALS['rtti']->getItem('auth_users', "email='{$sLogin}'")) {
             $sNewPassword = CUtils::genKey(6);
             $sUpdate = "password='******'";
             if ($t->update($sUpdate . ", change_date = NOW() WHERE email='" . $sLogin . "'")) {
                 $this->smarty->assign('Login', $sLogin);
                 $this->smarty->assign('NewPassword', $sNewPassword);
                 $this->_sendMail('Восстановление пароля в магазине Цвета жизни', $this->smarty->fetch('service/auth/' . $this->props['lang'] . '/forget.mail.tpl'), array($sLogin));
                 $aMessages['info'][] = $this->_aInfo['send_password'];
             }
         } else {
             $this->smarty->assign('login', $sLogin);
             $aMessages['errors'][] = $this->_aErrors['no_user'];
         }
     }
     return $aMessages;
 }
Example #2
0
 function forgot()
 {
     global $MAIN_EMAIL;
     if (CUtils::_postVar('submited') && (CUtils::_postVar('fuser') || CUtils::_postVar('femail'))) {
         $user = array();
         if (CUtils::_postVar('fuser') != '') {
             $user = $GLOBALS['db']->getItem('users_users', "SELECT * FROM users_users WHERE syslogin='******'fuser') . "'");
             if (empty($user)) {
                 $this->message['type'] = 'error';
                 $this->message['text'] = 'Не найден пользователь с указанным <b>логином</b>!';
             }
         }
         if (CUtils::_postVar('femail') != '' && empty($user)) {
             $user = $GLOBALS['db']->getItem('users_users', "SELECT * FROM users_users WHERE email='" . CUtils::_postVar('femail') . "'");
             if (empty($user)) {
                 $this->message['type'] = 'error';
                 $this->message['text'] = 'Не найден пользователь с указанным <b>e-mail</b>!';
             }
         }
         if (!empty($user)) {
             $key = CUtils::genKey(32);
             inc_lib('libmail.php');
             $msg = new Mail();
             $msg->From($MAIN_EMAIL);
             $msg->Subject('Новые регистрационные данные. Сайт ' . $_SERVER['SERVER_NAME']);
             $body = 'Информационное сообщение сайта ' . $_SERVER['SERVER_NAME'] . "\n";
             $body .= '------------------------------------------' . "\n";
             $body .= 'Вы запросили ваши регистрационные данные.' . "\n\n";
             $body .= 'Ваша регистрационная информация:' . "\n";
             $body .= 'ID пользователя: ' . $user['id'] . "\n";
             $body .= 'Логин: ' . $user['syslogin'] . "\n\n";
             $body .= 'Для смены пароля перейдите по следующей ссылке:' . "\n";
             $body .= 'http://' . $_SERVER['SERVER_NAME'] . '/admin/?operation=change_password&key=' . $key . "\n\n";
             $body .= 'Сообщение сгенерировано автоматически.' . "\n";
             $msg->Body($body, 'UTF-8');
             $msg->To($user['email']);
             $msg->Send();
             $GLOBALS['db']->execQuery('users_users', "UPDATE users_users SET hashkey='" . $key . "' WHERE id=" . $user['id']);
             $this->message['type'] = 'ok';
             $this->message['text'] = 'Новые параметры авторизации отправлены Вам на <b>e-mail</b>!';
         }
     }
     $this->showForgotForm();
     exit;
 }
Example #3
0
function makeArchive($fD)
{
    $my_time = time();
    $my_key = CUtils::genKey(8);
    $objResponse = new xajaxResponse();
    $objResponse->assign("archive_info", 'innerHTML', '');
    $filename = 'admin/backup/' . date('YmdHi', $my_time) . '_' . $my_key . '.tar.gz';
    $filename_sql = 'admin/backup/' . date('YmdHi', $my_time) . '_' . $my_key . '.sql';
    $filename_sql2 = 'admin/backup/' . date('YmdHi', $my_time) . '_' . $my_key . '_after_connect.sql';
    $f = fopen($GLOBALS['PRJ_DIR'] . '/' . $filename_sql2, "a");
    fwrite($f, "/*!41000 SET NAMES 'cp1251' */;");
    fclose($f);
    set_time_limit(0);
    $GLOBALS['db']->backupDB($filename_sql);
    inc_lib('tools/CArchive.php');
    $test = new gzip_file($filename);
    $test->set_options(array('basedir' => $GLOBALS['PRJ_DIR'] . '/', 'overwrite' => 1, 'level' => 5));
    $test->add_files(array("*.*"));
    //$test->exclude_files(array("admin/lib/templates_c/*.php", "*.gz"));
    $cfiles = 0;
    $sfiles = 0;
    foreach ($test->files as $key => $current) {
        if (stristr($current['name'], '.tar.gz')) {
            unset($test->files[$key]);
        } else {
            $sfiles += $current['stat'][7];
            $cfiles++;
        }
    }
    $test->create_archive();
    $text = '';
    $text .= 'Количество файлов: ' . $cfiles;
    $text .= '<br>';
    $text .= 'Размер неупакованых файлов: ' . CUtils::getSize($sfiles, 2);
    $text .= '<br>';
    $text .= 'Размер архива: ' . CUtils::getFileSize('/' . $filename, 2);
    //$text = 'test';
    @unlink($GLOBALS['PRJ_DIR'] . '/' . $filename_sql);
    @unlink($GLOBALS['PRJ_DIR'] . '/' . $filename_sql2);
    $objResponse->assign("archive_info", 'innerHTML', $text);
    $objResponse->script("hideDiv('waiting');window.location.reload()");
    return $objResponse;
}