Как восстановить права администратора?

2 февр. 2012 г., 02:47:27
Просмотры: 33.8K
Голосов: 1

Да, я гений. Мне удалось удалить все права администратора (спасибо плагину Membership). Я мог бы их восстановить... если бы у меня был доступ администратора, хах.

В общем, как мне вернуть все права администратора? У меня есть доступ к базе данных через PHPMyAdmin, но я не знаю, где и что нужно добавить обратно в базу данных.

Буду благодарен за любую помощь. Спасибо!

1
Комментарии

... и пожалуйста, не предлагайте плагин ;)

Dave Dave
2 февр. 2012 г. 02:47:53
Все ответы на вопрос 6
0

Строка ниже представляет собой массив в сериализованной форме.

a:1:{s:13:"administrator";s:1:"1";}

Здесь:
a:1 означает массив с одним элементом
s:13 означает строку и длину строки, следующей за ней

Array 
{
     "administrator" => "1"
}

После сохранения в таблице, вы можете использовать функцию unserialize() для преобразования обратно в массив для использования в вашем коде.

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

2 февр. 2012 г. 07:17:12
4

Это поле wp_capabilities в таблице usermeta. У меня оно выглядит так:

a:1:{s:13:"administrator";s:1:"1";}
2 февр. 2012 г. 03:00:58
Комментарии

Я дам вам баллы, если вы объясните, что означают все эти числа!

Dave Dave
2 февр. 2012 г. 03:06:51

a = array (массив), s = string (строка). Число обозначает размер элемента. Это стандартная сериализация в PHP.

a:1 = следующий элемент - это массив из одного элемента, s:13 = следующий элемент - строка из 13 символов, s:1 = следующий элемент - строка из одного символа

NiloVelez NiloVelez
27 окт. 2016 г. 11:43:40

Я столкнулся с той же проблемой, и это сработало для меня. Но вот более сложный вопрос: почему так происходит? Единственный плагин, который я использую - это JWT для аутентификации и пользовательский шаблон для API. Я не меняю никаких разрешений и даже не добавляю неизвестные плагины/шаблоны на свой сайт. Мне интересно, почему это произошло.

Paulo Henrique Queiroz Paulo Henrique Queiroz
13 июл. 2020 г. 20:17:17

Я зашел в свою панель управления, и вот, возможно, причина проблемы: WordPress обнаружил, что ваш сайт работает на небезопасной версии PHP.

Paulo Henrique Queiroz Paulo Henrique Queiroz
13 июл. 2020 г. 20:18:51
1

Хорошо, извините за вопрос. Я разобрался. Но для будущих пользователей вот совет.

Шаг 1 (РЕЗЕРВНАЯ КОПИЯ!!!!) - сделайте резервную копию вашей базы данных, если следующий шаг что-то испортит, а у вас не будет бэкапа - это будет только ваша вина.

Шаг 2 - Используйте PHPMyAdmin или аналогичный инструмент для доступа к БД, найдите таблицу wp_usermeta и отсортируйте по user_id. Пользователь #1 - это ваш администратор. Затем найдите поле wp_capabilities и нажмите "редактировать" (именно эта часть была испорчена у меня).

Я заменил испорченное значение. Вот это:

a:3:{s:15:"membershipadmin";s:1:"1";s:10:"M_add_ping";s:1:"1";s:10:"subscriber";s:1:"1";}

на это (которое я скопировал из другой WP базы данных):

a:4:{s:13:"administrator";s:1:"1";s:15:"membershipadmin";s:1:"1";s:11:"M_add_level";s:1:"1";s:10:"M_add_ping";s:1:"1";}

Прежде чем отметить свой ответ как верный, может кто-то подтвердит мое решение или объяснит содержимое этого поля и как оно должно выглядеть правильно? Вы можете взять мой ответ, переписать его как свой, и если он правильный - я отмечу ваш ответ.

2 февр. 2012 г. 03:05:59
Комментарии

Это не всегда будет user_id 1 (хотя обычно это так). Вам следует перейти в таблицу пользователей, найти имя пользователя, которому вы хотите назначить права администратора, записать его user_id, а затем использовать метод, описанный выше, но для этого user_id.

mor7ifer mor7ifer
2 февр. 2012 г. 04:23:32
0

Я внес изменения в базу данных, как было указано, но при входе в систему как администратор я по-прежнему не мог изменять пользователей или страницы.

При сравнении поля с ролями пользователей в базе данных я заметил, что оно отличается от других установок WordPress. Моим решением было следующее:

Найти поле с именем "wp_user_roles" в таблице [префикс базы данных]_options, например "wp_options", и убедиться, что у администраторов есть все необходимые возможности. Это сериализованная строка с большим объемом информации, поэтому я считаю, что проще всего скопировать данные из чистой установки WordPress.

5 июл. 2016 г. 11:03:41
3

У меня была такая же проблема, и ни одно из этих решений мне не помогло.

То, что в итоге сработало:

  1. Войдите в PHP Admin для редактирования базы данных
  2. Найдите таблицу wp_usermeta и посмотрите ID администратора (вероятно, это 1)
  3. Теперь найдите поле wp_capabilities
  4. Замените строку на следующую:

a:14:{s:13:"administrator";b:1;s:15:"membershipadmin";b:1;s:24:"membershipadmindashboard";b:1;s:22:"membershipadminmembers";b:1;s:21:"membershipadminlevels";b:1;s:28:"membershipadminsubscriptions";b:1;s:22:"membershipadmincoupons";b:1;s:24:"membershipadminpurchases";b:1;s:29:"membershipadmincommunications";b:1;s:21:"membershipadmingroups";b:1;s:20:"membershipadminpings";b:1;s:23:"membershipadmingateways";b:1;s:22:"membershipadminoptions";b:1;s:32:"membershipadminupdatepermissions";b:1;}

Обновите, и теперь у вас есть доступ ко всем функциям плагина membership.

10 дек. 2013 г. 16:54:08
Комментарии

Не могли бы вы добавить объяснение, как можно использовать представленный код? Иначе это не очень полезно.

Nicolai Grossherr Nicolai Grossherr
10 дек. 2013 г. 17:12:37

Тем же способом, что и все ответы выше. Однако я его обновлю.

Trekdrop Trekdrop
11 дек. 2013 г. 16:07:02

Я не видел их в очереди проверки, и вообще лучше, если ваш ответ будет самодостаточным. Как сейчас, после вашего обновления.

Nicolai Grossherr Nicolai Grossherr
11 дек. 2013 г. 16:23:03
0

Это довольно просто. Всё, что я сделал - открыл phpmyadmin, выбрал базу данных с моего предыдущего сайта, нашёл таблицу wp_usermeta, кликнул на user_capabilities, и так как ID администратора был 1, я просто скопировал строки

(a:2:{s:13:"administrator";b:1;s:13:"bbp_keymaster";b:1;}) 

и вставил их в проблемную базу данных. Нажал сохранить, вышел из системы и зашёл снова - и мои роли вернулись.

12 мар. 2015 г. 10:00:04