Проблемы с сессией после header( "location: " на некоторых серверах

бро, смотри куда у тебя локайшен показывает и сравнивай с домайном куков. а вообще код мощный, без проверки выводить значение функции.
 
Сессия php работает на куках, если не в курсе.
Так вот если эту куку не видно, на домене куда отправляет location, то стартует новая сессия.
У этой куки есть настройки.
1) Поиграться с настройками (домен)
Для просмотра ссылки Войди или Зарегистрируйся

2) Создать свой session_id из данных пользователя без кук, например ip+user_agent и установить его
Для просмотра ссылки Войди или Зарегистрируйся
Вариант что называется на коленке

3) Создать js скрипт который будет проверять сессию и подставлять если это нужно.

Можно и по другому.
 
Сессия php работает на куках, если не в курсе.
Так вот если эту куку не видно, на домене куда отправляет location, то стартует новая сессия.
У этой куки есть настройки.
1) Поиграться с настройками (домен)
Для просмотра ссылки Войди или Зарегистрируйся

2) Создать свой session_id из данных пользователя без кук, например ip+user_agent и установить его
Для просмотра ссылки Войди или Зарегистрируйся
Вариант что называется на коленке

3) Создать js скрипт который будет проверять сессию и подставлять если это нужно.

Можно и по другому.
В DLE есть функция для сессии: dle_session
В нее я передаю: dle_session( $_COOKIE['PHPSESSID'] ); (если есть кука. Если нет, то вызов функции без куки)
Проблема в том, что я выловить проблему сброса сессии после header не могу. На стороне пользователей это случается. Неожиданно проявляется, также неожиданно исчезает проблема, и все начинает работать.
Не могу сообразить, как можно найти причину?
У меня на ПК такая же ошибка. Через пару часов проходит.
При каждом посещении кука с PHPSESSID каждый раз новый. По этому и не определяется сессия?

Замечена такая проблема:
При наличии проблемы PHPSESID постоянно меняется (при обновлении страницы).
Когда проблема прошла, PHPSESID остается постоянным, не меняется.
 
Последнее редактирование:
При каждом посещении кука с PHPSESSID каждый раз новый. По этому и не определяется сессия?
Замечена такая проблема:
При наличии проблемы PHPSESID постоянно меняется (при обновлении страницы).
Когда проблема прошла, PHPSESID остается постоянным, не меняется.
Ставьте firebug или используйте встроенный инспектор браузера, во вкладке сеть смотрите какие данные куда отправляются.
Charles попробуйте, очень помогает при анализе http(s) запросов.
Интересует момент установки куки, и момент когда происходит первый GET на другой ресурс.
 
Ставьте firebug или используйте встроенный инспектор браузера, во вкладке сеть смотрите какие данные куда отправляются.
Charles попробуйте, очень помогает при анализе http(s) запросов.
Интересует момент установки куки, и момент когда происходит первый GET на другой ресурс.
И на что там смотреть, в firebug? Что значит момент установки кук и запрос GET? Сразу же при загрузке страницы, на первом месте GET-запрос, в нем все параметры.
Вопрос то именно в том, что в течение дня может не работать несколько часов (назначаются постоянно новые куки), а затем снова начинает работать, без каких-либо изменений в файлах сайта, как ни в чем не бывало.
Появилась мысль. Может ли быть дело с часовым поясом проблемы? Например, указано 08:19:05 GMT, а у меня на ПК 11:19:05, и в какой-то час все нарушается (хотя бред вроде). Вот параметры, все вроде нормально:
Код:
Cache-Control 
no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection 
keep-alive
Content-Encoding 
gzip
Content-Type 
text/html; charset=utf-8
Date 
Tue, 09 Feb 2016 08:19:05 GMT
Expires 
Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive 
timeout=30
Pragma 
no-cache
Server 
nginx/1.9.5
Set-Cookie 
dle_newpm=0; expires=Wed, 08-Feb-2017 08:19:05 GMT; Max-Age=31536000; path=/; domain=.mysite.ru; httponly
Transfer-Encoding 
chunked
Vary 
Accept-Encoding
X-Powered-By 
PHP/5.5.31
 
Последнее редактирование:
Появились некоторые данные, которые на что-то уже наводят мысли.
При обновлении страницы в firebag кука PHPSESID = c3b114360f2162a5a17028eb7943321c.
В коде после session_start() я вывожу значение PHPSESID. Там = 99f4b907039f91e2e0a4afff20a67be9
А после еще одного обновления страницы, в firebag уже новое значение куки PHPSESID, а на экран выводится то значение, которое было в firebag до обновления (старое) . И так до бесконечности. На сервере в файлах сессии найти файл сессии с такими значениями не могу. Ищу с помощью Notepad+ (поиск в файлах).
Если я вручную в firebag изменю PHPSESID (новое присвоенное значение) на то, что выводится на экране (прошлое значение), то после обновления страницы изменения уже не происходят, сессия остается старой. Т.е. сервер определил меня.

И пока срок сессии не истечет (если закрыть сайт и не посещать), то потом сессия ставится нормально. Потом, по какой-то причине опять тоже самое.
 
Дальнейшее общение в подобной форме не будет продуктивно.
В Charles есть возможность записать логи в файл, и приложить сюда на форум (ЛС если не хотите светить домен).
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Назад
Сверху