Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

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

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

 

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

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

  • Автор

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

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

$_SERVER['HTTP_REFERER']

  • 3 недели спустя...
  • Автор
$_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'] ) );

  • Автор

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

\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'] );

  • Автор

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

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

Как вариант, 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'] );

  • Автор

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

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.