Gestion de droits dynamiques dans une application de gestion des entrées et sort
Maurel
-
Modifié le 21 déc. 2018 à 19:07
jordane45
Messages postés37731Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention30 septembre 2023
-
21 déc. 2018 à 19:15
Bonjour, je n'arrive pas octroyer les aux utilisateurs(role,module....) de mon application de gestion des entrées et sorties des équipements en php et mysql. voici comment est structuré mon code:
<?php
/*
* Classe BDD pour se connecter à la BDD
* permet l'accès à la BDD à partir des fonctions des classes enfants
*/
class BDD {
var $localhost = "", $user = "", $password = "";
//__Effectue la connexion à la BDD
//__Instancie et renvoie l'objet PDO associé
function getBdd() {
//__variable locale lié à la classe
$localhost = 'mysql:host=localhost;dbname=gespa;charset=utf8';
$user = 'root';
$password = '';
$bdd = new PDO($localhost, $user, $password);
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $bdd;
}
}
$BDD = new BDD();
?>
gestion de la connexion de l'utlisateur avec la bdd
<?php
/*
* Modele récupérer les informations de la BDD "gespa"
*/
class Data extends BDD {
//__Récupère l'ensemble des utilisateurs
private $id;
private $pseudo;
private $motDePasse;
private $pseudoUtilisateur;
private $loginsession;
private $privilegeses;
public function connexion($pseudoUtilisateur, $motDePasse){
/*
* Utilisation :
* un utilisateur veut se connecter, on appelle la fonction en indiquant le nom de l'utilisateur et le mot ed passe indiqué
* la fonction vérifie si cela correspond bien, si oui on renvoie true, si non on renvoie false
*
*/
//Variables utilisées :
$requete;
$ligne;
$retour = false;
//On se connecte à la base de données
$pdo = parent::getBdd();
//On prépare la requête (entre autre contre les injections avec pdo->prepare)
$requete = $pdo->prepare("SELECT login, mot_de_passe,privilege FROM compte_utilisateur WHERE login='".$pseudoUtilisateur."' AND mot_de_passe='".$motDePasse."'");
//On effectue la requete
$requete->execute();
$ligne = $requete->fetch(PDO::FETCH_ASSOC);
//print_r ($ligne);
//Si il y a un résultat c'est que l'utilisateur c'est bien logé
if($ligne == true)
{
$_SESSION['privilege']=$ligne['privilege'];//On créer une variable session qui à pour valeur le privilège de l'utilisateur logué
$_SESSION['droit']=1;//On créer une variable session qui à pour valeur le privilège de l'utilisateur logué
$_SESSION['login']=$ligne['login']; //On créer une variable session qui à pour valeur le pseudo de l'utilisateur logué
$_SESSION['mot_de_passe']=$ligne['mot_de_passe']; //On créer une variable session qui à pour valeur le mot de passe de l'utilisateur logué
$retour = true; //On retourne true pour dire que tout c'est bien passé
echo '<meta http-equiv="refresh" content="0;URL=Administration.php">';
}
//Sinon c'est que le mot de passe ou le nom d'utilisateur n'est pas bon
else
{
$retour = false;//Si c'est pas bon on renvoie false
echo'<body onLoad="alert(\'Ce utilisateur est non reconu dans le systeme...\')">';
echo '<meta http-equiv="refresh" content="0;URL=index.php">';
}
$pdo = null;
return $retour;
echo'<meta http-equiv="refresh" content="0;URL=404.php">';
echo '<meta http-equiv="refresh" content="0;URL=index.php">';
}
// fonction permettant de supprimer une session
function finSession() {
// supression de toutes les variables de session
$_SESSION = array();
// destruction de la session
session_destroy();
echo '<meta http-equiv="refresh" content="0;URL=index.php">';
}
}
?>
jordane45
Messages postés37731Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention30 septembre 2023342 21 déc. 2018 à 19:15
Bonjour,
Tu as oublié les "constructeur" dans tes class
Il faut les utiliser... surtout que tu fais des extend...
Bien entendu, dans le code qui fait appel à tes class.. tu as faire un REQUIRE de tes class (y compris la bdd )....
* permet l'accès à la BDD à partir des fonctions des classes enfants
*/
class BDD {
private $localhost = "", $user = "", $password = "";
public $db;
//__Effectue la connexion à la BDD
//__Instancie et renvoie l'objet PDO associé
function __construct() {
//__variable locale lié à la classe
$this->localhost = 'mysql:host=localhost;dbname=gespa;charset=utf8';
$this->user = 'root';
$this->password = '';
$this->connexion();
}
private function connexion(){
try{
$bdd = new PDO($this->localhost, $this->user, $this->password);
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->db = $bdd;
}catch(Exception $e){
echo "Erreur !" .$e->getMessage();
exit();
}
}
}
?>
<?php
/*
* Modele récupérer les informations de la BDD "gespa"
*/
class Data extends BDD {
//__Récupère l'ensemble des utilisateurs
private $id;
private $pseudo;
private $motDePasse;
private $pseudoUtilisateur;
private $loginsession;
private $privilegeses;
function __construct(){
parent::__construct();
}
public function connexion($pseudoUtilisateur, $motDePasse){
/*
* Utilisation :
* un utilisateur veut se connecter, on appelle la fonction en indiquant le nom de l'utilisateur et le mot ed passe indiqué
* la fonction vérifie si cela correspond bien, si oui on renvoie true, si non on renvoie false
*
*/
//Variables utilisées :
$requete;
$ligne;
$retour = false;
//On se connecte à la base de données
$pdo =$this->db;