imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 26.08.2004, 15:20     # 1
NarcomBAT
Guest
 
Сообщения: n/a

Как лучше сделать redirect c login form

есть сайт на которм нужна авторизация. например как на этом форуме
т.е. вы можете ходить по сайту и влюбой момент можете залогиниться при этом Вас бросает на login.php а затем при успешной авторизации обратно на
ту страницу на корой Вы были раньше.

вопрос какой способ лучше использовать:
1. смотреть в global $_SERVER['HTTP_REFERER']
2. создать session например $_SESSION['REFR'] и хранить там имя предудущей страницы
3. использовать JavaScript что то типа document.referer

да и еще вопрос какой способ использует vBulletin?
 
Старый 26.08.2004, 15:40     # 2
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
А собственно разница-то какая, главное чтобы все работало правильно. Не все сервера станавливают правильно $_SERVER['HTTP_REFERER'], поэтому надежнее хранить откуда пришел по своей переменной: или в сессии, как указали в примере, или просто передавать переменную... На JS тоже лучше особенно не рассчитывать - а вдруг он отключен у пользователя?.

Получается что 2) лучше всего (и его вариации)
Цитата:
NarcomBAT:
да и еще вопрос какой способ использует vBulletin?
Дак посмотрите в исходниках.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 26.08.2004, 17:47     # 3
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
Цитата:
Сообщение от NarcomBAT
есть сайт на которм нужна авторизация. например как на этом форуме
т.е. вы можете ходить по сайту и влюбой момент можете залогиниться при этом Вас бросает на login.php а затем при успешной авторизации обратно на
ту страницу на корой Вы были раньше.

вопрос какой способ лучше использовать:
1. смотреть в global $_SERVER['HTTP_REFERER']
2. создать session например $_SESSION['REFR'] и хранить там имя предудущей страницы
3. использовать JavaScript что то типа document.referer

да и еще вопрос какой способ использует vBulletin?
Session ispolsuj, prosto i nadeschno
shuron вне форума  
Старый 27.08.2004, 13:06     # 4
NarcomBAT
Guest
 
Сообщения: n/a

vBulletin использует $_SERVER['HTTP_REFERER']
в файле login.php используется переменная $url как адрес referer

как я понял она определяется в файле includes\init.php
вот кусок кода лде она определяется
vBulletin version 3.0.0, includes\init.php, start line 319

PHP код:
define('REFERRER'$_SERVER['HTTP_REFERER']);

define('SAPI_NAME'php_sapi_name());

if (empty(
$_REQUEST['url']))
{
    
$url REFERRER;
}
else
{
    if (
$_REQUEST['url'] == REFERRER)
    {
        
$url 'index.php';
    }
    else
    {
        
$url = &$_REQUEST['url'];
    }
}
if (
$url == SCRIPTPATH OR empty($url))
{
    
$url 'index.php';
}
$url xss_clean($url);

define ('REFERRER_PASSTHRU'$url); 
одно только вот непонятно зачем сравнивать $url и SCRIPTPATH
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 16:43.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.