Come posso ripristinare le funzionalità di amministratore?

2 feb 2012, 02:47:27
Visualizzazioni: 33.8K
Voti: 1

Sì, sono un genio. Sono riuscito a cancellare tutte le mie funzionalità di amministratore (grazie mille plugin Membership). Potrei ripristinarle... se avessi l'accesso amministratore, lol.

Comunque, come posso ripristinare tutte le mie funzionalità di amministratore? Ho accesso al database tramite PHPMyAdmin ma non ho idea di dove o cosa aggiungere di nuovo al DB.

Qualsiasi aiuto sarebbe apprezzato. Grazie!

1
Commenti

... e per favore non suggerire un plugin ;)

Dave Dave
2 feb 2012 02:47:53
Tutte le risposte alla domanda 6
0

La stringa qui sotto rappresenta effettivamente un array in forma serializzata.

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

Dove:
a:1 indica un array con un singolo elemento
s:13 significa stringa e la lunghezza della stringa che segue

Array 
{
     "administrator" => "1"
}

Una volta che questi dati sono nella tabella, puoi utilizzare la funzione unserialize() per riconvertirli in un array da usare nel tuo codice.

Grazie mille.

2 feb 2012 07:17:12
4

Si tratta di wp_capabilities nella tabella usermeta. Il mio dice:

a:1:{s:13:"administrator";s:1:"1";}
2 feb 2012 03:00:58
Commenti

Ti darò i punti se riesci a spiegare cosa sono/significano tutti i numeri!

Dave Dave
2 feb 2012 03:06:51

a = array, s = string. Il numero rappresenta la dimensione dell'elemento. È la serializzazione standard di PHP.

a:1 = il prossimo elemento è un array con un singolo elemento, s:13 = il prossimo elemento è una stringa di 13 caratteri, s:1 = il prossimo elemento è una stringa con un singolo carattere

NiloVelez NiloVelez
27 ott 2016 11:43:40

Ho affrontato lo stesso problema e ha funzionato per me. Ma ecco una domanda più impegnativa: come mai succede? L'unico plugin che uso è JWT per l'autenticazione e un Template personalizzato per le cose API. Non sto cambiando alcun permesso o aggiungendo plugin/template sconosciuti al mio sito. Mi chiedo perché sia successo.

Paulo Henrique Queiroz Paulo Henrique Queiroz
13 lug 2020 20:17:17

Ho effettivamente acceduto al mio pannello e c'è qualcosa che forse è il motivo: WordPress ha rilevato che il tuo sito sta eseguendo una versione non sicura di PHP.

Paulo Henrique Queiroz Paulo Henrique Queiroz
13 lug 2020 20:18:51
1

Ok, scusa per aver chiesto. Ho risolto. Ma per le persone future, ecco un suggerimento.

Passo 1 (BACKUP!!!!) - fai un backup del tuo database, se il passo successivo ti causa problemi e non hai un backup è colpa tua.

Passo 2 - Usa PHPMyAdmin o uno strumento simile per accedere al tuo DB, trova la tabella wp_usermeta e poi ordina per user_id. L'utente #1 è il tuo admin. Poi trova il campo wp_capabilities e clicca su modifica (questa è la parte che si è incasinata).

Ho sostituito quello che avevo che era danneggiato. Questo:

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

con questo (che ho copiato da un altro database 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";}

Prima di verificare la mia risposta, qualcuno può confermare la mia soluzione, o spiegare il contenuto di questo campo e come dovrebbe essere correttamente elencato? Puoi prendere la mia risposta e riscriverla come tua, e se è corretta la selezionerò come soluzione.

2 feb 2012 03:05:59
Commenti

Non sarà sempre l'user_id 1 (anche se generalmente lo è). Dovresti andare nella tabella degli utenti, trovare il nome utente che vuoi rendere amministratore, annotare l'user_id, quindi utilizzare il metodo elencato sopra, ma per quell'user_id.

mor7ifer mor7ifer
2 feb 2012 04:23:32
0

Ho apportato le modifiche al database come indicato, ma quando ho effettuato l'accesso come amministratore non potevo ancora modificare gli utenti o le pagine.

Confrontando il campo dei ruoli utente nel database, ho notato che era diverso da altre installazioni WordPress. La mia soluzione è stata questa:

Trovare il campo chiamato "wp_user_roles" nella tabella [prefisso database]_options, ad esempio "wp_options", e assicurarsi che abbia tutte le capacità per gli amministratori. È una stringa serializzata con molte informazioni, quindi penso che la cosa più semplice da fare sia copiare i dati da un'installazione WordPress pulita.

5 lug 2016 11:03:41
3

Anch'io ho avuto lo stesso problema e nessuna di queste soluzioni mi ha aiutato.

Quella che alla fine ha funzionato per me è stata:

  1. Accedi al tuo PHP Admin per modificare il database
  2. Cerca la tabella wp_usermeta e controlla qual è l'ID dell'amministratore (probabilmente 1)
  3. Ora trova il campo wp_capabilities
  4. Sostituisci la riga con la seguente:

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;}

Aggiorna e ora avrai i permessi per tutto nel plugin di membership.

10 dic 2013 16:54:08
Commenti

Puoi aggiungere una spiegazione su come il codice che mostri può essere utilizzato? Altrimenti non è molto utile.

Nicolai Grossherr Nicolai Grossherr
10 dic 2013 17:12:37

Allo stesso modo di tutte le risposte sopra. Comunque lo aggiornerò.

Trekdrop Trekdrop
11 dic 2013 16:07:02

Non riuscivo a vederle nella coda di revisione ed è comunque meglio se la tua risposta è valida di per sé. Come lo è ora, dopo il tuo aggiornamento.

Nicolai Grossherr Nicolai Grossherr
11 dic 2013 16:23:03
0

È piuttosto semplice. Tutto quello che ho fatto è stato aprire phpmyadmin, ho selezionato un database del mio vecchio sito web che avevo creato, ho cercato la tabella wp_usermeta, ho cliccato su user_capabilities e, visto che l'ID dell'amministratore è 1, ho semplicemente copiato la stringa

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

e l'ho incollata nel mio database problematico. Ho cliccato su salva, ho fatto il logout e poi il login e ho riottenuto i miei ruoli.

12 mar 2015 10:00:04