Connexion/Redirection
Ibilolz
Messages postés
130
Date d'inscription
Statut
Membre
Dernière intervention
-
Nhay Messages postés 838 Date d'inscription Statut Membre Dernière intervention -
Nhay Messages postés 838 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je travaille sur petit site pour le lycée ou j'effectue mon stage, ce site est l'inventaire du parc informatique du lycée. J'ai voulu faire une interface administrateur pour l'administrateur réseaux, il peut ajouter du matériel, des logiciels et des salles à la base, ensuite faire correspondre mat/salle et mat/logi et visualiser l'ensemble des tables. L'utilisateur arriverais sur une page d'acceuil, il pourrait visualiser l'inventaire et faire une demande de maintenance sur un poste précis. J'ai déjà codé les pages, maintenant ce que j'ai imaginé, c'est avoir :
une page d'acceuil avec un menu de connexion classique MAIS le problème est que je voudrais un menu de connexion avec dedans deux redirections possible, si c'est le root qui se connecte il aille sur son site dédié (l'interface administrateur) et tous les autres utilisateurs sur l'autre interface.
Avec le code suivant :
et le php suivant :
Je réussi à connecter les users qui correspondent à ceux que j'ai entré dans la BD mais j'aimerais une redirection autre si il detecte que c'est un type spécial d'administrateur, que quand il voit que le compte root c'est co, il le redirige vers une autre page que les autres.
Merci de prendre le temps de me répondre, et de me dire si ce que je veux est possible et comment je pourrais faire.
une page d'acceuil avec un menu de connexion classique MAIS le problème est que je voudrais un menu de connexion avec dedans deux redirections possible, si c'est le root qui se connecte il aille sur son site dédié (l'interface administrateur) et tous les autres utilisateurs sur l'autre interface.
Avec le code suivant :
<FORM Method="POST" Action="<?php $_SERVER['PHP_SELF']; ?>"> <p><label for="login">Login : </label> <input type="text" id="login" name="login"/></p> <p><label for="password">Mot de passe : </label> <input type="password" id="password" name="password"/></p> <input type="submit" name="go_login" id="go_login" value="Se connecter"/>
et le php suivant :
<?php $connect = mysql_connect('localhost','root','') or die ("erreur de connexion"); mysql_select_db('Inventaire_SaintEx',$connect) or die ("erreur de connexion base"); function login() { // Si on a soumit le formulaire (si on a cliqué sur "Se connecter") if(isset($_POST['go_login'])) { // Si les deux champs ne sont pas vides if(!empty($_POST['login']) && !empty($_POST['password'])) { // On éxécute une requête pour détecter si le login entré existe dans la base $query = mysql_query("SELECT * FROM users WHERE login = '".$_POST['login']."'"); // Si on a un résultat => il existe if(mysql_num_rows($query) == 1) { $user = mysql_fetch_object($query); // On vérifie la concordance des mots de passe (en md5) if(md5($_POST['password']) == $user->password) { // Si on arrive jusque ici c'est que le couple login / mot de passe est résolu // On lance donc la session session_start(); header("location: /user/index.php" ); } else { echo 'Mauvais mot de passe pour cet utilisateur.'; } } else { echo 'Ce login n\'existe pas dans notre base.'; } } else { echo 'Vous devez remplir tous les champs !'; } } } ?>
Je réussi à connecter les users qui correspondent à ceux que j'ai entré dans la BD mais j'aimerais une redirection autre si il detecte que c'est un type spécial d'administrateur, que quand il voit que le compte root c'est co, il le redirige vers une autre page que les autres.
Merci de prendre le temps de me répondre, et de me dire si ce que je veux est possible et comment je pourrais faire.
A voir également:
- Connexion/Redirection
- Gmail connexion - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
- Site inaccessible n'autorise pas la connexion - Guide
- Connexion sctr - Forum Discord
3 réponses
Bonjour,
Au niveau de cette ligne :
Par contre, ton code me paraît étrange, tu ne stock aucune données en session, comment vérifie-tu sur la page index.php que l'utilisateur est bien connecté ?
Au niveau de cette ligne :
header("location: /user/index.php" );Il te suffit de rajouter un if. Je ne sais pas comment ce nomme ton champ qui différencie un admin d'un utilisateur, alors pense à adapter le code :
if($user["isSuperAdmin"]){ header("location: /user/index.php" ); }else{ header("location: /user/index2.php" ); }
Par contre, ton code me paraît étrange, tu ne stock aucune données en session, comment vérifie-tu sur la page index.php que l'utilisateur est bien connecté ?
Avec ce code là, ça ne marche pas :/
arse error: syntax error, unexpected '==' (T_IS_EQUAL) in C:\wamp\www\Acceuil\functions.php on line 27
Pour vérifier que l'utilisateur est connecté :
<?php
session_start();
// Si la variable de session n'existe pas
if(!isset($_SESSION['id'])) {
// On redirige l'utilisateur vers une page de login
header('Location: vaViteTeConnecter.php');
}
?>
arse error: syntax error, unexpected '==' (T_IS_EQUAL) in C:\wamp\www\Acceuil\functions.php on line 27
<?php $connect = mysql_connect('localhost','root','') or die ("erreur de connexion"); mysql_select_db('Inventaire_SaintEx',$connect) or die ("erreur de connexion base"); function login() { // Si on a soumit le formulaire (si on a cliqué sur "Se connecter") if(isset($_POST['go_login'])) { // Si les deux champs ne sont pas vides if(!empty($_POST['login']) && !empty($_POST['password'])) { // On éxécute une requête pour détecter si le login entré existe dans la base $query = mysql_query("SELECT * FROM users WHERE login = '".$_POST['login']."'"); // Si on a un résultat => il existe if(mysql_num_rows($query) == 1) { $user = mysql_fetch_object($query); // On vérifie la concordance des mots de passe (en md5) if(md5($_POST['password']) == $user->password) { // Si on arrive jusque ici c'est que le couple login / mot de passe est résolu // On lance donc la session session_start(); if($user["root"]){ header("location: /Admin/index.php" ); }else{ header("location: /user/index.php" ); } else { echo 'Mauvais mot de passe pour cet utilisateur.'; } } else { echo 'Ce login n\'existe pas dans notre base.'; } } else { echo 'Vous devez remplir tous les champs !'; } } } ?>
Pour vérifier que l'utilisateur est connecté :
<?php
session_start();
// Si la variable de session n'existe pas
if(!isset($_SESSION['id'])) {
// On redirige l'utilisateur vers une page de login
header('Location: vaViteTeConnecter.php');
}
?>
1) Dans le code donné, tu ne rempli pas $_SESSION['id'], après tu le fait peut-être ailleurs, mais ça semble étrange que ce ne soit pas fait là.
2) Tu utilise $user un coup comme un objet, un coup comme un tableau, donc vérifie de ce côté là.
3) Les lignes n'étant pas les mêmes entre le code copier/coller et l'original, tu pourrais indiquer ce que tu a de la ligne 26 à 28, histoire d'avoir ce qui viens avant et après l'erreur
2) Tu utilise $user un coup comme un objet, un coup comme un tableau, donc vérifie de ce côté là.
3) Les lignes n'étant pas les mêmes entre le code copier/coller et l'original, tu pourrais indiquer ce que tu a de la ligne 26 à 28, histoire d'avoir ce qui viens avant et après l'erreur