Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/07/2011, 19h17   #1
Candidat au titre de Membre du Club
 
Inscription : août 2009
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 47
Points : 12
Points : 12
Par défaut Authentification à partir de deux table

Bonjour;

Je suis entrain de rediger un script d'authentification,le probleme que je rencontre est que je dois utiliser deux tables (utilisateur et client) pour permettre aux administrateurs et aux clients d'avoir des comptes utilisateurs.
ça a marché lorsque j'ai effectué ceci sur une seule table,mais lorsque j'ai ajouter le code pour le second tout le code concernant le premier table était ignoré;c'est à dire lorsque je veut m'authentifier seuls les logins et les mots de passe du second tables sont reconnus.

voici le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
<?php require_once('connexion2.php'); ?>
<?php
 
session_start(); // début de session
 
if (isset($_POST['login'])){ // execution uniquement apres envoi du formulaire (test si la variable POST existe)
	$login = addslashes($_POST['login']); // mise en variable du nom d'utilisateur
	$pass = addslashes($_POST['pass']); // mise en variable du mot de passe 
/*-----------------------TABLE UTILISATEURS---------------------*/	
// requete sur la table administrateurs (on récupère les infos de la personne)
mysql_select_db($database_dbprotect, $dbprotect);
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs
$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
 
 
	if ($utilisateur) {	// On test s'il y a un utilisateur correspondant
 
	    session_register("authentification"); // enregistrement de la session
 
		// déclaration des variables de session
		$_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur)
		$_SESSION['nom'] = $row_verif['nom']; // Son nom
		$_SESSION['prenom'] = $row_verif['prenom']; // Son Prénom
		$_SESSION['login'] = $row_verif['login']; // Son Login
		$_SESSION['pass'] = $row_verif['pass']; // Son mot de passe (à éviter)
 
		header("Location:accueil1.php"); // redirection si OK
	}
	else {
		header("Location:Accueil.php?erreur=login"); // redirection si utilisateur non reconnu
	}
 
/*-------------------fin TABLE utilisateurs---------------------------*/
 
	/*-----------------------TABLE CLIENT---------------------*/
$verif_query=sprintf("SELECT * FROM client WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs
$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
 
 
	if ($utilisateur) {	// On test s'il y a un utilisateur correspondant
 
	    session_register("authentification"); // enregistrement de la session
 
		// déclaration des variables de session
		$_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur)
		$_SESSION['nom'] = $row_verif['RaisonSociale']; // Son nom
		$_SESSION['prenom'] = $row_verif['Responsable']; // Son Prénom
		$_SESSION['login'] = $row_verif['login']; // Son Login
		$_SESSION['pass'] = $row_verif['pass']; // Son mot de passe (à éviter)
 
		header("Location:accueil1.php"); // redirection si OK
	}
	else {
		header("Location:Accueil.php?erreur=login"); // redirection si utilisateur non reconnu
	}
 
/*-------------------fin TABLE CLIENT---------------------------*/
}
 
// Gestion de la  déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramètres d'URL qui permettront d'identifier un contexte de déconnexion
	$prenom = $_SESSION['prenom']; // On garde le prénom en variable pour dire au revoir (soyons polis :-)
	session_unset("authentification");
	header("Location:Accueil.php?erreur=delog&prenom=$prenom");
}
?>

Merci d'avance.
loviso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 08h17   #2
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Si j'ai bien compris, ta table utilisateur correspond aux administrateur et ta table client contient seulement tes clients.

Si c'est bien le cas, arrête toi tout de suite et retravaille ta base.

Tu ne doit avoir qu'une table utilisateur, qui contient aussi bien les admins que les clients et dans cette table tu as une clé étrangère en référence à une table privilège ou grade par exemple ou mieux une table intermédiaire faisant le lien entre l'id utilisateur et l'id privilège.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/07/2011, 10h33   #3
Candidat au titre de Membre du Club
 
Inscription : août 2009
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 47
Points : 12
Points : 12
Citation:
Envoyé par gwharl Voir le message
Si j'ai bien compris, ta table utilisateur correspond aux administrateur et ta table client contient seulement tes clients.

Si c'est bien le cas, arrête toi tout de suite et retravaille ta base.

Tu ne doit avoir qu'une table utilisateur, qui contient aussi bien les admins que les clients et dans cette table tu as une clé étrangère en référence à une table privilège ou grade par exemple ou mieux une table intermédiaire faisant le lien entre l'id utilisateur et l'id privilège.

Merci pour ta réponse ,le problème ici est que la table client contient plusieurs champs;c'est pourquoi je veux éviter la fusion des deux tables...
loviso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 10h51   #4
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Tu n'as pas compris en gros tu aurais :

une table utilisateur avec id login mdp droit

une table client avec

id utilisateur+ champ nécessaire pr caractériser un client
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h00.


 
 
 
 
Partenaires

Hébergement Web