rediriger vers une page en php
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:
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> |