Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Strategius

Редирект при авторизации

Рекомендованные сообщения

Добрый день. Есть такой хук Redirect back after Login and Logout, он перенаправляет пользователей на страницу, на которой они были до авторизации/выхода из аккаунта.

 

Но его сейчас уже не найти. Возможно ли сделать такой фикс простым способом, как здесь, например? http://ipbskins.ru/forum/topic15102.html#entry101349

Поделиться сообщением


Ссылка на сообщение

@Haktar, это немного не то, здесь нужно вводить адрес редиректа, а надо, чтобы просто оставался на той же странице после авторизации/выхода из учетной записи.

Поделиться сообщением


Ссылка на сообщение

Смотрите в сторону

$_SERVER['HTTP_REFERER']

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
01/06/18 09:21 (изменено)
$_SERVER['HTTP_REFERER']

Наподобие такого скрипта?

 

<?php header('Location: '.$_SERVER["HTTP_REFERER"]);?>

А куда его нужно добавить?

Изменено пользователем Strategius

Поделиться сообщением


Ссылка на сообщение

Наподобие такого скрипта?

 

Да просто $_SERVER['HTTP_REFERER'] без всяких хедеров.

Из поста из темы, ссылка на которую дана в стартовом посте.

$this->registry->getClass('output')->redirectScreen( $return[0], $_SERVER['HTTP_REFERER'] ?: $this->registry->output->formatUrl( $this->settings['board_url'] ) );

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

А куда добавить этот код, чтобы при выходе пользователя перекидывало не на главную страницу, а он оставался на той же?

Поделиться сообщением


Ссылка на сообщение

\admin\applications\core\modules_public\global\login.php

		return array( 'redirect', $this->lang->words['thanks_for_logout'], $this->settings['board_url'] );

 

		return array( 'redirect', $this->lang->words['thanks_for_logout'], $_SERVER['HTTP_REFERER'] ?: $this->settings['board_url'] );

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Работает, спасибо большое! А можно как-нибудь поставить исключение для страниц, доступа к которым нет у гостей? Например, чтобы при выходе из аккаунта на странице профиля перенаправляло на главную?

Поделиться сообщением


Ссылка на сообщение

А можно как-нибудь поставить исключение для страниц, доступа к которым нет у гостей?

Как вариант, http://php.net/manual/ru/function.get-headers.php

Сравниваете первый элемент массива.

Поделиться сообщением


Ссылка на сообщение

С get_headers думаю newbie имел ввиду получить код статуса реферера и, если он не 200 то туда доступ запрещен гостям.

 

		$headers = $_SERVER['HTTP_REFERER'] ? get_headers( $_SERVER['HTTP_REFERER'] ) : '';
	return array( 'redirect', $this->lang->words['thanks_for_logout'], ( isset( $headers[0] ) AND substr( $headers[0], 9, 3 ) == 200 ) ? $_SERVER['HTTP_REFERER'] : $this->settings['board_url'] );

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

@siv1987, спасибо огромное, именно так работает, как нужно!

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...