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(); }
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])); } }