Comment fusionner deux tables d'enregistrement de membres

Fermé
charles5353 Messages postés 28 Date d'inscription lundi 5 juillet 2021 Statut Membre Dernière intervention 5 février 2022 - 4 févr. 2022 à 14:09
 question - 9 févr. 2022 à 12:17
Bonjour

j'ai deux sites qui parlent de la même chose
le premier réalisé en php avec une zone membre
dont la structure est la suivante

et le deuxième sous wordpress
avec cette structure


je souhaiterais savoir si cela est possible de supprimer la première table et fusionner les champs a ceux de wordpress

De cette manière cela m'évitera des doublons

Donc j'ai pensé de remplacer dans le code php
Le changement de la connexion de la base de donnée de tel façon a ce que pour la gestion des membres se fasse vers wordpress
de remplacer
pseudo par user_login
password par user_pass

d'ajouter les champs
IP TOKEN et DATE_INSCRIPTION

de cette façon chaque système gère le mot de passe

Vous en pensez quoi ?

Cordialement
A voir également:

5 réponses

Whismeril Messages postés 19048 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 mai 2024 913
5 févr. 2022 à 09:57
Bonjour

concernant tes 3 champs, il faut te demander à quoi ils te servent aujourd'hui.
L'IP d'abord, ça n'est pas une data fixe. Même si tes membres ont une IP fixe au travail ou à la maison, ce qui n'est pas certain, rien ne les empêche de se connecter d'un smartphone, d'un ordinateur avec une clé 4G, de l'étranger etc... Bref ce n'est pas un moyen d'identifier dans le temps un membre.

Le Token ne doit pas être utile à WordPress, sinon y'en aurait un.

La date d'inscription, ça a un intérêt pour montrer une ancienneté, mais vu que dans WordPress elle n'y est pas ça va créer une incohérence dans tes données.

Mais ça n'est que mon avis, c'est à toi de voir.


Par contre tu vas être confronter à un autre problème: "Qui est Qui?"
  • Si dans les 2 bdd, tu trouves le même email, c'est la même personne.
    • Si cette personne a utilisé le même pseudo, c'est cool.

Il faudra lui envoyer un mail lui signalant que c'est le mot de passe de wordpress (ou l'autre selon ton choix) qui sera gardé, ou tu peux lui demander de choisir
    • Si cette personne n'a pas le même pseudo.
      • tu peux lui demander de choisir quel pseudo il garde
      • tu peux aussi forcer l'utilisation d'un des 2, mais faut le prévenir.
  • Si tu trouves le même pseudo, et pas la même adresse mail, il faut envoyer un mail à chaque et demander si c'est la même personne.
  • Si non, va falloir modifier un des 2 pseudo. Quand CCM a racheter CodeS SourceS ils ont mis "cs_" devant les pseudo qui étaient dans ce cas.
  • si oui, il faut le prouver, par exemple avec un code unique dans les 2 mails et le gars doit saisir les 2 codes. Et après, tu te retrouves dans les cas ci dessus, avec en plus, le besoin de choisir une seule adresse mail.
  • Et puis, il peut même y avoir, une personne qui a un compte avec des pseudos et des mails différents dans les 2 bdds. Il te faudra prévoir un moyen que cette personne te le signale pour fusionner les comptes.


0
charles5353 Messages postés 28 Date d'inscription lundi 5 juillet 2021 Statut Membre Dernière intervention 5 février 2022
5 févr. 2022 à 11:11
Bonjour
Déjà un grand merci pour les explications et l'aide

c'est vrai que l'IP j'en ai pas besoin ...
du cote de php l'utilisateur se connecte avec un pseudo et un mot de passe
le token sert pour la récupération du mot de passe
pour ce qui est de la date d'inscription dans wordpress c'est la user_registreed

Je comprends parfaitement les soucis que tu énumères
Mais mon idée globale est donc de pouvoir me servir de la base de donnée de wordpress pour réaliser les inscriptions qui seront faites du cote du site en php

Je vais tenter de donner plusieurs cas de figures et voir si cela serait possible

Un utilisateur A s'inscrit sur le site en php les données remplies sont envoyées vers la base de donnée wordpress

donc a ce moment les champs token,user_registered(anciennenment date_d'insciption),user_login (anciennenment pseudo),user_pass(anciennenment password),email(anciennement user_email )sont remplies
L'utilisateur A est bien enregistré

si il a perdu son mot de passe il devra le retrouver via le site en php grâce au token
Cet utilisateur sera bien dans la base de registre de wordpress mais n'aura pas d'accès au site wordpress ...

Si a présent l'utilisateur A veux s'inscrire sur le site de wordpess , cela va lui générer une erreur en lui indiquant qu'il existe déjà ...

je pourrais indiquer dans le message d'erreur de wordpress que le pseudo ou l'adresse email existe déjà et qu'il doit générer un mot de passe pour le site de wordpress


solution 2
A présent il y a une autre solution a laquelle je pense

Dés que je remarque un nouveau membre je lui envois un message en lui signifiant qu 'il existe le même site (wordpress ou en php)et lui proposer de changer un mot de passe pour le site sur lequel il n'est pas inscrit

En pratique
L'utilisateur A s'enregistre sur le site en php
Je lui envois un email que dans le même temps
Lui signifiant qu' il est inscrit sur le site de wordpress et qu'il peux y avoir accès grâce a un mot de passe

De cette façon il est inscrit sur les deux mais avec le même pseudo

Mais ce qui m'inquiète le plus c'est la table usermeta qui est une table liée directement aux utilisateurs de wordpress

Car lorsque l'utilisateur va s'enregistrer avec le site en php , seule la table user sera remplie ....

Mon but final est que l'utilisateur ne soit pas présent dans la base de wodpress et de php pour éviter les doublons
Mais je me rends compte qu'avec cette table usermeta cela ne sera pas possible


ou alors une solution a laquelle je ne pense pas ...
0
Whismeril Messages postés 19048 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 mai 2024 913
5 févr. 2022 à 13:23
je pourrais indiquer dans le message d'erreur de wordpress que le pseudo ou l'adresse email existe déjà et qu'il doit générer un mot de passe pour le site de wordpress


Pourquoi ne pas simplement faire en sorte que le mot de passe soit le même sur les 2 sites.
Dans le mail de confirmation, il te suffit de dire que l'inscription qu'ils viennent de faire est valable pour les 2 sites.

Je ne connais pas wordpress et je ne sais pas à quoi sert usermeta.
Je me suis permis de te donner des axes généraux car personne ne t'avais répondu jusque là.

Peut-être serait il judicieux de déplacer ta question dans le forum dédié à wordpress.
Je peux le faire si tu veux.

0
charles5353 Messages postés 28 Date d'inscription lundi 5 juillet 2021 Statut Membre Dernière intervention 5 février 2022
5 févr. 2022 à 16:09
Merci pour la réponse
oui avoir le meme mot de passe serait une solution
Mais de ce cote cela n'est pas évident
comment faire ?

Merci de m'avoir répondu

Mais ce qui m'embête le plus c est cette table usermeta

Oui tu peux toujours me rediriger sur le forum de wordpress
Mais ce forum n'est pas aussi actif que ceux de php , html et cgnie
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut,
toutes vos questions semblent se rapporter à SQL(le langage des base de données) et non PHP.
Différencier les 2 me semble une première étape.
Les autres réponses apportées me semblent pertinentes aussi: utiliser la même base et table pour les deux sites revient bien à fusionner cela.
Après même si ce n'est pas pratique il existe des moyens de fusionner (ou supprimer plutôt dans ce cas) l'une des données d'une table avec une autre.
Bien sûr c'est là qu'il faut que ce soit pris en compte au niveau de PHP(qui va utiliser les champs des tables pour les fournir/tester/utiliser avec une page HTML)

Concrètement en SQL:
à partir de la table ancienne à supprimer
si une donnée(nom utilisateur mot de passe et le reste) existe dans une table alors il n'y a rien à faire(sauf transmettre les données des jointures éventuelles bien sûr)
si elle n'existe pas dans la table existante qui va regrouper les données de l'ancienne alors on copie ces champs(en faisant en sorte qu'ils soient complets et pertinent).

SQL est assez simple comme langage informatique(très peu de fonctions voire la quasi inutilité de l'utilisation de variables) bien qu'il ait des propriétés propres adaptées au base de données: le tri/filtre et l'ordre des résultats de requêtes, la création d'alias et l'imbrication de requêtes les unes aux autres.

Une bonne chose à faire dans votre cas et d'écrire vos deux systèmes de gestion de données(les tables) et comparer pour voir les changements de noms et ajouts de champs nécessaires si cela est nécessaire.

Deux tables qui font la même chose(ou presque) est évidemment l'assurance de multiplier le temps de développement/maintenance et les risques d'erreurs par au moins 2.
Donc à éviter dès le départ si possible.
Dans le cas contraire(ici) cela peut impliquer un développement supplémentaire et des complications.
Comme demander à chaque utilisateur qui a crée un compte sur les 2 tables de choisir l'un des 2 pseudos pour garder celui qui compte et garantir l'unicité des données ou de déterminer arbitrairement que l'un des 2 doublon est supprimé(en rapatriant les données de la table inutile vers la table à utiliser = du travail supplémentaire qui sert pas à grand chose et peut potentiellement ajouter le risque de pertes de données)
0