Mysql
 sql >> Base de données >  >> RDS >> Mysql

se connecter en tant qu'utilisateur ou administrateur à partir de 2 tables différentes

Vous devez spécifier les deux tables avec le email colonne :

SELECT * 
FROM sollicitant, bedrijf 
WHERE sollicitant.email = '$inputEmail' 
AND bedrijf.email = '$inputEmail'

Une autre possibilité consiste à utiliser un JOIN explicite avec alias' (les alias' servent juste à raccourcir les choses, vous n'êtes pas obligé de les utiliser.) :

SELECT *
FROM sollicitant s, bedrijf b
ON s.email = b.email
WHERE s.email = '$inputEmail' 

Cela signifie que vous n'avez qu'à prendre en compte l'eamil dans une colonne d'une table en tant que JOIN s'assure que vous n'obtenez que les lignes ayant un e-mail correspondant. Si la requête est vide, l'e-mail n'existe pas dans les deux.

Modifier

Si vous souhaitez décider où aller en fonction du rôle d'un utilisateur, vous devez regrouper tous les utilisateurs dans un tableau comportant une colonne qui délimite le rôle de l'utilisateur :

SELECT * FROM users WHERE email = '$inputEmail' 

Puis le PHP une fois que vous avez récupéré les données :

if('sollicitant' == $row['role']) {
    header('Location: sollicitant.php');
    exit();
} elseif ('bedrijf' == $row['role']) {
    header('Location: befrijf.php');
    exit();
} else {
    echo 'There is a problem with your login.';
}        

Attention !

... comme d'autres l'ont dit...

Petit Bobby dit votre script est exposé aux attaques par injection SQL. . Même échapper à la chaîne n'est pas sûr !

Je déteste quand les gens disent "Je ne suis pas si loin..." ou "Ce site ne sera pas public..." ou "C'est seulement pour l'école, donc la sécurité n'a pas d'importance..." . Si les enseignants et les professeurs ne parlent pas de sécurité dès le premier jour, ils le font mal. Défiez-les. Ils enseignent des pratiques de codage bâclées et dangereuses que les étudiants devront désapprendre plus tard. Je déteste aussi quand les gens disent :"J'ajouterai la sécurité plus tard..." ou "La sécurité n'est plus importante maintenant..." ou "Ignorer le risque de sécurité..." .

Ne stockez jamais de mots de passe en texte brut ! Veuillez utiliser les fonctions intégrées de PHP pour gérer la sécurité des mots de passe. Si vous utilisez une version de PHP inférieure à 5.5, vous pouvez utiliser le password_hash() pack de compatibilité . Il n'est pas nécessaire de échapper les mots de passe ou utilisez tout autre mécanisme de nettoyage sur eux avant le hachage. Cela change le mot de passe et provoque un codage supplémentaire inutile.