[PHP & MYSQL] vérification login sur 2 tables

Fermé
ChriSs - 17 mars 2010 à 20:06
 ChriSs - 23 mars 2010 à 14:27
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
A voir également:

3 réponses

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
17 mars 2010 à 22:41
Perso j'aurais fait avec une seule table et un champ "technicien" du type booléan.
0
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) :

$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']);
0
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
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
18 mars 2010 à 20:56
Utilises "or die" pour voir s'il y a une erreur dans tes requêtes.
0
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?
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
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());
0
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;
0
Hello,

Merci beaucoup pour ses réponses claires! J'ai préféré faire comme cela car je trouvais que cela mélangais trop.. Je vais essayé et je vous tien au courant..

Merci en tout cas!
0