За последние 24 часа нас посетили 62964 программиста и 1742 робота. Сейчас ищут 855 программистов ...

Пересоздание НОВОЙ сессии в рамках одного кода

Тема в разделе "Прочие вопросы по PHP", создана пользователем ZuArt, 26 май 2015.

  1. ZuArt

    ZuArt Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    14
    Симпатии:
    0
    Приветствую.
    Вопрос нетривиальный, логику работы "вход -> выход" изменить невозможно.

    1. При открытии страницы стартует сессия, которая "подписывается" блоком параметров IP, User_Agent + еще парочка.
    2. Адрес ссылки содержит в себе SSID.
    3. При открытии другой/той же страницы по этому SSID-у возобновляется сессия и происходит проверка "подписи"...

    Так вот проблема в том, что в случае некорректной подписи нужно СОЗДАТЬ НОВУЮ сессию БЕЗ УДАЛЕНИЯ СТАРОЙ...

    Т.е. грубо говоря, если ссылку с SSID-ом юзер прощелкал и кто-то другой ей воспользовался, то нужно этому другому создать новую сессию и собственно говоря, выдать данные из нее, не поломав сессию валидного юзера.

    Т.е. чтобы отработало что-то типа (операторы невалидные, просто логика):

    Код (Text):
    1. session_id(SSID);
    2. session_start();
    3. if(!session_validate()){
    4. session_close();
    5. session_new_id();
    6. session_start();
    7. };
    8. SSID = session_id()

    Как это можно сделать без перезапросов страниц и т.п.