Вопрос по wordpress, ftp, admin – У вас недостаточно прав для доступа к этой странице без изменений [закрыто]

19

Я работаю над Wordpress и закончил свой проект локально. Затем я переместил его на живой сервер и ничего не изменил, просто внес изменения в файл конфигурации (имя базы данных, имя пользователя и пароль).

Теперь мой сайт работает нормально, но я могуt получить доступ к панели администратора, так как каждый раз, когда она выдает мне сообщение об ошибке:

У вас недостаточно прав для доступа к этой странице.

Поиски в Google показывают, что большинство ошибок произошло из-за изменения префикса, но в моем случае это то же самое, что и в локальном. Кроме того, разрешения для моих каталогов - 755, а для файлов - 644, но я все еще сталкиваюсь с той же проблемой.

Как я могу исправить это?

Другое решение - если ваш префикс таблицы нев.ч.но то естьблаб, затем вblabla_usermeta таблица, найти идентификатор пользователя и установитьblabla_capabilities (вместоwp_capabilities ) значение доа: 1: {s: 13:»администратор»Б: 1;} а такжеblabla_user_level значение для10 T.Todua
Для этого есть другое решение:stackoverflow.com/questions/4224084/... Francisco Corrales Morales
Большой вопрос; полезный лучший ответ. Намного лучше, чем непоследовательные темы на wordpress.org: Предложите перенести этот вопрос наwordpress.stackexchange.com где это может иметь лучшую жизнь. artlung

Ваш Ответ

2   ответа
88

м 90% уверены, что это ваша проблема.

Дело в том, что WordPress использует$table_prefix переменная для формирования имен ключей опции и usermeta, где она 'хранение информации о ролях и возможностях. Так что, как только вы измените префикс, но неНе обновляй свою БД, получаешь эту ошибку. Вот'Как это исправить - выполните эту команду SQL через phpMyAdmin или другой интерфейс для взаимодействия с вашей БД (вы также можете сделать это с помощью PHP):

UPDATE `{%TABLE_PREFIX%}usermeta` SET `meta_key` = replace(`meta_key`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');
UPDATE `{%TABLE_PREFIX%}options` SET `option_name` = replace(`option_name`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');

Куда:

{%TABLE_PREFIX%} это ваш текущий$table_prefix(как установлено в)wp-config.php{%OLD_TABLE_PREFIX%} твой предыдущий$table_prefix{%NEW_TABLE_PREFIX%} Ваш новый (текущий)$table_prefix - это, скорее всего, будет таким же, как ваш.{%TABLE_PREFIX%}

Так что если ваш старый$table_prefix былоwp_test_ и ваш новыйwp_, вы бы сделали этот запрос:

UPDATE `wp_usermeta` SET `meta_key` = replace(`meta_key`, 'wp_test_', 'wp_');
UPDATE `wp_options` SET `option_name` = replace(`option_name`, 'wp_test_', 'wp_');

РЕДАКТИРОВАТЬ: Как @Francisco Corrales отметил, если у вас возникли проблемы с доступом к странице администратора, которую вы создали (если вы ненаписать PHP, это не ваш случай), вы можете проверить эту ссылку:Ошибка Wordpress при разработке плагина - »У вас недостаточно прав для доступа к этой странице. "

РЕДАКТИРОВАТЬ 2: Как @Kasper Souren отметил, вы можете добавить предложение WHERE в запрос опции UPDATE. Как так (неудалить% после последнего%}):

UPDATE `{%TABLE_PREFIX%}options` SET `option_name` = replace(`option_name`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}') WHERE option_name like '{%OLD_TABLE_PREFIX%}%';
я сделал это 3 раза, но все еще сталкивался с той же проблемой Kashif Waheed
Было бы хорошо добавитьWHERE option_name like 'wp_%' в случае префикса происходит в опциях. guaka
Тот'довольно странно Это сообщение обычно означает проблему с разрешениями - и тот факт, что вы перенаправлены в profile.php, также поддерживает это (поскольку пользователи с наименьшим доступом получают перенаправление в свой профиль). Я'Я не уверен, что пошло не так. Вы сделали экспорт / импорт БД, правильно? Можете ли вы попробовать сделать это снова (удалить таблицы, которые вы создали ранее и импортировать поверх чистой базы данных)? Nikola Ivanov Nikolov
я импортирую обычными способами как обычно. экспортируйте это из местного и затем импортируйте это в прямом эфире. не сделал никаких изменений Kashif Waheed
-2

что вы видите "У вас недостаточно прав для доступа к этой странице » сообщение означает три вещи:

вы пытаетесь получить доступ к странице администратора напрямую, но не через wp-admin (поэтому, пожалуйста, укажите, к какой странице администратора вы пытаетесь получить доступ),

вы уже вошли в систему (в противном случае вы будете перенаправлены в / wp-admin) и

область, к которой вы пытаетесь получить доступ, зарезервирована для пользователей более высокого уровня (поэтому вы можете подключаться с учетной записью редактора, тогда как область доступна только администраторам).

Можете ли вы сказать нам, если ваша локальная база данных и онлайн-база данных совпадают? Можете ли вы войти в систему правильно, прежде чем вы увидите это сообщение?

Используете WordPress MU (мультисайт)? Вы использовали тот же wp-config.php и изменили учетные данные, или вы использовали другой wp-config.php? barakadam
Я правильно регистрируюсь, вводя имя пользователя и пароль, но когда я нажимаю кнопку входа в систему, она переходит на страницу profile.php, и на экране появляется сообщение, которое я упомянул выше, а также я являюсь администратором верхнего уровня. Kashif Waheed

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