Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

Добрый день. Есть такой хук 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, спасибо огромное, именно так работает, как нужно!

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.