Page 1 sur 1

[Résolu] Implémentation d'un forum phpBB3, Liaison des utili

Posté : 20 mai 2008, 00:09
par slim-toc
Bonjour tout le monde,

Je ne suis pas un habitué des forums et espère donc avoir placé mon sujet dans la bonne catégorie.

Dans le cadre du développement d'un site web pour une association, je dois ajouter un forum permettant aux membres du site de pouvoir s'échanger des messages.

Par manque de temps, j'ai décidé d'implémenter un forum préexistant. Mais je ne trouve aucune solution existante pour ce que je veux faire.

Je n'ai que deux contraintes importantes:

1. le forum une fois implémenté dois prendre l'identité visuelle du site.
2. je dois pouvoir lier les utilisateurs de mon site avec les utilisateurs du forum. Simplement pour éviter un double login et une double inscription.

C'est surtout le deuxième point qui me donne du fil à retordre.

Est-ce que quelqu'un aurait un bon forum (gratuit) qui permette de faire ces deux choses ?

Je précise ici que j'ai commencé l'implémentation de phpBB3 mais suis resté bloquer avec cette histoire de liaison des utilisateurs qui semblent impossible. (j'ai lu qu'un module permettait cela sur phpBB2 mais court-circuitais l'accès à l'administration du forum... je n'ai pas tester cette solution qui apparemment n'est pas optimale.)

J'espère avoir été assez clair et je vous remercie d'avance pour vos réponses!

Posté : 20 mai 2008, 18:32
par Victor BRITO
Pourquoi ne pas regarder du côté de PunBB et de Puntal ? ;)

Posté : 20 mai 2008, 23:24
par slim-toc
Rebonjour,

Alors, après de longues recherches j'ai quand même trouvé une solution que je post pour ceux qui aurait le même problème.

J'ai réussi à dénicher ces 2 scripts permettant de gérer les inscriptions et les login pour phpBB3 depuis des scripts externes. Après modification pour mon cas voilà ce que ça donne.

Pour l'inscription, après l'insertion dans mes tables de gestion de membre j'ajoute:

Code : Tout sélectionner

define('IN_PHPBB', true); global $phpbb_root_path; global $phpEx; global $db; global $config; global $user; global $auth; global $cache; global $template; # your php extension $phpEx = substr(strrchr(__FILE__, '.'), 1); $phpbb_root_path = './phpBB3/'; /* includes all the libraries etc. required */ require($phpbb_root_path ."common.php"); $user->session_begin(); $auth->acl($user->data); /* the file with the actual goodies */ require($phpbb_root_path ."includes/functions_user.php"); $username = $loginMembre; $password = $passwd; $email = $eMailPriveMembre; $user_row = array( 'username' => $username, 'user_password' => md5($password), 'user_email' => $email, 'group_id' => 2, #Registered users group 'user_timezone' => 0, 'user_dst' => 1, 'user_lang' => 'fr', 'user_type' => 0, 'user_actkey' => '', 'user_dateformat' => 'D M d, Y g:i a', 'user_style' => 1, 'user_regdate' => time(), ); /* Now Register user */ $phpbb_user_id = user_add($user_row);
Puis lors du login, après avoir créer mes propres variables de session je rajoute:

Code : Tout sélectionner

define('IN_PHPBB', true); global $phpbb_root_path; global $phpEx; global $db; global $config; global $user; global $auth; global $cache; global $template; $phpbb_root_path = './phpBB3/'; $phpEx = substr(strrchr(__FILE__, '.'), 1); require($phpbb_root_path ."common." . $phpEx); // Start session management $user->session_begin(); $auth->acl($user->data); $user->setup(); if($user->data['is_registered']) { //User is already logged in echo 'User is already logged in'; } else { $username = $loginMembre; $password = $passwdMembre; $result = $auth->login($username, $password); if ($result['status'] == LOGIN_SUCCESS) { //User was successfully logged into phpBB echo 'User was successfully logged into phpBB'; } else { //User's login failed echo 'User\'s login failed'; } }
Ainsi, autant l'inscription que le login fonctionne correctement sur le forum et de façon complètement transparente. Du coup, un seul formulaire d'inscription et de login.

Voilà! J'espère que cela servira à quelqu'un. Ce n'est pas compliqué mais l'info à été assez dure à trouver. Alors autant la remettre ici ;-)

En tout cas, merci Victor d'avoir pris le temps de me donner des pistes à suivre.