Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.09.14;
Скачать: [xml.tar.bz2];

Вниз

IdHTTP работа с сессиями   Найти похожие ветки 

 
aka   (2013-10-16 14:09) [0]

Добрый день. Есть клиентское приложение на Delphi, которое работает через IdHTTP с PHP скриптами. Каким образом можно узнать если истекло время сеанса.

Я меня пока одна идея - это сознать отдельный скрипт который будет печатать что нибудь из сессионной переменной и если сессия истекла, то не получаю ничего на выходе


 
DVM ©   (2013-10-16 14:31) [1]

куки


 
aka   (2013-10-16 15:06) [2]

Вот и все информация с кука

PHPSESSID=695c68485a188119f623e50087880c62; path=/; domain=10.15.168.253

Он же не пропадет автоматом, если я пойду пить чай.
Имеется ввиду то, что сервер сам ничего сообщать о просроченной сессия не будет


 
Ega23 ©   (2013-10-16 15:11) [3]


> Каким образом можно узнать если истекло время сеанса.


Только послав туда что-то с текущим SessionID. Сессионный таймаут - настраиваемая величина на сервере, для PHP default, ЕМНИП, 24 минуты.
Но это может быть изменено. Более того, на сервере может быть задействован свой механизм сессий.


 
aka   (2013-10-16 15:22) [4]

DVM ©   (16.10.13 14:31) [1]
куки

Это совсем не том. В куках как было: PHPSESSID=695c68485a188119f623e50087880c62; path=/; domain=10.15.168.253
так и осталось.

А на сервере сессия уже и истекла. Это я если только перелогинюсь, то у меня обновится PHPSESSID.


 
Медвешонок Порошок   (2013-10-16 16:56) [5]

н же не пропадет автоматом, если я пойду пить чай.

ну епстественно.
протухла ли сессия знает только сервер (пхп) и по куке (без опроса сервера) это никак не понять.


 
aka   (2013-10-16 17:20) [6]

>> Более того, на сервере может быть задействован свой механизм сессий.

И более для больших продуктов можно переопределить не посредственно в коде хранилище сессий (обычно это обычные файлы в определенной папке сервера) на БД. Это: 1) более надежно 2) намного увеличивает производительность


 
Ega23 ©   (2013-10-16 17:39) [7]


> И более для больших продуктов можно переопределить не посредственно
> в коде хранилище сессий (обычно это обычные файлы в определенной
> папке сервера) на БД. Это: 1) более надежно 2) намного увеличивает
> производительность


Переведи.


 
aka   (2013-10-16 17:42) [8]

Что перевести?
Можно вместо файлового хранения сессий использовать БД


 
Медвешонок Порошок   (2013-10-16 17:47) [9]

Он же не пропадет автоматом, если я пойду пить чай.

1. запомни время входа
2. попроси сервер сделать тебе phpinfo();
4. посмотри какой у него expired
3. вычисли когда протухнет сессия.

теперь стало понятно, что заморочился ты дурным вопросом?


 
aka   (2013-10-16 17:54) [10]

>> Медвешонок Порошок   (16.10.13 17:47) [9]
Спасибо, но я уже сделал по другому


 
Медвешонок Порошок   (2013-10-16 18:03) [11]

а по другому не будет работать.

для вычисления на клиенте факта живости сессии нужно знать настройку пхп.
если ее не знать, получится не вычисление, а гадание.

длительность сессии знает только сервер.
и ее можно либо угадать наблюдая как со временем протухает сессия, либо спросить у сервера эту длительность.


 
aka   (2013-10-16 18:19) [12]

>>Медвешонок Порошок   (16.10.13 18:03) [11]
Не нужно ничего вычислять, угадывать и тем более спрашивать длительность
<?php
 session_start();
 if($_SESSION["admin"] == "on") {
   echo "1";
 } else {
   echo "0";
 }
?>


if(IdHTTP.Post(HOST + "sessid.php",s) = "0") then
begin
   ShowMessage("Authorization has expired, please log in again");
   Exit;
 end;


 
Плохиш ©   (2013-10-16 18:54) [13]


> aka   (16.10.13 18:19) [12]

То есть, вам позволено изменять скрипты на сервере и задаёте вопросы [0]?
Стоит озаботиться поисками программиста.


 
Медвешонок Порошок   (2013-10-16 19:29) [14]

Не нужно ничего вычислять, угадывать и тем более спрашивать длительность

А вот это вот по твоему не спрашивание?

if(IdHTTP.Post(HOST + "sessid.php",s) = "0") then

пипец какой мудрый.
послал запрос на сервер и сервер ему дал ответ.


 
Медвешонок Порошок   (2013-10-16 19:32) [15]

протухла ли сессия знает только сервер (пхп) и по куке (без опроса сервера) это никак не понять.

но мы же не читаем.
мы же сами афигеть умные.

"мы уже сделали по другому"


 
aka   (2013-10-16 20:16) [16]

>>Медвешонок Порошок   (16.10.13 19:32) [15]
Не буду я не с кем спорить, может и я чего то не до понял.    

>>Плохиш ©   (16.10.13 18:54) [13]
Может тебя заказать с выездом? Сколько стоить будет?


 
DVM ©   (2013-10-16 22:35) [17]


> aka   (16.10.13 14:09) 
> Добрый день. Есть клиентское приложение на Delphi, которое
> работает через IdHTTP с PHP скриптами. Каким образом можно
> узнать если истекло время сеанса.

Клиент обратится, пошлет свой номер сессии, как уже сказали, сервер его и отключит, если сессия устарела, клиент об этом и узнает. Ты хочешь на клиенте понять, что сессия устарела без обращения к серверу?


 
DVM ©   (2013-10-16 22:39) [18]


> Имеется ввиду то, что сервер сам ничего сообщать о просроченной
> сессия не будет

Если к  нему периодически обращаться, то рано или поздно мы получим ошибку. И клиенту и серверу хорошо - один устаревшую сессию удалит, другой узнает о том, что сессия устарела.


 
Плохиш ©   (2013-10-17 10:59) [19]


> Если к  нему периодически обращаться, то рано или поздно
> мы получим ошибку.

Наши банки при каждом обращении перезапускают таймер ;-)


 
Медвешонок Порошок   (2013-10-17 11:30) [20]

состояние сессии это волновая функция.
декогеренция происходит только в момент обращения на сервер.
так что если на сервер не обращаться то никогда не узнаешь, жив кот шредингера или не жив.
потому что будучи в состоянии суперпозиции и кот и сессия одновременно и живы и мертвы.


 
Ega23 ©   (2013-10-17 11:34) [21]


> потому что будучи в состоянии суперпозиции и кот и сессия
> одновременно и живы и мертвы.


Браво!  :)))



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2014.09.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.002 c
15-1391758562
АндрейК
2014-02-07 11:36
2014.09.14
DelphiX


2-1381158756
OlegSkal
2013-10-07 19:12
2014.09.14
XE5 Win32 Android Viewport3D Layer3D искажение размеров


2-1381918147
aka
2013-10-16 14:09
2014.09.14
IdHTTP работа с сессиями


15-1390470681
ВладОшин
2014-01-23 13:51
2014.09.14
WebSocket/ Хочу перепилить idHttpServer или что другое


15-1392191970
Пятница 13
2014-02-12 11:59
2014.09.14
Delphi + NEXTGEN (LLVM) = крах!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский