[Réglé] Quelles tables sont utilisés pour la création d'un user

Aide aux auteurs d'extensions pour phpBB 3.2.x

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

[Réglé] Quelles tables sont utilisés pour la création d'un user

Messagepar Petit_Jedi » 27 Juil 2018 à 11:47

Bonjour à tous

Je cherchais dans quelle partie du forum je pourrais poser ma question, et je ne suis pas sur de l'endroit.
Cependant la partie "développement" me paraissais la plus approprié.
Si ce n'est pas le cas je vous pris de m'en excuser par avance et de déplacer le sujet dans la bonne section.

J'ai installé un forum phpbb sur un site de compagnie aérienne virtuel.
La compagnie tourne sur un VMS qui est vieux et plus maintenu (phpvms)

Je souhaiterais à la création d'un nouveau pilote créer automatiquement sont compte sous phpbb
Je cherche donc les différentes tables impactés ainsi que les différentes valeurs des champs.
J'ai cherché un peu sur le forum et sur le web, mais je n'ai rien trouvé de probant à ce sujet.

Si les gourou de phpbb peuvent me donner ces infos ou alors si il y'a qqpart un descriptifs de toutes les différentes tables je suis preneur :)

Par avance merci et encore une fois désolé si je ne suis pas dans la bonne section

Amicalement
Modifié en dernier par Petit_Jedi le 28 Juil 2018 à 18:02, modifié 1 fois.
Petit_Jedi
Posteur néophyte
Posteur néophyte
 
Messages: 5
Enregistré le: 26 Juil 2018 à 23:37

Re: Quelles tables sont utilisés pour al création d'un user

Messagepar Zoddo » 27 Juil 2018 à 11:59

Bonjour,

Un certains nombre de tables rentrent en jeux, avec des synchronisations à effectuer.

Je pense que le plus simple reste d'utiliser les fonctions du core de phpBB.
Je vous renvoi vers une page du wiki de phpBB qui contient des exemples.

Note : pour utiliser les fonctions de phpBB, vous devez inclure son fichier common.php (qui initialise les objets nécessaires, ainsi que la connexion à la base de données. Le plus simple est de créer une petite API (un fichier PHP) qui sera appelé par votre site web pour provoquer la création de l'utilisateur.
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7030
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: Quelles tables sont utilisés pour al création d'un user

Messagepar Petit_Jedi » 27 Juil 2018 à 12:12

Bonjour

Merci de ta réponse.
Je vais aller regarder.

En fait je voulais faire au plus simple, à savoir simplement sur validation de mon profil rajouter un bout de code avec simplement des insert dans les tables concernés et éviter d'aller toucher au core du forum

ton lien devrais répondre à mon besoin :)
merci

Amicalement
Petit_Jedi
Posteur néophyte
Posteur néophyte
 
Messages: 5
Enregistré le: 26 Juil 2018 à 23:37

Re: Quelles tables sont utilisés pour al création d'un user

Messagepar Zoddo » 27 Juil 2018 à 12:24

Dans ce cas, vous pouvez regarder les requêtes effectuées par la fonction user_add() de phpBB : https://github.com/phpbb/phpbb/blob/mas ... #L169-L416

Mais vous pouvez très bien utiliser les fonctions de phpBB sans modifier le core du forum. Ça ressemble à un simple script de ce style placé à la racine du forum qui est appelé par votre site web (avec file_get_contents() par exemple) :
Code: Tout sélectionner
<?php

define
('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);

include(
$phpbb_root_path . 'common.' . $phpEx);
include(
$phpbb_root_path . 'includes/functions_user.' . $phpEx);

// Récupération des données ici, $_REQUEST['var'] est accessible avec $request->variable('var', '')

$user_row = array(
    'username'              => $username,
    'user_password'         => phpbb_hash($password),
    'user_email'            => $email,
    'group_id'              => 2, // ID 2 = Groupe "Utilisateurs enregistrés", il doit TOUJOURS être défini sur cette valeur
    'user_type'             => USER_NORMAL,
    'user_ip'               => $ip,
    'user_regdate'          => time(),
);

$user_id = user_add($user_row);

echo $user_id
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7030
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: Quelles tables sont utilisés pour al création d'un user

Messagepar Petit_Jedi » 27 Juil 2018 à 14:38

re

Merci pour le retour
Je pense que je vais faire au plus simple à savoir la deuxième solution par le file_get_contents()

j'en profite pour une autre question, la partie arraypour $user_row
tous les éléments sont nécessaire à l'array ou ce que vous m'avez mis dans l'exemple est la partie "strict minimum" ?

amicalement
Petit_Jedi
Posteur néophyte
Posteur néophyte
 
Messages: 5
Enregistré le: 26 Juil 2018 à 23:37

Re: Quelles tables sont utilisés pour al création d'un user

Messagepar Zoddo » 27 Juil 2018 à 14:52

Seul les éléments username, group_id, user_email et user_type sont obligatoires, mais je conseil de préciser les autres ;)

Si besoin, vous pouvez aussi ajouter certains des éléments présents ici : https://github.com/phpbb/phpbb/blob/mas ... #L205-L251

PS : Si possible, utilisez cURL à la place de file_get_contents (pour envoyer les données en POST et non en GET) et avec une URL en HTTPS si vous avez besoin de transmettre le mot de passe de l'utilisateur en clair ;)



Edit : J'étais dans mon dev, donc j'ai répondu sans penser à l'autre technique. Vous pouvez faire votre synchro dans le sens inverse : c'est-à-dire que c'est phpBB qui va venir lire dans la base de données de votre site pour vérifier les identifiants/mots de passe (et éventuellement créer l'utilisateur si il n'existe pas).

Pour cela, il suffit de créer un fournisseur d'authentification : https://area51.phpbb.com/docs/dev/3.2.x ... -providers
La doc pour phpBB 3.1/3.2 n'est pas très complète, mais vous pouvez vous aider de celle de 3.0 pour mieux comprendre le fonctionnement (qui est quasi identique) : https://wiki.phpbb.com/Authentication_plugins
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7030
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: Quelles tables sont utilisés pour al création d'un user

Messagepar Petit_Jedi » 27 Juil 2018 à 16:04

dans l'absolu le système de provider semblerait intéressante et me permettrais de résoudre un autre soucis..
en effet je souhaite que l'utilisateur qui s'identifie sur le site n'ai pas à le refaire pour aller sur phpbb (sachant que le forum est en sous domaine), je commençais à regarder du côté de OAuth mais bon pour être franc ça va être au dessus de mes compétences en la matière...

Je vais donc dans un premier temps rester sur la création simple du user dans phpbb lorsque je valide le compte sur mon backoffice
:)

Amicalement
Petit_Jedi
Posteur néophyte
Posteur néophyte
 
Messages: 5
Enregistré le: 26 Juil 2018 à 23:37

Re: Quelles tables sont utilisés pour al création d'un user

Messagepar Zoddo » 27 Juil 2018 à 16:50

Il est possible de créer un provider non-OAuth (OAuth est un mécanisme qui permet de s’authentifier avec des tiers que tu ne contrôles pas tel que Google, Facebook, Twitter ...).

C'est vrai que dans votre cas, un provider permettrait une connexion unifiée entre le site et le forum (et vérifiant les cookies créer par le site).

Si un jour vous souhaitez basculer sur un provider, n'hésitez pas à ré-ouvrir un sujet dans ce forum pour demande de l'aide ;)
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7030
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: Quelles tables sont utilisés pour al création d'un user

Messagepar Petit_Jedi » 28 Juil 2018 à 17:22

Bonjour

Merci pour votre aide.
J'ai réussi à faire ce que je souhaitais de manière simple ;-)

Je reviendrais vers vous dans un autre post pour la partie "provider"

Merci pour l'aide

Amicalement
Petit_Jedi
Posteur néophyte
Posteur néophyte
 
Messages: 5
Enregistré le: 26 Juil 2018 à 23:37


Retourner vers Aide au développement

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité