Bonsoir,

Voilà ce que j'aimerais faire :

Un formulaire de connexion mais assez différents des autres :

- Connexion via 2 tables (fournisseur et client) cela peut-il se faire où il faut faire 2 bloc de connexion distinct sachant que le nom des champs sont les mêmes ?

- Si ses identifiants de connexion (email et mdp) sont correcte alors une question secrète s'affiche (la question qu'il a choisis lors de l'inscription) avec la réponse secrète (qu'il a choisis lors de l'inscription).

- Si la valeur de sa réponse = à la réponse qu'il a indiqué lors de son inscription alors SESSION créer et redirection vers une page en fonction de son rang (Client : client.php ou fournisseur : fournisseur.php).

Table Client :
id, email, password, question, rep, rang
Table fournisseur :
id, email, password, question, rep, rang.

Vous allez me dire mais pourquoi avoir créer deux table, pour les distinguer mais aussi le fait que leurs champs sont différents.

En prenant cette exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?
// LE CHANTIER
 
    $message='';
    if (empty($_POST['email']) || empty($_POST['password']) ) // Oublie d'un champ
    {
        $message = '<p>une erreur s\'est produite pendant votre identification.
	Vous devez remplir tous les champs</p>
	<p>Cliquez <a href="./connexion.php">ici</a> pour revenir</p>';
    }
    else //// on vérifie si le membre a bien son compte activé (si son rang vaut 1 ou est supérieur à 1) on check le mot de passe
    {
 
       $reponse = mysql_query("SELECT id, email, password, rang  FROM clients and fournisseur WHERE email = $_POST['email'] AND rang => 1") or die(mysql_error()); 
 while($data = mysql_fetch_array($reponse)) 
 
	if ($data['password'] == md5($_POST['password'])) // Acces OK !
	{
 
// Affichage de la question 
 
$message = 'Connexion reussie, mais avant de pouvoir accéder à notre espace, merci de répondre à votre question : '.$data['question'].' 
<br><form action="connexion.php" method="post">
		<br>Réponse : <input type="text" name="rep"/>
<INPUT type="submit" value="Envoyer"></form>';  
 
else // Acces pas OK !
	{
	    $message = '<p>Une erreur s\'est produite 
	    pendant votre identification.<br /> Le mot de passe ou lemail
            entré n\'est pas correcte.</p><p>Cliquez <a href="./connexion.php">ici</a> 
	    pour revenir à la page précédente
	    <br /><br />Cliquez <a href="./index.php">ici</a> 
	    pour revenir à la page d accueil</p>';
	}
 
if ($_POST['rep']) == $data['rep'])) // si la reponse donner correspond à celle qu'il a choisit lors de l'inscription alors on creer les sessions
    {
       $message = '<p>Bienvenue '.$data['email'].', 
			vous êtes maintenant connecté!</p>
			<p>Cliquez <a href="./index.php">ici</a> 
			pour revenir à la page d accueil</p>';
 
// Puis redirection en fonction du statut (comment ?)
 
    }
 
else // erreur reponse !
	{
	    $message = '<p>La réponse que vous avez donné n'est pas correcte.</p>';
	}
}

    echo $message.'</div></body></html>';
?>

Mon code est mal ingenter mais du coup avec tout ses if et ses else je sais pas comment procéder !
merci

On m'a parler des jointures,
Je dois faire une requête de ce type ?

SELECT email, password, id, rang, rep, question FROM Client, Fournisseur
WHERE Client.email=Fournisseur.email, Client.password=Fournisseur.password, Client.id=Fournisseur.id, Client.rang=Fournisseur.rang, Client.rep=Fournisseur.rep, Client.question=Fournisseur.question

merci