MyBB.support, le portail francophone de MyBB
Inscription Commune - Version imprimable

+- MyBB.support, le portail francophone de MyBB (http://mybb.support)
+-- Forum : MyBB.fr (http://mybb.support/forum-1.html)
+--- Forum : Support (http://mybb.support/forum-5.html)
+--- Sujet : Inscription Commune (/thread-6974.html)



Inscription Commune - oOScuByOo - 25-07-2014


Encore bonjour MyBB =D

Aujourd'hui je vient a vous avec un problème de taille ^^.

Voila lors de mon inscription sur mon forum MyBB je souhaiterais qu'en même temps les Données inscrites dans Username, Password et Email soit elles aussi inscrites dans une autre Table en gros qu'elles s'inscrivent dans Mybb_user ( sa c'est bon logique ^^ ) mais Également dans une Table Nommer PLAYER et respectivement ( USERNAME, PASSWORD, EMAIL ) donc pour ce faire voila a quoi j'ai penser :

Dans :

Code PHP :
Member.php 

A la suite de :

Code PHP :
$user_info $userhandler->insert_user(); 

Ajouter le code suivant :

Code PHP :
$sql "INSERT INTO PLAYER (USERNAME,PASSWORD,EMAIL)
    VALUES('
$username', '$password','$email')"

Or cela inscrit correctement dans la table Mybb_user, mais n'inscrit rien dans la table PLAYER.

Si quelqu'un a la solution je suis preneur ^^.

Bisouilles. ( Oui parce qu’en fait je vous lâche pas et on commence a être proches XD )




RE: Inscription Commune - Saphir - 25-07-2014

Bonjour oOScuByOo.

Non seulement votre requête SQL est incorrecte, mais en plus elle est inutile.
A quoi vous servira le mot de passe ? Il est crypté, et vous n'enregistrez pas la clé de salage...
Par ailleurs, je n'ose imaginer ce qui se passera si deux personnes avec le même nom d'utilisateur et la même adresse de courrier électronique s'inscrivent...

Quoi qu'il en soit, nous vous déconseillons très fortement de modifier directement les fichiers de MyBB.
Les modifier pour tenter d'en altérer le fonctionnement risquerait de causer de graves dommages à votre forum.

Si vous voulez utiliser la base de données de MyBB avec votre propre site, je vous invite à vous inspirer du tutoriel d'Exdiogene : Se connecter/déconnecter à partir d'une page web..
Au cas où et pour rappel, n'intervenez jamais vous-même en écriture sur les tables de MyBB (seulement sur les tables que vous créez vous-même), afin de ne pas créer de conflits avec le logiciel : seulement en lecture.



RE: Inscription Commune - oOScuByOo - 25-07-2014

Bonjour Saphir,

Merci a vous pour le réponse, il est vrai que j'avais oublier l'encodage md5 pour le password, pour ce qui est de la vérification Mail et Username elle se fait avant donc a mon avis pas de soucis a ce niveau la.

Et je ne souhaite pas utiliser la Base de Données MySQL avec mon site mais bel et bien entrer les données dans deux tables différentes, et je ne peut pas non plus modifier le nom des tables car cela serais encore plus compliquer et long a faire avec mon script qu'avec MyBB ^^' ...

Du coup je recherche une façon d'inscrire ces données ( Username, Password et Email ) dans les deux tables.
J'ai également eu vent d'une possibilité de script via JS mais je n'ai pas de très grandes connaissance dans ce langage et cherche donc une âme charitable ^^.


RE: Inscription Commune - Saphir - 25-07-2014

(25-07-2014, 9:03)oOScuByOo a écrit :  je ne souhaite pas utiliser la Base de Données MySQL avec mon site mais bel et bien entrer les données dans deux tables différentes

Si c'est effectivement deux bases différentes, le mieux est de créer un plugin afin de ne pas modifier directement les fichiers de MyBB.
Si ce sont deux tables différentes de la même base de données, ça n'a aucun intérêt.

Dans votre code, comment est défini $sql ?


RE: Inscription Commune - oOScuByOo - 25-07-2014

Je me suis justement rendu compte que je ne l'avais pas définie =s ... Peut etre du a l'heure ^^' ...

Et il s'agit bien d'une Table différente dans la même Base, le soucis est que ces deux tables ont deux architectures différentes hormis deux/trois colonnes tel que User etc ...
J'ai besoin de faire cela car au pire j'avais penser a ajouter les colonnes nécessaires sur la table de MyBB, mais beaucoup trop de requêtes sont envoyer vers la table PLAYER si je devais modifier une seule de ces deux tables je deviendrais fou et abandonnerais avant même d'avoir modifier le tier des fichiers associé ^^' ...

Je suis donc dans l'impasse et doit trouver une solution pour réaliser cette double inscription ... Quitte même a inverser le processus et venir inscrire dans la table Player Puis dans la Table MyBB via mon propre système d'inscription, mais cela m'obligerais a détourner le lien d'inscription a MyBB vers mon script et je ne pense pas que ce serais la meilleure solution.


RE: Inscription Commune - Saphir - 25-07-2014

Avec le tutoriel d'exdiogene, vous pouvez simplement récupérer l'UID (dans la variable $mybb->user['uid']) de l'utilisateur actuellement connecté (sans envoyer de requête).

Créez votre table comme ceci (attention, ce n'est pas du code SQL, créez la table manuellement) :
Code :
TABLE player (
    uid INT(11) PRIMARY_KEY,
    votre_champ ...,
    votre_champ_2 ...,
    ...
)

Deux lignes dans votre code :
Code :
$player_q = $db->query("SELECT * FROM player WHERE uid = " . $mybb->user['uid']);
$player = $db->fetch_array($player_q);

Par exemple, pour l'administrateur (qui a l'UID 1), si votre table player contient :
Code :
| uid | CHAMP1 | CHAMP2 |
-------------------------
|  1  |  TOTO  |  TITI  |
$player['uid'] vaudra 1,
$player['CHAMP1'] vaudra "TOTO" et
$player['CHAMP2'] vaudra "TITI".

Au final, une seule requête a été envoyée, et c'est sur votre table player. Aucun requête vers mybb_users (du moins, aucune requête visible, c'est MyBB qui s'en charge en amont).


RE: Inscription Commune - oOScuByOo - 25-07-2014

Merci de votre aide Saphir mais hélas ce n'est toujours pas sa ^^'

En fait si je souhaite faire cela c'est simplement pour éviter aux joueurs d'avoir a s'inscrire sur Le forum et sur le jeu mais pour qu'ils aient leurs compte lier ^^


RE: Inscription Commune - Saphir - 25-07-2014

Ce sera le cas avec le tutoriel d'Exdiogene et ma proposition de table.

Une fois l'utilisateur connecté à MyBB, la valeur de $mybb->user['uid'] vaudra leur numéro d'identification (1 pour le fondateur), y compris sur votre site (à condition de suivre le tutoriel d'Exdiogene).
Vos utilisateurs n'auront jamais à se connecter ailleurs : votre site n'aura qu'à vérifier que $mybb->user['uid'] est positif (> 0), ce qui signifiera que l'utilisateur est bien connecté.

C'est la méthode que j'utilise sur tous mes forums, et je n'ai jamais eu de problème.


RE: Inscription Commune - oOScuByOo - 25-07-2014

Vraiment merci vous Saphir mais je ne pourrais pas procéder comme cela.

Mon Script fonctionne déjà a l'aide d'un cookie si je ne le charge pas je ne pourrais le faire fonctionner et pour le charger je doit me logguer =s ...
Je n'ai donc aucuns autre choix il faut que quoi qu'il arrive je parviennent a ajouter Utilisateur et Mot de Passe dans les deux tables en même temps =s ... Je suis perdu mais bon certain semble avoir réussi donc cela doit être faisable ^^'.


RE: Inscription Commune - Saphir - 25-07-2014

Je pense qu'il sera plus aisé de modifier votre script que de modifier MyBB.

Voici ce qui se passe quand vous modifiez member.php comme vous l'avez fait, outre le fait que c'est inutile :
  • vous induisez une faille de sécurité ;
  • vous redéfinissez inutilement la connexion à la base de données : exemple, vous voulez rentrer chez vous, et vous voulez que votre ami, à côté de vous, rentre également, donc vous ouvrez la porte devant vous pour entrer (variable $db), et vous ouvrez la porte de derrière pour que votre ami puisse rentrer (variable $sql) ;
  • vous sous-entendez que le seul moyen qu'a MyBB de créer un utilisateur dans la base de données est via le formulaire d'inscription, ce qui n'est pas le cas : si un utilisateur est créé dans la table mybb_users par MyBB autrement que par le formulaire d'inscription, il ne sera pas ajouté dans votre table player.


MyBB fonctionne également avec des cookies. L'avantage est qu'il les exploite à votre place de sorte que vous n'ayez pas à le faire vous-même.

Quoi qu'il en soit, nous ne vous aiderons pas à modifier les fichiers source de MyBB, dans la mesure où cela présente un énorme risque pour votre forum.


 Utilitaire de traduction fourni par Regentronique