@biffick
Вопрошатель

Ошибки в плагине WordPress при переходе с PHP 7.4 на 8.1. Как их исправить?

Хотелось бы перейти на PHP 8.x, но плагин авторизации в админке WordPress не даёт в неё зайти. Плагин давно не поддерживается.
В основном варнинги, но есть 1 фатал эррор.

---

Лог ошибок

PHP Warning: A non-numeric value encountered in /public_html/wp-content/plugins/wp-captcha/wp-captcha.php on line 429

PHP Warning: A non-numeric value encountered in /public_html/wp-content/plugins/wp-captcha/wp-captcha.php on line 429

PHP Warning: Undefined array key "wpc_random_total" in /public_html/wp-content/plugins/wp-captcha/wp-captcha.php on line 411

PHP Warning: Undefined array key "wpc_random_number1" in /public_html/wp-content/plugins/wp-captcha/wp-captcha.php on line 412

PHP Warning: Undefined array key "wpc_random_number2" in /public_html/wp-content/plugins/wp-captcha/wp-captcha.php on line 413

PHP Fatal error: Uncaught TypeError: Unsupported operand types: string + string in /public_html/wp-content/plugins/wp-captcha/wp-captcha.php:429
\nStack trace:\n#0 /public_html/wp-includes/class-wp-hook.php(294): WP_Captcha->wpc_captcha_login_check(Object(WP_Error))
\n#1 /public_html/wp-includes/plugin.php(212): WP_Hook->apply_filters(Object(WP_Error), Array)
\n#2 /public_html/wp-content/plugins/login-lockdown/loginlockdown.php(475): apply_filters('authenticate', NULL, '', '')
\n#3 /public_html/wp-includes/user.php(95): wp_authenticate('', '')
\n#4 /public_html/wp-login.php(1128): wp_signon(Array, true)
\n#5 {main}\n  thrown in /public_html/wp-content/plugins/wp-captcha/wp-captcha.php on line 429



---

PHP плагина

Line 429
$wpc_checktotal = $wpc_first_randnumber + $wpc_second_randnumber;


Line 411
$wpc_random_total = sanitize_text_field($this->wpc_string($_REQUEST["wpc_random_total"]));


Line 412
$wpc_first_randnumber = sanitize_text_field($this->wpc_string($_REQUEST["wpc_random_number1"]));


Line 413
$wpc_second_randnumber = sanitize_text_field($this->wpc_string($_REQUEST["wpc_random_number2"]));


Fatal Error - Line 429
$wpc_checktotal = $wpc_first_randnumber + $wpc_second_randnumber;



---
  • Вопрос задан
  • 367 просмотров
Решения вопроса 1
@biffick Автор вопроса
Вопрошатель
Нашлась более свежая версия плагина. Работает на PHP 8.1
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Vincent1
@Vincent1
Нужно отключить этот плагин. Для этого переименуйте папку /public_html/wp-content/plugins/wp-captcha/
Ответ написан
v3shin
@v3shin
Веб-шаман
Красота. Прямо как будто отображение ошибок включили, и тут все посыпалось. =)
Пишет, что:
$_REQUEST["wpc_random_total"], $_REQUEST["wpc_random_number1"] и $_REQUEST["wpc_random_number2"] не заданы, а к ним идет обращение.
sanitize_text_field($this->wpc_string()) в этом случае возвращает не число, а потом в плагине происходит сложение двух не чисел.
Вот тут php сдается и выдает Fatal error.
Отключите этот плагин или обновите до совместимого с php 8.1.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы