C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Веб-сессии (CGI), TSessionService и TWebSession
gore
Отправлено: 17.01.2005, 11:19


Ученик-кочегар

Группа: Участник
Сообщений: 17



Как использовать компонент TSessionService и автоматически создаваемый TWebSession?
Необходимо организовать хранение сессионных данных в CGI приложении.
Guest
Отправлено: 17.01.2005, 12:08


Не зарегистрирован







Генерить ID или повторять ID, компоновать с порождаемой станицей (наприсмер в адресной части или в секции скрытых параметров формы) для того, чтобы каждая новая страница посылала его серверу. И так по циклу.
gore
Отправлено: 17.01.2005, 13:01


Ученик-кочегар

Группа: Участник
Сообщений: 17



QUOTE (Guest @ 17/01/2005, 13:10)
Генерить ID или повторять ID

не очень ясно.

пишу так:

Session-> UpdateResponse (Response);

клиенту отправляется кука с ID сессии, но при каждом обращении генериться новый ID

а как использоватьт отправленную ранее куку??
Guest
Отправлено: 17.01.2005, 13:57


Не зарегистрирован







А если у клиента "куки" запрещены?
ID добавлять не в "куки" а в адрес страницы типа net_address/cgi/ресурс/ID?параметры или добалять id в параметры. Ваша CGI получая адрес ресурса отделяет ID от имени и, если ID есть — анализирует; если нет — создает новый.
gore
Отправлено: 17.01.2005, 14:22


Ученик-кочегар

Группа: Участник
Сообщений: 17



Не принципиально каким образом будет сохраняться у клиента ID. Вопрос в другом, как использовать компоненты TWebSession и TSessionService.
Согласно справки билдера они позволяют сохранять данные на сервере.
Как заставить эти компоненты использовать возвращаемый от клиента ID и в соответсвии с ним выдавать сохраненные данные

Выдержака из справки для TSessionService:
Add TSessionsService to a WebSnap application when you want to store temporary end user data in a WebSnap session

что? надо самому реализовавыть запись данных в файл на сервере, зачем тогда нужны эти компоненты — чтобы генерить ID?

у TWebSession есть свойство
CODE
__property Variant Values[const AnsiString AName] = {read=GetValue, write=SetValue};

Выдержка из справки для TWebSession:
Use Values to get or set the information that the session stores.
Guest
Отправлено: 17.01.2005, 14:57


Не зарегистрирован







Извиняюсь. Невнимательно прочел вопрос и пыталася ввести в заблуждение. Этих компонентов не пользовал и навязывал "ручной" способ.
gore
Отправлено: 18.01.2005, 12:27


Ученик-кочегар

Группа: Участник
Сообщений: 17



ну вот, видимо никто не использовал их, да уж — никто сейчас не пишет CGI

а я вот на borland.com нашел статью про сессии и серверные приложения и там английским по белому сказано, что реализованные в билдеры компоненты для поодержки веб сессий работают только при задании типа приложения как ISAPI или модуль apache.

Вернуться в Вопросы программирования в C++Builder