[PHP & MYSQL] vérification login sur 2 tables
Fermé
Bonjour,
Je suis entrain de faire un site pour le dépannage informatique (partie client et technicien)
Pour cela j'ai créé deux tables: tblclient et tbltechnicien (avec les info personnelles)
Lors de la connexion au site, j'aimerai que mon site soie capable de vérifier le login et de savoir si c'est un technicien ou un client.
Une fois la vérif faite, il redirige suivant si c'est un technicien sur la page réservée aux technicien ou à la page pour les clients si c'est un client.
J'ai déjà réussi l'insertion d'un client ou d'un technicien dans les tables.
Merci d'avance
Je suis entrain de faire un site pour le dépannage informatique (partie client et technicien)
Pour cela j'ai créé deux tables: tblclient et tbltechnicien (avec les info personnelles)
Lors de la connexion au site, j'aimerai que mon site soie capable de vérifier le login et de savoir si c'est un technicien ou un client.
Une fois la vérif faite, il redirige suivant si c'est un technicien sur la page réservée aux technicien ou à la page pour les clients si c'est un client.
J'ai déjà réussi l'insertion d'un client ou d'un technicien dans les tables.
Merci d'avance
A voir également:
- [PHP & MYSQL] vérification login sur 2 tables
- Facebook.com/login/identify en francais ✓ - Forum Réseaux sociaux
- Dans la table des matières du document à télécharger, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Tables des matières word - Guide
- Mysql community server - Télécharger - Bases de données
- Retrouver mon ancien compte Facebook - Forum Facebook
3 réponses
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
17 mars 2010 à 22:41
17 mars 2010 à 22:41
Perso j'aurais fait avec une seule table et un champ "technicien" du type booléan.
Salut,
Comme avion-f16, j'aurais fait en une seule table avec un champ "type" qui prend "technicien" ou "client".
Après, tu peux t'en sortir avec 2 tables en faisant 2 requêtes SQL (une par table) :
Au final, si $type == null, l'utilisateur n'est présent sur aucune table, si $type == "technicien", c'est un technicien, et si $type == "client"... Tu m'as compris ^^
N'oublie pas la sécurité contre l'injection :
Comme avion-f16, j'aurais fait en une seule table avec un champ "type" qui prend "technicien" ou "client".
Après, tu peux t'en sortir avec 2 tables en faisant 2 requêtes SQL (une par table) :
$login = $_POST['login']; $pass = $_POST['pass']; $type = null; $result = mysql_query("SELECT * FROM tblclient WHERE login = '$login' AND pass = '$pass'"); if(mysql_num_rows($result) > 0) $type = "client"; $result = mysql_query("SELECT * FROM tbltechnicien WHERE login = '$login' AND pass = '$pass'"); if(mysql_num_rows($result) > 0) $type = "technicien";
Au final, si $type == null, l'utilisateur n'est présent sur aucune table, si $type == "technicien", c'est un technicien, et si $type == "client"... Tu m'as compris ^^
N'oublie pas la sécurité contre l'injection :
$login = mysql_real_escape_string($_POST['login']); $pass = mysql_real_escape_string($_POST['pass']);
Hello j'ai essayé comme tu m'a dit avec ce code:
<?php
//Connexion à la base de donnée
include ("../bd/connex_bd.php");
$login = $_POST['fEmail'];
$email = $_POST['fPassword'];
$type = null;
$result = mysql_query("SELECT * FROM tblclient WHERE email_client = '$email' AND password_client = '$pass'");
if(mysql_num_rows($result) > 0) $type = "client";
$result = mysql_query("SELECT * FROM tbltechnicien WHERE email_technicien = '$login' AND password_technicien = '$pass'");
if(mysql_num_rows($result) > 0) $type = "technicien";
echo $type;
?>
J'ai remplacer les bon champs et les bon post et le code me met deux erreurs:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Helpmypc 2\index\index_checkbd.php on line 8
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Helpmypc 2\index\index_checkbd.php on line 10
Voila
<?php
//Connexion à la base de donnée
include ("../bd/connex_bd.php");
$login = $_POST['fEmail'];
$email = $_POST['fPassword'];
$type = null;
$result = mysql_query("SELECT * FROM tblclient WHERE email_client = '$email' AND password_client = '$pass'");
if(mysql_num_rows($result) > 0) $type = "client";
$result = mysql_query("SELECT * FROM tbltechnicien WHERE email_technicien = '$login' AND password_technicien = '$pass'");
if(mysql_num_rows($result) > 0) $type = "technicien";
echo $type;
?>
J'ai remplacer les bon champs et les bon post et le code me met deux erreurs:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Helpmypc 2\index\index_checkbd.php on line 8
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Helpmypc 2\index\index_checkbd.php on line 10
Voila
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
18 mars 2010 à 20:56
18 mars 2010 à 20:56
Utilises "or die" pour voir s'il y a une erreur dans tes requêtes.
Hello,
J'ai corriger c'était la requête.. j'ai maintenant cette erreur: Parse error: syntax error, unexpected ';' in C:\wamp\www\Helpmypc 2\index\index_checkbd.php on line 5
Mon code est le suivant:
<?php
//Connexion à la base de donnée
include ("../bd/connex_bd.php");
$type = null;
$result = mysql_query("SELECT * from tbltechnicien where email_technicien='".$_POST['fEmail']."' AND password_technicien='".$_POST['fPassword']."'" or die;
$tab_resultats = connexion($result);
if(mysql_num_rows($tab_resultats) > 0) $type = "technicien";
$result = mysql_query("SELECT * from tblclient where email_client='".$_POST['fEmail']."' AND password_client='".$_POST['fPassword']."'";
if(mysql_num_rows($tab_resultats) > 0) $type = "technicien";
echo $type;
?>
Une idée?
J'ai corriger c'était la requête.. j'ai maintenant cette erreur: Parse error: syntax error, unexpected ';' in C:\wamp\www\Helpmypc 2\index\index_checkbd.php on line 5
Mon code est le suivant:
<?php
//Connexion à la base de donnée
include ("../bd/connex_bd.php");
$type = null;
$result = mysql_query("SELECT * from tbltechnicien where email_technicien='".$_POST['fEmail']."' AND password_technicien='".$_POST['fPassword']."'" or die;
$tab_resultats = connexion($result);
if(mysql_num_rows($tab_resultats) > 0) $type = "technicien";
$result = mysql_query("SELECT * from tblclient where email_client='".$_POST['fEmail']."' AND password_client='".$_POST['fPassword']."'";
if(mysql_num_rows($tab_resultats) > 0) $type = "technicien";
echo $type;
?>
Une idée?
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
18 mars 2010 à 21:34
18 mars 2010 à 21:34
$result = mysql_query("SELECT * from tbltechnicien where email_technicien='".$_POST['fEmail']."' AND password_technicien='".$_POST['fPassword']."'") or die(mysql_error());
Voilà ton code corrigé (en théorie). Tiens nous au courant.
<?php
//Connexion à la base de donnée
include ("../bd/connex_bd.php");
$type = null;
$result = mysql_query("SELECT * from tbltechnicien WHERE email_technicien = '" . $_POST['fEmail'] . "' AND password_technicien = '" . $_POST['fPassword'] . "'");
if(mysql_num_rows($result) > 0) $type = "technicien";
$result = mysql_query("SELECT * from tblclient where email_client = '" . $_POST['fEmail'] . "' AND password_client = '" . $_POST['fPassword'] . "'");
if(mysql_num_rows($result) > 0) $type = "client";
echo $type;
<?php
//Connexion à la base de donnée
include ("../bd/connex_bd.php");
$type = null;
$result = mysql_query("SELECT * from tbltechnicien WHERE email_technicien = '" . $_POST['fEmail'] . "' AND password_technicien = '" . $_POST['fPassword'] . "'");
if(mysql_num_rows($result) > 0) $type = "technicien";
$result = mysql_query("SELECT * from tblclient where email_client = '" . $_POST['fEmail'] . "' AND password_client = '" . $_POST['fPassword'] . "'");
if(mysql_num_rows($result) > 0) $type = "client";
echo $type;