bonjour tout le monde, voilà, j'ai un probléme de redirection dans un de mes scripts, j'ai 3 espaces membre (1 pour l'admin, un chargé d'étude et un client), pour ça j'ai une table user(id_user, username, password, id_role) ici id_role est une clé étrangère pour reconnaitre le role de l'utilisateur qui se connecte, exemple, id_role=1 est un admin. id_role=2 est un chargé d'étude...
bref, le problème c'est que je n'arrive pas à rediriger chaque personne qui se connecte vers son espace membre qui lui ai dédié.
je vous joins index.php
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 <?php // on teste si le visiteur a soumis le formulaire de connexion if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { $base = mysql_connect ('localhost', 'root', ''); mysql_select_db ('nice', $base); // on teste si une entrée de la base contient ce couple login / pass $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'" AND password="'.mysql_real_escape_string(md5($_POST['pass'])).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); $sql2 = 'SELECT id_role FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'" AND password="'.mysql_real_escape_string(md5($_POST['pass'])).'"'; $req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $role = mysql_fetch_object($req2); mysql_free_result($req); mysql_free_result($req2); mysql_close(); // si on obtient une réponse, alors l'utilisateur est un membre if ($data[0] == 1 && $role==1) { session_start(); $_SESSION['login'] = $_POST['login']; header('Location: administrateur.php'); exit(); } elseif ($data[0] == 1 && $role==2) { session_start(); $_SESSION['login'] = $_POST['login']; header('Location: charge_etude.php'); exit(); } elseif ($data[0] == 1 && $role==3) { session_start(); $_SESSION['login'] = $_POST['login']; header('Location: membre.php'); exit(); } // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe elseif ($data[0] == 0) { $erreur = 'Compte non reconnu.'; } // sinon, probléme bdd else { $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <html> <head> <title>Accueil</title> </head> <body> Connexion à l'espace membre :<br /> <form action="index.php" method="post"> Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br /> Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br /> <input type="submit" name="connexion" value="Connexion"> </form> <a href="inscription.php">Vous inscrire</a> <?php if (isset($erreur)) echo '<br /><br />',$erreur; ?> </body> </html>
Partager