Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
1

Мод входа - редирект на предыдущую страницу

Wasja

  • Истенный Атомовод
  • Юзер
  • 397
  • Репутация:19 
  • Предупреждения: 0 
  • Регистрация:
    11 Ноя 2010
#1
Мод обеспечивает возвращение пользователя на страницу, с которой осуществлялся вход (при использовании формы, встроенной в дизайн), или на страницу, с которой был осуществлен переход на страницу входа.
Для установки мода необходимо в файле "\modules\users\index.php":
1) В функции "login_form" после строки
Code:
$html = $html . $this->_replaceMarkets($markets, $tpl);
добавить строки
Code:
$referer = (!empty($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : '';
        preg_match('#^http://([^/]+)#', $referer, $match);
        if (!empty($referer) && !empty($match[1]) && $match[1] == $_SERVER['SERVER_NAME']) {
            $referer = str_replace($match[0], '', $referer);
            $match = explode('/', $referer);
            if (empty($match[1]) || empty($match[2]) || ($match[1] != 'users' && $match[2] != 'login_form')) {
                $_SESSION['login_referer'] = $referer;
            }
        }
2) В функции "login" заменить строки
Code:
// Авторизация прошла успешно - перенаправляем посетителя на главную страницу
        redirect('/');
на строки
Code:
$referer = (!empty($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : '';
        preg_match('#^http://([^/]+)#', $referer, $match);
        if (!empty($referer) && !empty($match[1]) && $match[1] == $_SERVER['SERVER_NAME']) {
            $referer = str_replace($match[0], '', $referer);
            $match = explode('/', $referer);
            if (empty($match[1]) || empty($match[2]) || ($match[1] != 'users' && $match[2] != 'login_form')) {
                redirect($referer);
            } else if (isset($_SESSION['login_referer'])) {
                redirect($_SESSION['login_referer']);
            } else {
                redirect('/');
            }
        } else {
            redirect('/');
        }
        if (isset($_SESSION['login_referer'])) unset($_SESSION['login_referer']);

Отредактировано автором 2 Мар 2011

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#2
Очередной мод от Wasja ))) Это к стати, в туду листе есть, так что в 1.0 версии тоже будет реализовано по-умолчанию:)

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

Wasja

  • Истенный Атомовод
  • Юзер
  • 397
  • Репутация:19 
  • Предупреждения: 0 
  • Регистрация:
    11 Ноя 2010
#3
Drunya, в Fapos 0.9.93 Wasja edition уже реализовано. :)

1
Сейчас online: 40. Зарегистрированных: 1. Гостей: 39.