Автор Тема: Редирект после входа на форум в том место откуда входили  (Прочитано 490 раз)

kak2z

  • Administrator
  • Full Member
  • *****
  • Сообщений: 113
    • Просмотр профиля
Редирект после входа на форум в том место откуда входили
файл LogInOut.php
/*
* Return to the entry point.
* fix by kak2z
*/
//проверяем на существования реффера
if(!empty($_SERVER['HTTP_REFERER'])){
//страницы с get параметрами на которые можно возвращаться после авторизации
$allow_get = array(
'board' => 0,
'topic' => 0,
);
//парсим урл реффера
$parse_url = parse_url($_SERVER['HTTP_REFERER']);
if(!empty($parse_url['query'])){
//парсим запрос содержащийся в урле реффера
parse_str($parse_url['query'], $url_get);
//сравниваем массивы по ключам
$result = array_intersect_key($allow_get, $url_get);
//если есть совпадение с разрешенными get параметрами то создаем ссылку для редиректа
if(!empty($result)){
//убираем scripturl
$return_url = str_replace($scripturl . '?', '', $_SERVER['HTTP_REFERER']);
if($return_url != $_SERVER['HTTP_REFERER']){
//указываем новый логин_урл
$_SESSION['login_url'] = $return_url;
}
}
}
}


// Strike!  You're outta there!

kak2z

  • Administrator
  • Full Member
  • *****
  • Сообщений: 113
    • Просмотр профиля
 а лучше и проще вот так вот... вверху я слишком заморочился..

/*
* Return to the entry point.
* fix by kak2z
*/
if(!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'dlattach') === false && preg_match('~(board|topic)[=,]~', $_SERVER['HTTP_REFERER']) != 0){
$return_url = str_replace($scripturl . '?', '', $_SERVER['HTTP_REFERER'], $count);
if($count == 1){
$_SESSION['login_url'] = $return_url;
}
}

// Strike!  You're outta there!