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 :
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 :
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 :
$sql = 'EXPLAIN SELECT * FROM `phpbb_posts` WHERE `poster_ip` LIKE CONVERT(_utf8 \'52e3f1be\' USING latin1) COLLATE latin1_german2_ci';
Requete 2 :
$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 !
Partager