back to top

Password WordPress dimenticata: come risolvere il problema

Come capita spesso per altre password, anche quella per accedere al pannello di amministrazione di WordPress può essere dimenticata. Il noto blog engine mette a disposizione un sistema per il recupero della password tramite posta elettronica. Tuttavia, ci possono essere dei problemi in scenari particolari; immaginate, ad esempio, di non potervi loggare alla vostra mailbox a causa di un downtime del server di posta oppure perché, inavvertitamente, il vostro prezioso account di amministrazione di WordPress è associato a una casella di posta non più attiva! In situazioni come queste, come si può recuperare l’accesso alla dashboard di WordPress e cambiare la password dell’utente amministratore senza avere accesso al pannello di amministrazione?

Fortunatamente, esistono diverse strade per impostare una nuova password all’utente amministratore di WordPress. In questo articolo vi spiegherò come fare.

Pubblicità

Utilizzare WP-CLI

WP-CLI è un’interfaccia da linea di comando che consente di eseguire, attraverso la shell del proprio server, una serie di comandi avanzati. Per utilizzare WP-CLI, è necessario disporre di uno spazio web con accesso SSH. Un prerequisito essenziale è che il server supporti l’uso di WP-CLI.

Se avete un accesso SSH e WP-CLI installato, siete già a buon punto. Non vi resta che connettervi tramite terminale, posizionarvi nella cartella in cui si trova WordPress e lanciare questo comando:

wp user list

Vi verrà restituito l’elenco degli utenti di WordPress. Identificate l’utente sul quale volete operare annotandone l’ID. Questo è un passo cruciale per procedere con il successivo comando.

A questo punto, eseguite il secondo comando, sostituendo “1” con l’ID utente appropriato e “nuovapassword” con la nuova password desiderata:

wp user update 1 --user_pass=nuovapassword

Nel mio esempio ho impostato una nuova password (“nuovapassword”) per l’utente con identificativo 1. Dopo aver eseguito con successo il comando, dovreste poter accedere al vostro pannello di WordPress utilizzando la nuova password.

Utilizzare una query SQL (mediante phpMyAdmin)

Un’alternativa semplice per cambiare la password di amministrazione di WordPress consiste nell’eseguire una query SQL all’interno del vostro database. Per farlo, potete utilizzare phpMyAdmin, un’interfaccia molto comune per gestire i database MySQL.

Effettuate l’accesso a phpMyAdmin, selezionate il database relativo alla vostra installazione di WordPress, quindi andate sulla scheda “SQL” e digitate la seguente query:

UPDATE wp_users SET user_pass = MD5('nuovapassword') WHERE wp_users.user_login = "nomeutente";

Naturalmente, per far sì che l’UPDATE funzioni, sarà necessario sostituire “nuovapassword” con la password desiderata e “nomeutente” con il nome utente dell’amministratore. Questa operazione è immediata e, una volta eseguita, la nuova password sarà attiva.

Utilizzare uno script di emergenza

In alternativa, un’altra soluzione consiste nell’utilizzare uno dei tanti script di “gestione dell’emergenza” reperibili in Rete. Ho utilizzato con successo uno di questi script sull’installazione WordPress di alcuni clienti che non avevano la possibilità di accedere a phpMyAdmin, riuscendo a risolvere il problema in pochi minuti.

Di seguito, vi presento il sorgente dello script PHP. Copiatelo e salvatelo all’interno di un file che chiameremo, ad esempio, “modifica-password.php”:

<?php
require './wp-blog-header.php';

function meh() {
  global $wpdb;

  if ( isset( $_POST['update'] ) ) {
    $user_login = ( empty( $_POST['e-name'] ) ? '' : sanitize_user( $_POST['e-name'] ) );
    $user_pass  = ( empty( $_POST['e-pass'] ) ? '' : $_POST['e-pass'] );
    $answer = ( empty( $user_login ) ? '<div id="message" class="updated fade"><p><strong>The user name field is empty.</strong></p></div>' : '' );
    $answer .= ( empty( $user_pass ) ? '<div id="message" class="updated fade"><p><strong>The password field is empty.</strong></p></div>' : '' );
    if ( $user_login != $wpdb->get_var( "SELECT user_login FROM $wpdb->users WHERE ID = '1' LIMIT 1" ) ) {
      $answer .="<div id='message' class='updated fade'><p><strong>That is not the correct administrator username.</strong></p></div>";
    }
    if ( empty( $answer ) ) {
      $wpdb->query( "UPDATE $wpdb->users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'" );
      $plaintext_pass = $user_pass;
      $message = __( 'Someone, hopefully you, has reset the Administrator password for your WordPress blog. Details follow:' ). "\r\n";
      $message  .= sprintf( __( 'Username: %s' ), $user_login ) . "\r\n";
      $message .= sprintf( __( 'Password: %s' ), $plaintext_pass ) . "\r\n";
      @wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Your WordPress administrator password has been changed!' ), get_option( 'blogname' ) ), $message );
      $answer="<div id='message' class='updated fade'><p><strong>Your password has been successfully changed</strong></p><p><strong>An e-mail with this information has been dispatched to the WordPress blog administrator</strong></p><p><strong>You should now delete this file off your server. DO NOT LEAVE IT UP FOR SOMEONE ELSE TO FIND!</strong></p></div>";
    }
  }

  return empty( $answer ) ? false : $answer;
}

$answer = meh();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>WordPress Emergency PassWord Reset</title>
  <meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
  <link rel="stylesheet" href="<?php bloginfo( 'wpurl' ); ?>/wp-admin/wp-admin.css?version=<?php bloginfo( 'version' ); ?>" type="text/css" />
</head>
<body>
  <div class="wrap">
    <form method="post" action="">
      <h2>WordPress Emergency PassWord Reset</h2>
      <p><strong>Your use of this script is at your sole risk. All code is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness. Further, I shall not be liable for any damages you may sustain by using this script, whether direct, indirect, special, incidental or consequential.</strong></p>
      <p>This script is intended to be used as <strong>a last resort</strong> by WordPress administrators that are unable to access the database.
        Usage of this script requires that you know the Administrator's user name for the WordPress install. (For most installs, that is going to be "admin" without the quotes.)</p>
      <?php
      echo $answer;
      ?>
      <p class="submit"><input type="submit" name="update" value="Update Options" /></p>

      <fieldset class="options">
        <legend>WordPress Administrator</legend>
        <label><?php _e( 'Enter Username:' ) ?><br />
          <input type="text" name="e-name" id="e-name" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-name'] ) ); ?>" size="20" tabindex="10" /></label>
        </fieldset>
        <fieldset class="options">
          <legend>Password</legend>
          <label><?php _e( 'Enter New Password:' ) ?><br />
          <input type="text" name="e-pass" id="e-pass" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-pass'] ) ); ?>" size="25" tabindex="20" /></label>
        </fieldset>

        <p class="submit"><input type="submit" name="update" value="Update Options" /></p>
      </form>
    </div>
  </body>
</html>
<?php exit; ?>

Apriamo il nostro client FTP preferito, connettiamoci al nostro sito WordPress ed effettuiamo l’upload del file “modifica-password.php”.

Una volta completato l’upload, richiamate il file attraverso il browser nel seguente modo:

https://www.miositowordpress.com/modifica-password.php

Eseguite la semplice procedura a video e confermate. Una volta effettuato il cambio della password, ricordatevi di cancellare questo file per garantire la sicurezza del vostro sito!

Seguendo questi passaggi, sarete in grado di recuperare l’accesso al vostro sito WordPress con facilità, anche in situazioni in cui non avete accesso alla vostra casella di posta elettronica. È sempre consigliabile mantenere aggiornate le informazioni di contatto e le password per evitare complicazioni in futuro.

Altri contenuti interessanti

Pubblicità
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.

Leggi anche...

Rimuovere “category” dai link e dai titoli delle categorie di WordPress

Quando si crea un sito con WordPress, la struttura...

Come eliminare la categoria “Senza Categoria” in WordPress

Se hai un sito WordPress, probabilmente hai notato che...

WordPress lento? La guida definitiva per velocizzare il tuo sito

Quando si tratta di gestire un sito web, la velocità...

Sito WordPress bloccato in manutenzione: come risolvere?

Un problema comune che si pò incontrare durante la...

Clonare un sito WordPress

Esistono diverse ragioni per cui potrebbe essere utile clonare...

Disabilitare i commenti in WordPress

Una delle caratteristiche da sempre più apprezzate nei siti...
Pubblicità