public function unsubscribeAction($AData = null)
 {
     if (empty($AData)) {
         Redirect('/');
     }
     // только залогинившиеся пользователи могут отписаться от рассылки
     if (!isset($_SESSION['auth']) || empty($_SESSION['auth']['email'])) {
         $_SESSION['login_redirect'] = '/email/unsubscribe/' . $AData;
         Redirect('/auth/login');
     }
     $params = explode('||', Decrypt_Blowfish($AData, EMAIL_BLOWFISHGUID));
     try {
         if (Emails_IsNotifyRecipientActive($params[0], $params[1], $_SESSION['auth']['email'])) {
             Emails_DeleteNotifyRecipient($params[0], $params[1], $_SESSION['auth']['email']);
             return AddAlertMessage('success', 'Подписка на рассылку уведомлений была отменена!', '/');
         } else {
             return AddAlertMessage('info', 'Вы уже не подписаны на данную рассылку!', '/');
         }
     } catch (Exception $exc) {
         return AddAlertMessage('danger', 'Ошибка при отмене подписки на рассылку уведомлений!', '/');
     }
 }
 public function resetpasswordAction()
 {
     if (!Tools::isPost()) {
         // если открыли форму ссылкой из письма
         $Email = GETAsStrOrDef('m', '');
         $PasswordHash = GETAsStrOrDef('h', '');
         if (empty($Email) || empty($PasswordHash)) {
             return AddAlertMessage('danger', 'Неверный запрос на восстановление пароля!', '/');
         }
         $Email = empty($Email) ? '' : Decrypt_Blowfish($Email);
         $PasswordHash = empty($PasswordHash) ? '' : Decrypt_Blowfish($PasswordHash);
         $sql = "select PasswordHash " . "from Users " . "where (Email = '{$Email}');";
         $user = $this->db->query($sql)->fetch();
         if ($PasswordHash != $user['PasswordHash']) {
             return AddAlertMessage('danger', 'Неверный код восстановления пароля!', '/');
         }
         $this->view->setVars(array('Email' => $Email, 'EncryptedEmail' => GETAsStrOrDef('m', ''), 'EncryptedPasswordHash' => GETAsStrOrDef('h', '')));
     } else {
         $NewPassword = POSTStrAsSQLStr('password');
         // если нажали на кнопку "Изменить пароль"
         if ($NewPassword != POSTStrAsSQLStr('confirmpassword')) {
             // проверка на всякий случай, но основная работа будет в validation.js ($('#ResetPasswordBtn').click(function(){)
             return AddAlertMessage('danger', 'Пароли не совпадают', '/auth/resetpassword?m=' . $_POST['EncryptedEmail'] . '&h=' . $_POST['EncryptedPasswordHash']);
         }
         $vEmail = Decrypt_Blowfish(POSTStrAsSQLStr('EncryptedEmail'));
         $sql = "update Users set PasswordHash = '" . EncryptPassword($NewPassword) . "' where Email = '{$vEmail}';";
         $this->db->exec($sql);
         return AddAlertMessage('success', 'Пароль успешно изменен!', '/');
     }
     $this->view->breadcrumbs = array(array('url' => '/auth/password', 'title' => 'Изменение пароля'));
     $this->view->meta = array('meta_title' => 'Изменение пароля', 'meta_description' => 'Изменение пароля', 'meta_keywords' => '');
     $this->view->generate();
 }
Exemplo n.º 3
0
function TryToLoginUsingCookie()
{
    $CookieName = "unvusrid";
    if (isset($_SESSION['unvusrid'])) {
        // Продлить срок жизни cookies до 60 дней
        SetCookie($CookieName, Encrypt_Blowfish($_SESSION['unvusrid']), time() + 3600 * 24 * 60, "/");
        // время жизни 60 дней
        unset($_SESSION['unvusrid']);
    }
    if (isset($_COOKIE[$CookieName]) && GetUserID() == 0) {
        LoginUsingUniversalID(Decrypt_Blowfish($_COOKIE[$CookieName]));
    }
}