За последние 24 часа нас посетили 18054 программиста и 1599 роботов. Сейчас ищут 884 программиста ...

Как сохранять SID при обновлении страницы (без cookie)

Тема в разделе "Прочие вопросы по PHP", создана пользователем Rye_eyes, 23 ноя 2013.

  1. Rye_eyes

    Rye_eyes Новичок

    С нами с:
    23 ноя 2013
    Сообщения:
    1
    Симпатии:
    0
    Существует следующая задача:

    session.use_cookies = 0
    session.use_only_cookies = 0
    session.use_trans_sid = 1

    Очевидно, что передача через URL оптимальной не является (такое дано), но для кода с html-ссылкой всё работает (запрос дополняется идентификатором сессии):

    Код (Text):
    1. <?php
    2.  
    3. session_start();
    4.  
    5.  
    6. echo session_id();
    7.  
    8.  
    9. echo '<a href="tst.php"> Та же страница </a>';
    10.  
    11. ?>
    При обновлении страницы в браузере этого не происходит. Как можно решить эту проблему? Сказать клиенту, чтобы он дописывал PHPSESSID ручками - не вариант ^_^ Спасибо за внимание.

    Добавлено спустя 31 минуту 33 секунды:
    Текущее работающее решение (полагаю, неоптимальное):

    Код (Text):
    1. <?php
    2.  
    3. session_start();
    4.  
    5. echo session_id();
    6.  
    7. $s=session_id();
    8.  
    9. if (!isset($_GET['PHPSESSID']))
    10. echo '<meta http-equiv="refresh" content="0; tst.php?PHPSESSID='.$s.'" />';
    11.  
    12.  
    13. ?>
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    сид в куках хранится обычно, его не надо никуда дописывать, куки каждый раз автоматом шлются.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    перечитывал, перечитывал, но так и не понял в чем задача. галиматься какая-то.

    Предположу: если session_id при обновлении страницы всякий раз разный, значит либо куки у тебя в браузере отключены, либо б*ь чертов BOM стоит перед <?php и реально происходит ошибка "Header already sent".

    Ни при каких раскладах нельзя слать session_id через get-параметр. Это плохая практика.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Если проверять IP и браузер, то можно избежать проблем. Но это если совсем без вариантов. А так да - ни есть гут.