проблема с сессией @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 2 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Заголовок сообщения: проблема с сессией
Сообщение Добавлено: 17 Ноябрь 2003, 15:25:42 
Сайт использует механизм авторизации. Пользователь в веб-форму вводит пароль и логин, которые сравниваются с содержащимися в базе данных. В случае совпадения с одним из пользователей, выставляется сессионная переменная userID, которая равна примерно следующему 'wuerkldbfaliufhowreyqpoe123' (это значение хранится в базе данных).

Далее на всех страницах происходит выборка из БД по вышеуказанному userID пользвателя. Если нет такого - тогда Access Denied. В противном случае - OK.

Проблема в следующем. Иногда (примерно 1 из 20 случаев) userID не передается далее первой административной страницы (на которую пользователь попадает после ввода в форме авторизации пароля и логина). Создается ощущение, что сессионная переменная, которая, по всей видимости, должна передаваться с помощью механизма сессий всем остальным страницам - не передается и при попадании на следующие страницы мы получаем Access Denied.

Реализовано следующим образом (на псевдоязыке):

Модуль auth.php

1. session_start();
2. извлекаем id у которого login=EnteredLogin и pass=EnteredPass
3. если такого нет - Invalid Login or Pass, exit
4. userID = id
5. session_register('userID');
6. редирект на admin.php

Модуль admin.php
1. session_start();
2. извлекаем из БД позиции с id=userID
3. если в базе нет такого id, то Access Denied, exit.
….

Модуль admin.php содержим несколько подразделов (в зависимости от передаваемого параметра admin.php?topic=xxx)

Резюме: иногда дальше второй страницы модуля admin.php не "пускает". Говорит Access Denied. Исследования показали, что там содержимое userID == ''.

У кого-нибудь была похожая ситуация и с чем проблема может быть связана ?

Заранее спасибо.
vexoid
новый человек
0
Сообщения: 295
Зарегистрирован: 15.12.02
Откуда: msk
Сообщение Добавлено: 17 Ноябрь 2003, 17:38:06 
session_register убираем как некорректную на текущий момент конструкцию и используем
$_SESSION['userID'] = $userID;

и потом обращаемся через эту же переменную...
if ($_SESSIN['userID'] == get_record_from_sql(…)) { … }
else {…}

_________________
lost world... lost life... lost tomorrow... only night
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 2 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100