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
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|