zuart
Новичок
Приветствую.
Вопрос нетривиальный, логику работы "вход -> выход" изменить невозможно.
1. При открытии страницы стартует сессия, которая "подписывается" блоком параметров IP, User_Agent + еще парочка.
2. Адрес ссылки содержит в себе SSID.
3. При открытии другой/той же страницы по этому SSID-у возобновляется сессия и происходит проверка "подписи"...
Так вот проблема в том, что в случае некорректной подписи нужно СОЗДАТЬ НОВУЮ сессию БЕЗ УДАЛЕНИЯ СТАРОЙ...
Т.е. грубо говоря, если ссылку с SSID-ом юзер прощелкал и кто-то другой ей воспользовался, то нужно этому другому создать новую сессию и собственно говоря, выдать данные из нее, не поломав сессию валидного юзера.
Т.е. чтобы отработало что-то типа (операторы невалидные, просто логика):
session_id(SSID);
session_start();
if(!session_validate()){
session_close();
session_new_id();
session_start();
};
SSID = session_id()
Как это можно сделать без перезапросов страниц и т.п.
Вопрос нетривиальный, логику работы "вход -> выход" изменить невозможно.
1. При открытии страницы стартует сессия, которая "подписывается" блоком параметров IP, User_Agent + еще парочка.
2. Адрес ссылки содержит в себе SSID.
3. При открытии другой/той же страницы по этому SSID-у возобновляется сессия и происходит проверка "подписи"...
Так вот проблема в том, что в случае некорректной подписи нужно СОЗДАТЬ НОВУЮ сессию БЕЗ УДАЛЕНИЯ СТАРОЙ...
Т.е. грубо говоря, если ссылку с SSID-ом юзер прощелкал и кто-то другой ей воспользовался, то нужно этому другому создать новую сессию и собственно говоря, выдать данные из нее, не поломав сессию валидного юзера.
Т.е. чтобы отработало что-то типа (операторы невалидные, просто логика):
session_id(SSID);
session_start();
if(!session_validate()){
session_close();
session_new_id();
session_start();
};
SSID = session_id()
Как это можно сделать без перезапросов страниц и т.п.