[Forum phpbb3] Script externe de suppression d'un membre

WRInaute discret
Bonjour à tous,

Voila, j'ai un petit problème pour le développement d'un script externe à phpbb3.
Je souhaiterais supprimer un utilisateur du forum directement via une page de mon site plutôt que de passer par le panneau d'admin du forum.

J'essaye d'utiliser la fonction user_delete dans le fichier include/functions_user.php mais j'ai une erreur qui s'affiche:
Code:
Fatal error: Cannot redeclare class template in /homez/monsite/www/Forum/includes/template.php on line 24

voici le code que j'ai intégré à mon script de suppression de membre:
Code:
    define('IN_PHPBB', true);
    $phpbb_root_path = './Forum/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup('ucp');
    $error=array();
  
  //on récupère l'id du membre à supprimer
  $ReqId="SELECT user_id
          FROM phpbb_users
          WHERE username=\"$Pseudo\""; //pseudo est bien définit plus haut
  $RepId=Requete($ReqId, $G_Pointeur); //exécution de la requête
  
  $ligne=mysql_fetch_assoc($RepId);
  
  
  //on supprime le membre
  user_delete('retain', $ligne['user_id']);

Je pense avoir un problème au niveau de la partie de code précédant la requête, mais je ne voit pas ou...
Voilà, j'espère que quelqu'un à déjà fait ca ici, si c'est le cas merci de m'éclairer.
 
WRInaute passionné
Tu dois déjà déclarer la class "template" quelque part (peut-être au dessus) ou peut-être dans tes includes/require..
Je pense que ça doit être déclaré dans le common.php.
Peut-être que la fonction user_delete a une sortie affichage utilisant cette classe.
 
WRInaute discret
Bonjour et merci pour la réponse.
En fait, j'ai vu quelque part que le message apparaissait parce que le template était déjà déclaré.
Du coup, j'ai été dans le fichier include/Template.php et j'ai ajouté
Code:
if ( class_exists('Template') )
{
   return;
}
juste avant la ligne
Code:
class template
{

Ce qui permet de ne pas re-déclarer la classe si celle-ci l'est déjà. (je ne sait pas si je m'exprime bien je ne suis pas un grand pro de l'objet :wink:

Merci
 
Discussions similaires
Haut