Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.62 KB | None | 0 0
  1. <?php
  2. session_start();
  3. if(isset($_POST['username']) && isset($_POST['password']))
  4. {
  5. // connexion à la base de données
  6.     $db_username = 'root';
  7.     $db_password = 'root';
  8.     $db_name = 'Proessa';
  9.     $db_host = 'localhost';
  10.     $db = mysqli_connect($db_host, $db_username, $db_password,$db_name)
  11.     or die('could not connect to database');
  12.  
  13.     // on applique les deux fonctions mysqli_real_escape_string et htmlspecialchars
  14.     // pour éliminer toute attaque de type injection SQL et XSS
  15.     $username = mysqli_real_escape_string($db,htmlspecialchars($_POST['username']));
  16.     $password = mysqli_real_escape_string($db,htmlspecialchars($_POST['password']));
  17.     $admin = mysqli_real_escape_string($db,htmlspecialchars($_POST['admin'])); // Code rajouté pour ADMIN
  18.  
  19.     /**
  20.      * à aucun moment tu ne te sers de $admin
  21.      * je pense que si tu veux utiliser le boolen admin, le mieux c'est d'avoir une seule table utilisateur dans laquelle
  22.      * sont mélangées admin et user normal
  23.      * et tu devrais tester du coup si le booleen est true|false pour savoir si l'utilsateur qui se loggue est un admin ou non
  24.      */
  25.     if($username !== "" && $password !== "")
  26.     {
  27.         //La requete COMPTE le nombre d'utilisitateur corresponsdant à la combinaison username/password dans la table 'utilisateur'
  28.         $requete = "SELECT count(*) FROM utilisateur where NNI = '".$username."' and MotDePasse = '".$password."'";
  29.         $exec_requete = mysqli_query($db,$requete);
  30.         $reponse = mysqli_fetch_array($exec_requete);
  31.         $countNormal = $reponse['count(*)'];
  32.  
  33.         //var_dump sert à afficher le contenu d'une variable
  34.         //ici on souhaite afficher le contenu de countNormal,
  35.         //je mets un petit texte indicatif ('user normaux') avant pour savoir à quoi le chiffre va correspondre quand on lance le script
  36.         var_dump('user normaux', $countNormal);
  37.  
  38.         //SI countNormal est > 0 alors ça veut dire que la combinaison userName/password correspond à un utilisateur normal
  39.         //donc on va rentrer dans le if suivant
  40.         if ($countNormal > 0) {
  41.             //ici je fais un die avec affichage de message mais normalement il faut faire la redirection vers la page souhaité
  42.             die('faire redirection page user normal');
  43.  
  44.             //ça devrait etre un
  45.             //header('Location: index.php'); //je ne sais pas quel est le nom de ta page principale
  46.         }
  47.  
  48.         //si on n'entre pas dans le IF precedent, ça veut dire que la combinaison username/password n'existe pas dans la table user
  49.         //on doit tester dans la table ADMIN
  50.  
  51.         //La requete COMPTE le nombre d'utilisitateur corresponsdont
  52.         $requeteAdmin = "SELECT count(*)  FROM utilisateur where NNI = '".$username."' and MotDePasse = '".$password."'" ;
  53.         //c'est cette requete qui n'est pas bonne : il faut rajouter le test du champs booleen
  54.         $requeteAdmin = "SELECT count(*)  FROM utilisateur where NNI = '".$username."' and MotDePasse = '".$password."' and nomDuChampsBoolen = '".$admin."'" ;
  55.  
  56.  
  57.         $exec_requeteAdmin = mysqli_query($db,$requeteAdmin);
  58.         $reponseAdmin = mysqli_fetch_array($exec_requeteAdmin);
  59.         $countAdmin = $reponseAdmin['count(*)'];
  60.  
  61.         //affichage du nombre d'admin correspondant à la combinaison username/admin présent dans la table "utilisateur"
  62.         var_dump('user admin', $countAdmin);
  63.        
  64.         //SI countAdmin est > 0 alors ça veut dire que la combinaison userName/password correspond à un utilisateur admin
  65.         //donc on va rentrer dans le if suivant
  66.         if ($countAdmin > 0) {
  67.             die('faire redirection page user admin');
  68.  
  69.             //header('Location: admin.html');
  70.         }
  71.     }
  72.     else
  73.     {
  74.         header('Location: login.php?erreur=2'); // utilisateur ou mot de passe vide
  75.     }
  76. }
  77. else
  78. {
  79.     header('Location: login.php');
  80. }
  81. mysqli_close($db); // fermer la connexion
  82. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement