Récupérer un compte utilisateur sur WordPress
Attention, cet article a été déplacé dans les archives, donc le contenu peut ne plus être à jour. A vous de voir 🙂
Si vous avez déjà travaillé sur un projet WordPress sur lequel vous n’aviez pas de compte administrateur, ou sur lequel le client a perdu ses accès, ce bout de code est pour vous.
Collez le simplement dans un fichier uzer.php (ou autre nom unique) à la racine de votre installation WordPress (à côté de wp-config.php), configurez le, et accédez-y depuis un navigateur.
Il créera un accès administrateur à votre nom, duquel vous pourrez aisément reprendre en main votre projet.
Attention : N’oubliez pas de supprimer ce fichier après avoir créé ces paramètres !
<?php
$new_uzer_username = 'darklg';
$new_uzer_password = 'isecretlylove50cent';
$new_uzer_email = 'darklg.blog@gmail.com';
// On ne touche à rien d'autre ;)
include dirname(__FILE__) . '/wp-load.php';
require_once( ABSPATH . WPINC . '/registration.php');
if(username_exists($new_uzer_username)){
echo 'Cet utilisateur existe deja.';
exit();
}
$id_user = wp_create_user($new_uzer_username, $new_uzer_password, $new_uzer_email);
if(is_object($id_user)){
echo 'Echec de la creation d\'utilisateur';
exit();
}
global $wpdb;
$wpdb->update(
'wp_usermeta',
array('meta_value' => 'a:1:{s:13:"administrator";s:1:"1";}'),
array('user_id' => $id_user, 'meta_key' => 'wp_capabilities')
);
$wpdb->update(
'wp_usermeta',
array('meta_value' => '10'),
array('user_id' => $id_user, 'meta_key' => 'wp_user_level')
);
echo 'Succes de la creation d\'utilisateur. N\'oubliez pas de supprimer ce fichier.';
?>
Update : Julio de BoiteaWeb a largement amélioré ce script, qui est disponible sur son site :
« WP Backdoor User »
Pas mal comme petit script, par contre le wp_insert_user renvoie un wp_error en cas d’erreur, tu peux récupérer le message et l’afficher avec un is_wp_error et un get_message() ;).
Tu utilises la classe $wpdb, par contre tu ne prend pas en compte le fait que les gens puissent renommer leur préfixe, utilise plutôt $wpdb->usermeta pour le nom des tables, pour la métavalue de administrator, normalement un serialize( array( ‘administrator’ ) ) devrait suffire ;).
Par contre rien n’indique dans le script si les $wpdb->update passent ou pas. D’ailleurs il faudrait utiliser le $wpdb->prepare pour les mises à jour, au cas où ;).
Sinon ça peut se révéler utile 😉
Terrible ! Merci beaucoup pour tes retours, je me penche là dessus 🙂
Coincidence ?
Je viens d’avoir besoin de me créer un utilisateur en ayant seulement un accès au FTP.
Ce script est top !
Merci Darklg !
Génial ! Merci pour le partage d’infos, ça a marché au poil !
utilise mais risquer pour les personne ayant un blogue wordpress car avec ce fichier tu donne la manière a un petit pirate de hacker un site juste en ayant un accès sur le FTP du webmaster tu me dira qu’il ya d’autre moyen mais la je parle pour un petit pirate n’ayant que peu d’expérience dans le codage mais sinon bonne astuce en espérant que des rat n’en profite pas
C’est sûr que si quelqu’un récupère mon accès FTP, j’ai d’autres soucis avant ça :’)
Basé sur ce script, j’en ai fait un autre qui a le même but, je t’ai mis en auteur aussi, pas de raison :
http://baw.li/wpbu
A bientôt et merci pour l’inspiration !
Hallelujah !!
Ca fait une heure que je cherche, merci beaucoup !
Vous etes un magicien, merci bcp, cela marche tellement vite que je n’y crois pas mes yeux…merci bcp! mais je n’ai pas acces aux plugins, themes, module and other