Esempio n. 1
0
 /**
  * Обратная связь
  */
 public function contact()
 {
     $request = Request::input('request');
     if (Request::isMethod('post')) {
         $email = Request::input('email');
         $name = Request::input('name');
         $message = Request::input('message');
         $captcha = Request::input('captcha');
         $errors = [];
         if (!App::isMail($email)) {
             $errors['email'] = 'Неверный формат адреса email';
         }
         if (!$name) {
             $errors['name'] = 'Небходимо заполнить имя отправителя';
         }
         if (!$message) {
             $errors['message'] = 'Необходимо заполнить текст сообщения';
         }
         if ($captcha != $_SESSION['captcha']) {
             $errors['captcha'] = 'Неверный проверочный код';
         }
         if (!$errors) {
             $message = nl2br(e($message));
             $to = [env('SITE_EMAIL') => env('SITE_ADMIN')];
             $subject = 'Новое письмо с сайта';
             $body = App::view('mailer.contact', compact('subject', 'message', 'request'), true);
             $headers['from'] = [$email => $name];
             // Отправка письма
             App::sendMail($to, $subject, $body, $headers);
             App::setFlash('success', 'Письмо успешно отправлено!');
             App::redirect('/');
         } else {
             App::setFlash('danger', $errors);
             App::setInput($_POST);
             App::redirect('/contact');
         }
     }
     App::view('pages.contact', compact('request'));
 }
Esempio n. 2
0
 /**
  * Восстановление пароля
  */
 public function recovery()
 {
     if (User::check()) {
         App::abort(403);
     }
     if (Request::isMethod('post')) {
         $email = Request::input('email');
         $captcha = Request::input('captcha');
         $errors = [];
         if (!App::isMail($email)) {
             $errors['email'] = 'Неверный формат адреса email';
         }
         if ($captcha != $_SESSION['captcha']) {
             $errors['captcha'] = 'Неверный проверочный код';
         }
         if (!$errors && !($user = User::find_by_email($email))) {
             $errors['email'] = 'Пользователь не найден';
         }
         if (!$errors) {
             $user->reset_code = str_random(mt_rand(35, 40));
             $user->save();
             $reset_link = 'http://' . Setting::get('sitelink') . '/reset?key=' . $user->reset_code;
             $message = 'Здравствуйте, ' . e($user->login) . '<br />Вами была произведена операция по восстановлению пароля на сайте ' . Setting::get('sitelink') . '<br />Для того, чтобы восстановить пароль, необходимо нажать на кнопку восстановления<br /><br />Если это письмо попало к вам по ошибке или вы не собираетесь восстанавливать пароль, то просто проигнорируйте его';
             $to = [$user->email => $user->login];
             $subject = 'Восстановление пароля';
             $body = App::view('mailer.recovery', compact('subject', 'message', 'reset_link'), true);
             // Отправка письма
             App::sendMail($to, $subject, $body);
             App::setFlash('success', 'Письмо с инструкцией выслано вам на email!');
         } else {
             App::setFlash('danger', $errors);
             App::setInput($_POST);
         }
         App::redirect('/recovery');
     }
     App::view('users.recovery');
 }