Accueil > > > CLASSE UTILISATEUR POUR GESTION SIMPLE DE LOGIN ET DROITS
CLASSE UTILISATEUR POUR GESTION SIMPLE DE LOGIN ET DROITS
Information sur la source
Description
J'ai fait cette source dans le cadre d'un projet en cours. Elle permet une utilisation d'utilisateurs avec login/mot de passe et des droits assez simplement. Il n'y a que la classe, pas de mise en page de l'administration ou quoique ce soit, c'est au programmeur de faire tout ça. La classe fournit juste les outils pour utiliser une base de données avec des utilisateurs et des droits. Le code parlera mieux que moi ;) Il y a 3 tables : membres, droits, dispose_de La table membre contient les membres. Le champ admin indique si le membre possède des droits ou non. La table droits contient les droits avec une id, un nom et une description. La table dispose_de indique les droits qu'a tel ou tel membre. Il y a plusieurs méthodes : function Utilisateur($idMembre); private function droits(); public static function inscription($pseudo, $motDePasse, $nom, $prenom, $sexe, $dateDeNaissance, $email, $adresse, $ville, $codePostal, $pays, $participeAuConcours); public static function pseudoDejaUtilise($pseudo); public static function emailDejaUtilise($email); public static function connexion($pseudoUtilisateur, $motDePasse, $varSession); public static function deconnexion($varSession); public function sauvegarderLUtilisateur(); public static function supprimerLUtilisateur($id_membre); public function isAdmin(); public function aLeDroit($leDroit); + geteur; + seteur; Je sais que je n'utilise pas toute la puissance du php objet dans ma classe, mais je vais m'y mettre un de ces quatre matins ;)
Source
- Pour créer les tables :
-
- CREATE TABLE IF NOT EXISTS `dispose_de` (
- `id_dispose` int(11) NOT NULL AUTO_INCREMENT,
- `id_droits` int(11) NOT NULL,
- `id_membres` int(11) NOT NULL,
- PRIMARY KEY (`id_dispose`),
- KEY `id_droits` (`id_droits`),
- KEY `id_membres` (`id_membres`)
- );
-
- CREATE TABLE IF NOT EXISTS `droits` (
- `id_droit` int(11) NOT NULL AUTO_INCREMENT,
- `nom` varchar(20) DEFAULT NULL,
- `description` varchar(200) DEFAULT NULL,
- PRIMARY KEY (`id_droit`)
- );
-
- CREATE TABLE IF NOT EXISTS `membres` (
- `id_membre` int(11) NOT NULL AUTO_INCREMENT,
- `pseudo` varchar(20) NOT NULL,
- `mot_de_passe` varchar(50) NOT NULL,
- `nom` varchar(20) DEFAULT NULL,
- `prenom` varchar(20) DEFAULT NULL,
- `email` varchar(40) NOT NULL,
- `sexe` varchar(1) DEFAULT NULL,
- `date_de_naissance` date DEFAULT NULL,
- `adresse` varchar(50) DEFAULT NULL,
- `ville` varchar(30) DEFAULT NULL,
- `code_postal` varchar(10) DEFAULT NULL,
- `pays` varchar(25) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `url_avatar` varchar(50) DEFAULT NULL,
- `participe_au_concours` tinyint(1) DEFAULT NULL,
- `admin` tinyint(4) NOT NULL DEFAULT '0',
- PRIMARY KEY (`id_membre`)
- );
-
-
- #Exemples d'utilisations (extrais d'une application) :
-
- =>Connecter un utilisateur :
- $TEXTE_connexion = ""; // Texte qui sera mit au module connexion si nécéssaire
- if (isset($_POST["pseudo"]) && isset($_POST["password"]))
- {
- //On execute la fonction connexion qui renvoie true ou false
- $validation = Utilisateur::connexion($_POST["pseudo"], $_POST["password"], "membre");
- if(!$validation){// Si la connexion a échoué on l'indique en rajoutant un texte près du module
- $TEXTE_connexion = "Pseudo inexistant ou mot de passe invalide";
- }
- }
-
- =>Un fois connecté :
- //# Si le membre est connecté on créer son objet (le membre est connecté quand la variable de session existe, voir fonction Utilisateur::connexion )
- if(isset($_SESSION['membre'])){
- $leMembre = new Utilisateur($_SESSION['membre']);
- //print_r($leMembre);
- }
-
- => Exemple pour un panneau d'admin :
- if(isset($leMembre) && $leMembre->isAdmin()){
- ...
- if($leMembre->aLeDroit("gestionMembres"))
- echo '<img id="boutonMembres" src="images/onglet_membre_actif.png" alt="membres" />';
- ...
- if($leMembre->aLeDroit("gestionMembres")){
- //LISTAGE DES MEMBRES ICI
- echo ' <!-- Liste des membres -->
- <table id="liste_membres">...';
- }
- }
-
- => Changer le nom de l'utilisateur :
- $leMembre->setPrenom($_POST['prenom']);
- $retour = $leMembre->sauvegarderLUtilisateur();
- if(!$retour)
- $TEXTE_compte .= "ECHEC de la sauvegarde des modifications.";
-
-
- => Supprimer un utilisateur :
- if(!Utilisateur::supprimerLUtilisateur($_GET['suppmbr']))
- $TEXTE_admin = "Erreur à la suppression du membre.<br/>";
-
- => Inscrire un utilisateur :
- Utilisateur::inscription($_POST['pseudoInscription'], $_POST['passwordInscription'], $_POST['nom'], $_POST['prenom'], $_POST['sexe'], $_POST['dateNais'], $_POST['email'], $_POST['adresse'], $_POST['ville'], $_POST['codePostal'], $_POST['pays'], $participeAuConcours);
Pour créer les tables :
CREATE TABLE IF NOT EXISTS `dispose_de` (
`id_dispose` int(11) NOT NULL AUTO_INCREMENT,
`id_droits` int(11) NOT NULL,
`id_membres` int(11) NOT NULL,
PRIMARY KEY (`id_dispose`),
KEY `id_droits` (`id_droits`),
KEY `id_membres` (`id_membres`)
);
CREATE TABLE IF NOT EXISTS `droits` (
`id_droit` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(20) DEFAULT NULL,
`description` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id_droit`)
);
CREATE TABLE IF NOT EXISTS `membres` (
`id_membre` int(11) NOT NULL AUTO_INCREMENT,
`pseudo` varchar(20) NOT NULL,
`mot_de_passe` varchar(50) NOT NULL,
`nom` varchar(20) DEFAULT NULL,
`prenom` varchar(20) DEFAULT NULL,
`email` varchar(40) NOT NULL,
`sexe` varchar(1) DEFAULT NULL,
`date_de_naissance` date DEFAULT NULL,
`adresse` varchar(50) DEFAULT NULL,
`ville` varchar(30) DEFAULT NULL,
`code_postal` varchar(10) DEFAULT NULL,
`pays` varchar(25) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`url_avatar` varchar(50) DEFAULT NULL,
`participe_au_concours` tinyint(1) DEFAULT NULL,
`admin` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_membre`)
);
#Exemples d'utilisations (extrais d'une application) :
=>Connecter un utilisateur :
$TEXTE_connexion = ""; // Texte qui sera mit au module connexion si nécéssaire
if (isset($_POST["pseudo"]) && isset($_POST["password"]))
{
//On execute la fonction connexion qui renvoie true ou false
$validation = Utilisateur::connexion($_POST["pseudo"], $_POST["password"], "membre");
if(!$validation){// Si la connexion a échoué on l'indique en rajoutant un texte près du module
$TEXTE_connexion = "Pseudo inexistant ou mot de passe invalide";
}
}
=>Un fois connecté :
//# Si le membre est connecté on créer son objet (le membre est connecté quand la variable de session existe, voir fonction Utilisateur::connexion )
if(isset($_SESSION['membre'])){
$leMembre = new Utilisateur($_SESSION['membre']);
//print_r($leMembre);
}
=> Exemple pour un panneau d'admin :
if(isset($leMembre) && $leMembre->isAdmin()){
...
if($leMembre->aLeDroit("gestionMembres"))
echo '<img id="boutonMembres" src="images/onglet_membre_actif.png" alt="membres" />';
...
if($leMembre->aLeDroit("gestionMembres")){
//LISTAGE DES MEMBRES ICI
echo ' <!-- Liste des membres -->
<table id="liste_membres">...';
}
}
=> Changer le nom de l'utilisateur :
$leMembre->setPrenom($_POST['prenom']);
$retour = $leMembre->sauvegarderLUtilisateur();
if(!$retour)
$TEXTE_compte .= "ECHEC de la sauvegarde des modifications.";
=> Supprimer un utilisateur :
if(!Utilisateur::supprimerLUtilisateur($_GET['suppmbr']))
$TEXTE_admin = "Erreur à la suppression du membre.<br/>";
=> Inscrire un utilisateur :
Utilisateur::inscription($_POST['pseudoInscription'], $_POST['passwordInscription'], $_POST['nom'], $_POST['prenom'], $_POST['sexe'], $_POST['dateNais'], $_POST['email'], $_POST['adresse'], $_POST['ville'], $_POST['codePostal'], $_POST['pays'], $participeAuConcours);
Conclusion
Bon, voila, y a pas mal de commentaire je pense, donc ça devrai aller. C'est pas du php haut niveau, mais ça reste quand même pour les initiés.
Si vous avez des questions ou autre, n'hésitez pas ;)
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
variables de session [ par tweeder ]
BonjourJ'ai posé la question plus tôt cette semaine mais je crois que je m'étais mal exprimévoila j'aimerais récupérer ma variable de session enregist
deonection table log?? [ par pcpourtous ]
voial j'ai une table log, une identification avec une variable session "login"je veux gérer une table log : donc quand l'utilisateur se connecte j'ins
:: PB MYSQL_FETCH_ROW :: [ par nougitch ]
Bonjour à tous,Plutôt débutant en PHP, je vous explique.J'ai créé un espace membre avec une table "x2000_utilisateur".Ce qui me gêne c'est que quand q
Problème avec les sessions [ par auremy ]
Bonjour,J'aimerais créer un espace réservé, protégé par login et mot de passe. Pour ceci, j'utilise un formulaire permetant d'entrer ses données et qu
Erreur lors de l'utilisation de sessions [ par auremy ]
Bonjour,Je fais un site avec une partie réservé aux membres, ce qui nécessite donc une identification. Ayant regardé les messages à ce sujet, je n'ai
Gestion d'utilisateur [ par mortiis ]
Bonjour à tousJe fait un site ou il y a plusieurs utilisateurs.Chaque utilisateur a son username et son password.Pour vérifier sur chaque page si l'ut
espace de gestion d'un repertoire pour membres. [ par dcbastien ]
Bonjour.Je cherche a créer un espace avec identification qui permettra au membre, enregistré dans mysql, de modifier les fichiers. de son repertoire.C
test avant suppression utilisateur [ par benjy54 ]
bonjour, j'aimerai faire un test si la personne que je veux supprimer existe dans la base car la quoique je tape, il ecrit utilisateur bien supprim
Identification sans base sql [ par K3nnY ]
Je voudrais savoir comment vérifier le login et le password de personne essayant de se logguer sur leur partie réservé , mon probleme e
Gestion de connexions pour espace membre [ par dreyann ]
SalutJ'ai 2 types de cookies, un de 10 ans et un de 20 minutes aux choix par le membre lors de sa connexion. ces cookies servent à récuperer
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
CHAMPS TIMECHAMPS TIME par vargas
Cliquez pour lire la suite par vargas
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|