Bonsoir à tous !

Je vous explique la situation : un pseudo "hacker" à eu accès au compte d'un des administrateurs de nos forums et à effacer 2 membres dont lui même. Du coup le forum se retrouve avec plein de messages "orphelins" posté par des anonymous...

Pour faire le tri entre les posts des 2 membres (qui ont du recrée 2 nouveaux comptes) qui ont le même poster_id (-1 pour anonymous) j'ai eu l'idée d'utiliser les adresses IP. Après quelques vérifications, nous avons constaté que les posts ayant une certaine IP correspondaient bien au posts du membre en question.

J'ai afficher dans phpmyadmin via la fonction recherche tous les posts pour l'IP correspondant à un des membres (enfin ce qui correspond à l'IP dans la BDD / poster_ip).

Cependant, en les sectionnant tous d'un coup je ne peux pas leur affecter leur nouveau poster_id (correspondant au nouveau compte). Il faut les faire un par un... et il y a des milliers de posts.

Donc, je me doute qu'avec une requête SQL ça doit être faisable d'attribuer à tous ces posts leur nouveau poster_id (remplacer le -1 par 330).

Ci dessous, voici les requête que phpmyadmin m'a sorti lors de la recherche des posts avec l'IP et lors de l'attribution du nouveau poster_id.

Requete SQL de recherche via adresse IP Wolf Frend :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT *
FROM `phpbb_posts`
WHERE `poster_ip` LIKE CONVERT( _utf8 '52e3f1be'
USING latin1 )
COLLATE latin1_german2_ci
LIMIT 0 , 30
Requete SQL de changement du poster_id=-1 (Anonymous) en poster_id=330 (nouveau compte Wolf) et post_username = NULL au lieu de post_username = Anonymous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
UPDATE `phpbb_posts` SET `poster_id` = '330',
`post_username` = NULL ,
`post_edit_time` = NULL WHERE `post_id` =380 LIMIT 1 ;
___________

Et ça c'est les même requête écrite différemment je crois :

Requete 1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$sql = 'EXPLAIN SELECT * FROM `phpbb_posts` WHERE `poster_ip` LIKE CONVERT(_utf8 \'52e3f1be\' USING latin1) COLLATE latin1_german2_ci';
Requete 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$sql = 'UPDATE `phpbb_posts` SET `poster_id` = \'330\', `post_username` = NULL, `post_edit_time` = NULL WHERE `post_id` = 380 LIMIT 1';

Merci à tous ceux qui essayeront de m'aider !