Проблема с сессиями после обновления до 2.0.14

Автор alex2000, 28 августа 2017, 14:00:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

alex2000

Обновился с 2.0.7 до 2.0.14. Без ошибок.
Залогиненные пользователи работают. Однако если вылогинился, то обратно залогиниться невозможно, отображается ошибка:
"Ваша сессия закончилась, пока вы писали сообщение. Пожалуйста, вернитесь назад и попробуйте снова"
При этом куки не создаются.

В логах PHP вижу такое:
"PHP Warning:  session_start(): Failed to decode session object. Session has been destroyed in /.../Load.php on line 2424
 PHP Notice:  SSI.php не может загрузить сессию! Возможно, это проблема связана с выходом или другими функциями. Пожалуйста, убедитесь что SSI.php вставлен в самом начале перед всеми другими скриптами! in /home/ttuacom/public_html/forum/SSI.php on line 171"

Сайт использует форумную авторизацию через SSI.php

Также для незалогиненных пользователей на самом сайте не работают сессии, насколько я понимаю, потому что сессии не стартуют в Load.php on line 2424

Подскажите, куда смотреть?

kak2z

Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

alex2000


kak2z

Цитата: alex2000 от 28 августа 2017, 17:07:43К чему здесь сарказм?
нет никакого сарказма... вообще нет..  я серьезно сказал..  извините если так прозвучало..
пару раз такой глюк видел и мне кажется что это какой то косяк обновления.. надо ждать пока пофиксят в следующей заплатке..
как вариант попробуйте поменять версию пхп.. 5.4. 5.5. 5.6. на какой то может будет нормально работать..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

alex2000

К сожалению, смена версий PHP ничего не дала.

У меня с 2.0 RC до 2.0.7 работала такая схема:

На сайте есть отдельно раздел с форумом, и есть другие разделы в которых форум подключается через SSI.php, чтобы получить последние посты с форума и для единой авторизации пользователей на сайте.
В index.php других разделов сайта первым подключался SSI.php, который и стартовал сессию.

Теперь на 2.0.14 вот этот старт сессии в Load.php слетает с вышеуказанной ошибкой. Соответственно любые операции в других разделах сайта с $_SESSION не работают.
Поставил пока подпорку - делаю session_start до загрузки SSI.php.
Сессии на сайте работают, но появилась известная проблема с неправильным session_id который можно получить из  $context['session_id'] используя SSI.

Из-за этого
 - не работает своя форма логина на сайте, которая содержит поле с этим Id <input type="hidden" name="'. $context['session_var']. '" value="'. $context['session_id']. '" />
 - не работает Logout, который использует тот же $context['session_id']
 - ну и логи забиваются

Yarik

Кстати у меня был такой глюк после обновления и я его правил.Решение находил на оф.форуме SMF
Случайно - пошел искать поиском туда и как раз попал на тему где шло обсуждение этого бага и как его поправить.

kak2z

Цитата: alex2000 от 28 августа 2017, 18:29:37- не работает своя форма логина на сайте, которая содержит поле с этим Id <input type="hidden" name="'. $context['session_var']. '" value="'. $context['session_id']. '" />
посмотрите какие правки обновление 2.0.14 вносит в файл index.template.php там как раз правится форма аутентификации...
сделайте такие самые правки у себя..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

alex2000

Цитата: kak2z от 28 августа 2017, 19:13:29посмотрите какие правки обновление 2.0.14 вносит в файл index.template.php там как раз правится форма аутентификации...
сделайте такие самые правки у себя..
Да, это я сделал, как раз указанного поля у меня не было. Но данная форма начала работать только в рамках  index.template.php, но не через SSI.
Пойду оф.форум гуглить.

karavan

Здравствуйте, долго не мог решить в какую тему написать вопрос, чтобы не плодить новых тем, ну попробую здесь. После обновления на 2.0.15 перестал работать вход на форум со страницы SimplePortal, в то же время через форму входа непосредственно с форума вход выполняется без проблем. При попытке войти через главную страницу SimplePortal в строке браузера выполняется команда  http://****/forum/index.php?action=login2 и пользователь получает сообщение типа "Ваша сессия истекла во время написания сообщения." При входе через стандартную кнопку "Войти" в строке браузера выполняется команда http://****/forum/index.php?action=login (отличается последним символом от входа портала) и вход проходит нормально.

Я честно говоря не могу со 100% уверенностью утверждать, что это началось именно после обновления на 2.0.15, но по крайней мере впервые этот баг был зафиксирован после установки обновления, до этого такой информации не поступало.

Наблюдал ли кто-то подобное явление у себя, ну и соответственно посоветуйте пожалуйста способ устранения проблемы, спасибо.

GeorG

С версии 2.0.14, формах авторизации, теперь должна присутствовать эта строчка:
<input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
Проверьте, присутствует ли она в коде блока авторизации через портал.

Ищите примерно такую строчку в портале (или похожую), и после неё вставляйте ту что я дал:
<input type="hidden" name="hash_passwrd" value="" />
В поиске по файлу, можно ориентироваться на hash_passwrd

UPD:
Файл ../Sources/PortalBlocks.php, функция sp_userInfo
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

karavan