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; certo, il noto blog engine mette a disposizione un sistema per il recupero della password tramite posta elettronica, ma anche in questo caso ci possono essere dei problemi, immaginate per esempio di non potervi loggare alla vostra mailbox per un down del server di posta oppure perchรฉ, inavvertitamente, il vostro prezioso account di amministrazione di WordPress รจ associato ad una casella di posta non piรน attiva! Come fare in situazioni come questa per recuperare l’accesso alla dashboard di WordPress e cambiare la password dell’utente amministratore pur non avendo accesso al pannello di amministrazione?

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

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, ovviamene.

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.

A questo punto eseguito questo secondo comando:

wp user update 1 --user_pass=nuovapassword

Nel mio esempio ho impostato una nuova password (“nuovapassword”) per l’utente con identificativo 1.

Utilizzare una query SQL (mediante phpMyAdmin)

Una soluzione piuttosto semplice per porre rimedio al vostro problema e cambiare la password di amministrazione di WordPress consiste nel lanciare una semplice query SQL all’interno del vostro database. Per farlo potete utilizzare, ovviamente, phpMyAdmin.

Effettuiamo l’accesso a phpMyAdmin, selezioniamo il database relativo alla nostra installazione di WordPress, selezioniamo la tab “SQL” e digitiamo la seguente query:

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

Naturalmente, perchรฉ l’UPDATE funzioni sarร  necessario sostituire “nuovapassword” con la nuova password da associare all’Admin e “nomeutente” con il nome relativo al nostro utente amministratore.

Utilizzare uno script di emergenza

Una terza soluzione consiste nell’utilizzare uno dei tanti script per la “gestione dell’emergenza” reperibili in Rete. Personalmente ho utilizzato con successo questo script sull’installazione WordPress di alcuni clienti che non avevano possibilitร  di accedere al phpMyAdmin risolvendo il problema in pochi minuti.

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

<?php
/*
  This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License, or
      (at your option) any later version.

  This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

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 “cambia-password.php”.

Una volta completato l’upload richiamiamo il file attraverso il browser in questo modo:

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

Eseguiamo la semplice procedura a video e diamo conferma. Una volta effettuato il cambio della password ricordiamoci di cancellare questo file!

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...

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...

WordPress: Custom Post Type, cosa sono e come crearli

Nonostante qualcuno pensi che Wordpress sia una semplice piattaforma...

Mettere in sicurezza WordPress: proteggere la cartella wp-admin da accessi non autorizzati

Vediamo come implementare una maggior sicurezza all'interno del nostro...

Mettere WordPress in manutenzione senza usare plugin

Quando si deve mettere in manutenzione un blog basato...

Come disabilitare, limitare o cancellare le revisioni in WordPress

Le "revisioni" sono una funzionalitร  molto interessante di WordPress,...
Pubblicitร