1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"

Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.

Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.

Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.


Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Inscription Commune
Mots-clés » inscription, commune
25-07-2014, 7:25,
#1
Inscription Commune

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 )

Répondre
25-07-2014, 8:42,
#2
RE: Inscription Commune
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.

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
25-07-2014, 9:03,
#3
RE: Inscription Commune
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 ^^.
Répondre
25-07-2014, 9:07, (Modification du message : 25-07-2014, 9:08 par Saphir.)
#4
RE: Inscription Commune
(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 ?

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
25-07-2014, 9:18,
#5
RE: Inscription Commune
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.
Répondre
25-07-2014, 9:44, (Modification du message : 25-07-2014, 9:46 par Saphir.)
#6
RE: Inscription Commune
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).

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
25-07-2014, 10:08,
#7
RE: Inscription Commune
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 ^^
Répondre
25-07-2014, 10:44, (Modification du message : 25-07-2014, 10:44 par Saphir.)
#8
RE: Inscription Commune
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.

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
25-07-2014, 11:23,
#9
RE: Inscription Commune
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 ^^'.
Répondre
25-07-2014, 11:56, (Modification du message : 25-07-2014, 11:56 par Saphir.)
#10
RE: Inscription Commune
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.

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

Contact | MyBB.support | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS
 Utilitaire de traduction fourni par Regentronique