Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Strategius

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

Recommended Posts

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

$_SERVER['HTTP_REFERER']

  • Upvote 1

Share this post


Link to post
Share on other sites
$_SERVER['HTTP_REFERER']

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

 

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

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

Edited by Strategius

Share this post


Link to post
Share on other sites

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

 

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

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

\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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

С 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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...