Ошибка при обновлении 2.0.19 на 2.1.1

Автор Kira, 12 февраля 2022, 11:03:38

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

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

Kira

При обновлении вылезает ошибка

Notice:  Undefined index: htmlspecialchars in ...\Sources\ScheduledTasks.php on line 1033
Fatal error:  Uncaught Error: Function name must be a string in ...\Sources\ScheduledTasks.php:1033
Stack trace:
#0 ...\Sources\Load.php(3072): loadEssentialThemeData()
#1 ...\Sources\Load.php(3063): loadLanguage()
#2 ...\Sources\Subs.php(7270): loadLanguage()
#3 ...\Sources\Load.php(539): smf_json_decode()
#4 ...\upgrade.php(231): loadUserSettings()
#5 {main}
  thrown in ...\Sources\ScheduledTasks.php on line 1033

однако само обновление проходит. Но невозможно войти на форум. Ругается "Не удалось войти на форум. Пожалуйста, проверьте настройки cookie."

Куки в браузере удалял, браузер менял, название куков через repair_settings менял, никакого эффекта.

В указанном месте заменил
$context['forum_name_html_safe'] = $smcFunc['htmlspecialchars']($context['forum_name']);
на
$context['forum_name_html_safe'] = htmlspecialchars($context['forum_name']);
Обновление проходит без ошибок, однако по прежнему невозможно войти.

В базе (smf_log_errors) единственная ошибка
url
step=6&substep=0&data=...==&ssi=1
message
"JSON decode error: Syntax error, malformed JSON"
backtrce
[{"file":"...\Load.php","line":539,"function":"smf_json_decode"},{"file":"...\upgrade.php","line":231,"function":"loadUserSettings"}]

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

Yarik


Kira

Изначально ставил 2.0.11. Последовательно обновлялся до 2.0.19 по мере выхода обновлений. Проблема при обновлении с 2.0.19 на 2.1. 

digger®

Посмотрите, что у вас в ScheduledTasks.php в строке 1033.
А так, скорее всего стоит какой-то мод который добавляет в диспетчер задач форума свою. С ошибкой при обновлении, возможно, поможет удаление этого мода.

Kira

ЦитироватьПосмотрите, что у вас в ScheduledTasks.php в строке 1033.

ЦитироватьВ указанном месте заменил
$context['forum_name_html_safe'] = $smcFunc['htmlspecialchars']($context['forum_name']);
на
$context['forum_name_html_safe'] = htmlspecialchars($context['forum_name']);
Обновление проходит без ошибок, однако по прежнему невозможно войти.

То же сделал в load.php в строке 539. $smfFunc['json_decode'] на просто json_decode. Теперь даже в базе ошибок нет.

Попробовал бэкап апгрейнутой базы восстановить на установку с нуля. То же самое.
You were unable to login. Please check your cookie settings.

php 7.4, MySQL 5.7.

При повторном запуске апгрейда админский пароль принимается. А войти на форум никак.

digger®

Цитата: Kira от 12 февраля 2022, 22:55:21То же сделал в load.php в строке 539. $smfFunc['json_decode'] на просто json_decode. Теперь даже в базе ошибок нет.
Это указывало на то, что есть какая-то проблема. Избавившись от этих ошибок, вы проблему не решили.

digger®

Цитата: Kira от 12 февраля 2022, 22:55:21Попробовал бэкап апгрейнутой базы восстановить на установку с нуля. То же самое.
You were unable to login. Please check your cookie settings.
Лог ошибок php смотрите, возможно там есть что-то интересное в этот момент.

Kira

В логах ошибок php то же самое.
Я процедуру обновления правильно выполняю? Качаю Large upgrade 2.1.1 с оф. сайта, закидываю в папку с форумом с заменой файлов и запускаю upgrade.php, так?

digger®

Цитата: Kira от 12 февраля 2022, 23:12:16В логах ошибок php то же самое.
Я процедуру обновления правильно выполняю? Качаю Large upgrade 2.1.1 с оф. сайта, закидываю в папку с форумом с заменой файлов и запускаю upgrade.php, так?
Так.

Kira

Скачал Large upgrade 2.1.1 заново, запустил из командной строки. Всюду done и Successful. Войти всё так же не могу. В логах php чисто. В базе (smf_log_errors) "JSON decode error: Syntax error, malformed JSON" в load.php строка 539.
 
$cookie_data = $smcFunc['json_decode']($_SESSION['login_' . $cookiename], true);

???

Kira

Удалось войти после изменения в базе smf_settings secureCookies с 1 на 0.
Подскажите, за что отвечает эта настройка?

meccep45

ЦитироватьsecureCookies
принудительно пометит файлы cookie, как безопасные. если вы используете HTTPS на своем сайте.
<<Я всегда с собой беру, резервную копию.>>

digger®

Цитата: Kira от 13 февраля 2022, 00:55:56Удалось войти после изменения в базе smf_settings secureCookies с 1 на 0.
Подскажите, за что отвечает эта настройка?
Возможно, помогла бы просто очистка таблицы сессий.

Kira


ЦитироватьВозможно, помогла бы просто очистка таблицы сессий.
Хранение сессий в базе отключено. Соответственно, таблица пустая. Пробовал включать, ничего не менялось. 


Kira


Цитироватьпринудительно пометит файлы cookie, как безопасные. если вы используете HTTPS на своем сайте.
То есть отключение этой опции не дырка в безопасности? Можно оставить так и считать проблему решённой?