2008-11-11 11 views
16

J'ai besoin d'aide avec ce qui est probablement une question de débutant en termes de modification de phpBB.Comment puis-je intégrer les connexions des utilisateurs de mon site dans phpBB?

J'ai tout un système développé en PHP, et je voudrais intégrer phpBB afin que les gens puissent naviguer dans les forums et publier de façon transparente, sans se reconnecter. Maintenant, l'utilisation de la table des utilisateurs de phpBB comme table des utilisateurs de mon système (et l'enregistrement des personnes dans phpBB plutôt que dans mon site web) n'est malheureusement pas possible (il faudrait plus de travail pour refaire notre système que pour construire notre système). propre forum de base).
Je suppose que je peux pirater ma façon de faire croire à phpBB qu'un certain identifiant d'utilisateur a été identifié, cependant, cet utilisateur n'existera pas dans la table des utilisateurs de phpBB (ce qui, je le suppose, entraînera une erreur partout).

Tous les tutoriels et messages sur le forum que j'ai pu trouver impliquaient que phpBB était le principal. Je n'ai rien trouvé pour le faire dans l'autre sens.

Je suppose que la seule façon de résoudre ce problème est de synchroniser les deux tables. Maintenant, à condition de pouvoir synchroniser la table des deux utilisateurs, quelle est la meilleure façon d'intégrer les deux sites, en gardant les tables de connexion et d'utilisateurs de mon site comme les tables "primaires"?
De plus, y a-t-il quelque chose que je devrais garder à l'esprit lors de la création d'enregistrements dans la table des utilisateurs de phpBB? Ou est-ce relativement simple à comprendre? Sur quels tableaux devrais-je écrire, s'il y en a plus d'un?

Répondre

11

Ceci est une vieille question, donc je suis sûr que y ous avez travaillé quelque chose maintenant, mais si vous avez besoin de factoriser les choses à l'avenir, cela est tout à fait possible avec des plugins d'authentification dans phpBB3:

http://wiki.phpbb.com/Authentication_plugins

Je travaille sur un maintenant où phpBB est le système "secondaire", et ça se passe plutôt bien.

+0

J'ai suivi le lien que vous avez posté, il me semble que j'ai juste besoin de créer un fichier include/auth/auth_myauth.php et avoir une méthode dans le fichier, disons login_myauth ($ username, $ password) retournant un tableau. Quand je l'ai fait, je ne pouvais pas le mettre dans l'ACP, des suggestions? –

+0

Il vaudrait mieux poster une nouvelle question sur StackOverflow. Je n'ai pas utilisé phpBB depuis que j'ai posté ici il y a six ans, et cette page wiki avec laquelle je suis lié n'a pas été mise à jour depuis octobre 2011. Sauf si vous maintenez une ancienne version de phpBB, elle est probablement périmée. –

5

J'ai intégré phpBB avec un site auparavant, mais j'ai utilisé la table de connexion/système de login de phpBB comme le principal, comme vous l'avez dit. Puisque phpBB est un logiciel de forum assez avancé, ce serait un projet assez long de changer complètement son utilisateur et son système de connexion.

Lorsque j'ai dû utiliser le nom de connexion du site comme principal, j'ai utilisé PunBB. C'était beaucoup plus simple de modifier PunBB.

Si vous devez absolument utiliser votre propre connexion comme primaire, et phpBB, puis je suis d'accord avec vous que la façon la plus simple serait de garder les tables synchronisées, et appeler les deux scripts de connexion lorsque quelqu'un se connecte.

Lorsque vous insérez des données dans phpBB, la table des utilisateurs est assez simple. Chaque entrée contient les informations de base pour un utilisateur, et si vous avez des champs personnalisés pour les profils utilisateur, ils vont dans les tables profile_fields et profile_fields_data.

Une chose délicate est de savoir comment phpBB crypte les mots de passe des utilisateurs. Je pense que vous devez utiliser la fonction de phpBB appelée phpbb_hash($password) pour le faire.Il est déclaré dans le fichier phpbb/includes/functions.php

Pour le code de connexion phpBB, voir funciton login_box dans le fichier phpbb/includes/functions.php

2

Vous pouvez utiliser le ci-dessous pour vous connecter à phpBB:

$result=$auth->login($username, $password); 

if ($result['status'] == LOGIN_SUCCESS) { 

    echo "You're logged in"; 

} else { 

    echo $user->lang[$result['error_msg']]; 

} 
+0

Cela suppose que le site utilise la table des utilisateurs de phpBB. – Shinhan