Я работаю над электронной коммерцией X-Cart, которая включает часть блога. В файлах моего сайта у меня есть папка «блог», где внутри у меня есть все папки, файлы WordPress и так далее.

Несколько недель назад хост переместил сайт на другой сервер, и версия PHP была обновлена ​​с 5.x.x до 7.x.x, что создало некоторые проблемы. Единственное, что я не могу решить, это то, что я не могу войти в панель администратора с WP. Я всегда получаю сообщение об ошибке «Извините, у вас нет доступа к этой странице».

Я попытался отключить все плагины и темы, и ничего не изменилось. Затем я создал нового пользователя-администратора из MySQL и то же самое. Используя отладку, я получаю только эту ошибку:

Уведомление PHP: Неопределенный индекс: HTTP_X_FORWARDED_PROTO в httpdocs/blog/wp-config.php в строке 93".

Полный код в строке

require_once(ABSPATH . 'wp-settings.php');
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
   $_SERVER['HTTPS']='on';

Но я не уверен, что это может быть связано с проблемой входа в систему администратора.

Какие-либо предложения? Я даже видел, что мой файл version.php имеет $wp_version = '5.0.7'; и $required_php_version = '5.2.4.' .

Большое спасибо.

0
Luchiii 28 Окт 2019 в 17:46
Как именно вы создали это новое имя пользователя? Поделитесь кодом, который вы использовали для этого, скорее всего, вы неправильно назначили разрешения, поэтому WordPress не позволит вам получить доступ к панели инструментов.
 – 
cabrerahector
28 Окт 2019 в 17:54
ВСТАВИТЬ В mydatabase.wp_users (ID, user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) ЗНАЧЕНИЯ () ВСТАВИТЬ В mydatabase.wp_usermeta (umeta_id, user_id, meta_key, meta_value) ЗНАЧЕНИЯ (NULL, 'мой ID', 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1"; }'); ВСТАВЬТЕ В databasename.wp_usermeta (umeta_id, user_id, meta_key, meta_value) ЗНАЧЕНИЯ (NULL, 'мой ID', 'wp_user_level' , '10');
 – 
Luchiii
28 Окт 2019 в 18:32
Помимо того факта, что у вас есть пустой VALUES() (я предполагаю, что вы удалили его из соображений безопасности? Или, может быть, вы забыли заполнить эту часть запроса?), убедитесь, что префикс wp_} в запросе совпадает с тем, что используется на вашем сайте.
 – 
cabrerahector
28 Окт 2019 в 19:57
Да да, я удалил для безопасности, но я почти уверен, что проблема не в этом. Что-то пошло не так во время миграции, и прямо сейчас панель администратора заблокирована или что-то в этом роде. БД работает хорошо, я думаю, потому что с фронт-офисом проблем нет. Пользователи могут даже комментировать, и это работает нормально.
 – 
Luchiii
28 Окт 2019 в 20:07
Да, но проблема (как я уже говорил) в правах пользователя. WordPress считает, что у этого пользователя нет правильных разрешений (или вообще каких-либо разрешений), и поэтому он не позволит вам получить доступ к панели инструментов. Что-то пошло не так, когда вы выполнили этот запрос, поэтому вам нужно его просмотреть.
 – 
cabrerahector
28 Окт 2019 в 20:28

1 ответ

Вам нужно проверить, установлен ли HTTP_X_FORWARDED_PROTO. Попробуй это:

if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
0
Sam 28 Окт 2019 в 18:02
Пробовал, но все равно получаю ту же ошибку, даже удаляя кеш, чтобы быть уверенным.
 – 
Luchiii
28 Окт 2019 в 18:40
А если попробовать это? if(isset($_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
 – 
Sam
28 Окт 2019 в 18:43
Если не работает, попробуйте добавить define('FORCE_SSL_ADMIN', true) перед вашим условным
 – 
Sam
28 Окт 2019 в 20:47
Привет, Сэм, спасибо за твою помощь. Я пробовал оба, но всегда получаю одну и ту же ошибку, нет возможности войти в систему и увидеть панель администратора.
 – 
Luchiii
29 Окт 2019 в 10:25