Реклама на сайте Advertise with us
Тема: ХЕЛП! Сессии в ПХП!!! Расширенный поиск по форуму
 
Внимание! В связи с устареванием топика эта страница была взята из кэша.
Автор Сообщение
Информация о пользователе Core


Зарегистрирован: 07.09.03
Сообщения: 252
Ссылка на сообщениеДобавлено: 24/10/03 в 17:20     

Ребзя!

Что делать? сессии глючат по страшному! Срабатывают со второго с третьего раза!
session_start();
if(!@$authent) { бла бла бла }
Переменная $authent была зарегистрирована на стартовой странице. Вышеуказанный строки вызываются в начале каждого сценария. Но $authent то есть то ее нет... Автостарт сессии не помогает... хрень какая-то

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 1376
Ссылка на сообщениеДобавлено: 24/10/03 в 17:58     

Во-первых дырка в безопасности сразу и налицо. Я так понял, register_globals у тебя ON. Обращаюсь к твоему скрипту:

http://domain.com/script.php?authent=1

И я уже залогинен :-)

Применяй session_is_registered('authent'). Это раз.

Но лучше register_globals вырубить и юзать

$HTTP_SESSION_VARS['authent'] или $_SESSION['authent'].

Или не-вырубить и юзать :-). Но лучше вырубить.

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 1376
Ссылка на сообщениеДобавлено: 24/10/03 в 18:02     

А может они у тебя криво настроены? У саппорта во всяеом случае спроси, все ли там нормально.

У меня точ такие симптомы были, только на .NET Framework - на хосте сессии в отдельном процессе были настроены.
Но это я думаю к тебе не относится :-) Все равно спроси.

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 1376
Ссылка на сообщениеДобавлено: 24/10/03 в 18:11     

Кстати, конструкция

if(!@$authent)

ИМХО неправильна, в случае, если $authent у тебя не-логическое. ПХП он сам в таком случае определяет, TRUE она или FALSE. Ну вот например, если

$authent="0";// "0" - строка.

То хрен тут поймешь как он ее интерпретирует. Иногда как FALSE, иногда TRUE. От версии зависит. Лучше конкретизируй. Например, когда $authent числовой, то юзай

if ($authent>0)

Когда строковый

if ($authent!='') или if (strlen($authent)>0)

K началу

 
Информация о пользователе Core


Зарегистрирован: 07.09.03
Сообщения: 252
Ссылка на сообщениеДобавлено: 24/10/03 в 18:39     

Пентарх сенкс! Счас правлю все. Даст Бог будет работать. Плохо когда не нужно определять переменные перед использованием ИМХО. Привык я определять, а тут - хочешл объявляй, хочешь нет...

K началу

 
Информация о пользователе Weber


Зарегистрирован: 03.10.03
Сообщения: 1276
Ссылка на сообщениеДобавлено: 25/10/03 в 06:24     

Pentarh писал:
Во-первых дырка в безопасности сразу и налицо. Я так понял, register_globals у тебя ON. Обращаюсь к твоему скрипту:

http://domain.com/script.php?authent=1

И я уже залогинен :-)

Применяй session_is_registered('authent'). Это раз.

Но лучше register_globals вырубить и юзать

$HTTP_SESSION_VARS['authent'] или $_SESSION['authent'].

Или не-вырубить и юзать :-). Но лучше вырубить.


А кто мешает сделать так:

if ($HTTP_SESSION_VARS['authent']==1)
{
//bla-bla-bla
}

Но конечно Пентарх прав... лучше вырубить globals

K началу

 
Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!
Внимание! В связи с устареванием топика эта страница была взята из кэша.

Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »