Авторизация пользователя в session

Frenk

Guest
Авторизация пользователя в session

ИТАК:
Пользователь вводит свое имя и пароль.
Далее, если все ОК, пишем:
$auth=true;
session_register(auth);
session_register(UserName);
иначе $auth=false;
На любой другой странице делаем проверку -
session_start();
if $auth ... и т.д.
Если $auth=false - требуем авторизации.
Вопрос: В этом случае к любой странице можно обратиться так - blabla.php?auth=true - все, нашу немудреную защиту обошли.
Как быть? Ведь не хочется в сесии таскать еще и пароль и постоянно делать проверку.
 

tony2001

TeaM PHPClub
PHP:
if ($_SESSION['auth']===true) {
//....
}
з.ы. для тех, кто не понял зачем отключают register_globals - обратите внимание на этот топик.
 

Frenk

Guest
Хм... Ясно. Но если register_globals включен?
Отключать ведь придется, верно? И все обращения к переменным в сесии периписывать.
 

tony2001

TeaM PHPClub
да нет, ничего ни включать, ни выключать не надо.
просто ты проверяешь ГЛОБАЛЬНУЮ переменную, а она могла прийти откуда угодно.
поэтому тебе надо проверять конкретную переменную из конкретного источника.
кстати, на самом деле при variables_order = "EGPCS" сессии должны перебивать все.
но лучше все равно юзать $_*
 

Romantik

TeaM PHPClub
А разве не достаточно
unset($auth)
session_start(); ?
или просто
session_start()
ведь тогда $auth уже будет содержать параметр из сессии
и предыдущий параметр переданный в УРЛ удалится.
 

Frenk

Guest
Нет. session_start() - не достаточно - можешь проверить.
А вот unset($auth)
session_start(); - интересно. Надо проверить.
 

Frenk

Guest
ОК!
unset($auth) - наиболее красивое и работающее решение. Спасибо tony2001
Спасибо Romantik
 
Сверху