IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Droit accès / permissisons


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 40
    Points : 29
    Points
    29
    Par défaut Droit accès / permissisons
    Bonjour à tous, j'ai donné des droits d'accès à des utilisateurs mais je ne sais pas comment leur refuser l'accès à certaines pages. Par exemple 'Monsieur X' à le droit d’accéder à la page "ajouter.php" mais pas à la page "modifier.php".
    Pour cela j'ai créé dans ma bdd une table "droit" avec un id, un nom et un niveau. Il y a 4 niveau différents :
    1er niveau -> Administrateur (accès à toutes les pages) ; 2ème niveau -> Medecin (accès pages "ajout.php" et "rechercher.php") ; 3ème niveau -> Secretaire (accès à toutes les pages) ; et 4ème niveau -> Autres (accès seulement page rechercher.php).
    Par défaut chaque utilisateur à le niveau 4.
    Je ne sais pas comment faire, j'ai entedu parler de symfony, d'opérateurs binaires etc.. mais étant débutant en php je souhaite quelque chose de simple, seulement refusé l'accès à une page en le redirigeant par exemple vers une page d'erreur.

    Merci par avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    De combien de droits différents as -tu besoin ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    J'ai besoin de 3 droits différents.
    Premier droit accès à toutes les pages
    Deuxième droit accès à la pages "ajouter.php" et "rechercher.php"
    Troisième droit accès seulement à la page "rechercher.php"

    Sinon je viens de penser, en fonction du droit d'accès le menu de navigation est différents. L'administrateur aura tous le menu tandis qu'une secrétaire seulement deux li du menu. Mais comment faire ? Je ne sais pas quelle condition faire

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    En gros je veux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    <?php
    function nav()
    {
    		$bdd = new PDO ("mysql: host=localhost; dbname=archivesv1; charset=utf8", "root", "");
     
    		if(isset($_SESSION['id']))
    	    {
     
    	        $requete = $bdd -> query("SELECT droit FROM connexion WHERE id='".$_SESSION['id']."'") or die(print_r($bdd->errorInfo()));
    			$resultat = $requete -> fetch();
     
    			switch ($resultat) 
    			{
    				case 1:
    			?>
    				<nav>
    				<div id="Navigation">
    					<ul class="Navigation">
    						<li>
    							<a href="index.php"> Accueil </a>
    						</li>
    						<li>
    							<a href="ajoutPatient.php"> Ajouter </a>
    						</li>
    						<li>
    							<a href="listePatientNom.php"> Rechercher </a>
    						</li>
    						<li>
    							<a href="transferer.php"> Transferer </a>
    						</li>
    						<li>
    							<a href="service.php"> Service </a>
    							<ul>
    								<li><a href="archives.php">Archives</a></li>
    								<li><a href="urgences.php">Urgences</a></li>
    								<li><a href="chirurgie.php">Chirurgie</a></li>
    								<li><a href="maternite.php">Maternite</a></li>
    								<li><a href="medecine.php">Medecine</a></li>
    								<li><a href="laboratoire.php">Laboratoire</a></li>
    								<li><a href="radiologie.php">Radiologie</a></li>
    							</ul>
    						</li>
    					</ul>
    				</div>
    				</nav>
    			<?php
    				break;
     
    				case 2:
    			?>
    				<nav>
    				<div id="Navigation">
    					<ul class="Navigation">
    						<li>
    							<a href="index.php"> Accueil </a>
    						</li>
    						<li>
    							<a href="ajoutPatient.php"> Ajouter </a>
    						</li>
    						<li>
    							<a href="listePatientNom.php"> Rechercher </a>
    						</li>
    						<li>
    							<a href="service.php"> Service </a>
    							<ul>
    								<li><a href="archives.php">Archives</a></li>
    								<li><a href="urgences.php">Urgences</a></li>
    								<li><a href="chirurgie.php">Chirurgie</a></li>
    								<li><a href="maternite.php">Maternite</a></li>
    								<li><a href="medecine.php">Medecine</a></li>
    								<li><a href="laboratoire.php">Laboratoire</a></li>
    								<li><a href="radiologie.php">Radiologie</a></li>
    							</ul>
    						</li>
    					</ul>
    				</div>
    				</nav>
    			<?php
    				break;
     
    				case 3:
    			?>
    				<nav>
    				<div id="Navigation">
    					<ul class="Navigation">
    						<li>
    							<a href="index.php"> Accueil </a>
    						</li>
    						<li>
    							<a href="ajoutPatient.php"> Ajouter </a>
    						</li>
    						<li>
    							<a href="listePatientNom.php"> Rechercher </a>
    						</li>
    						<li>
    							<a href="transferer.php"> Transferer </a>
    						</li>
    						<li>
    							<a href="service.php"> Service </a>
    							<ul>
    								<li><a href="archives.php">Archives</a></li>
    								<li><a href="urgences.php">Urgences</a></li>
    								<li><a href="chirurgie.php">Chirurgie</a></li>
    								<li><a href="maternite.php">Maternite</a></li>
    								<li><a href="medecine.php">Medecine</a></li>
    								<li><a href="laboratoire.php">Laboratoire</a></li>
    								<li><a href="radiologie.php">Radiologie</a></li>
    							</ul>
    						</li>
    					</ul>
    				</div>
    				</nav>
    			<?php
    				break;
     
    				case 4:
    			?>
    				<nav>
    				<div id="Navigation">
    					<ul class="Navigation">
    						<li>
    							<a href="index.php"> Accueil </a>
    						</li>
    						<li>
    							<a href="listePatientNom.php"> Rechercher </a>
    						</li>
    						<li>
    							<a href="service.php"> Service </a>
    							<ul>
    								<li><a href="urgences.php">Urgences</a></li>
    								<li><a href="chirurgie.php">Chirurgie</a></li>
    								<li><a href="maternite.php">Maternite</a></li>
    								<li><a href="medecine.php">Medecine</a></li>
    								<li><a href="laboratoire.php">Laboratoire</a></li>
    								<li><a href="radiologie.php">Radiologie</a></li>
    							</ul>
    						</li>
    					</ul>
    				</div>
    				</nav>
    			<?php
    			}
    		}
    	}
    ?>
    Mais rien ne s'affiche, il n'y plus de menu

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire comme tu le fais actuellement mais ce n'est pas souple.
    Les droits binaires c'est simple en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
    session_start();
     
    define ('ACCES_OTHER',  0x01);
    define ('ACCES_RECHERCHER',  0x02);
    define ('ACCES_AJOUTER', 0x04);
     
    function check_rights($right) {
    	return (bool)($_SESSION['rights'] & $right);
    }
     
    function add_rights($right) {
    	$_SESSION['rights'] |= $right;
    }
     
    function remove_rights($right) {
    	$_SESSION['rights'] &= ~ $right;
    }
     
    add_rights(ACCES_OTHER);
    add_rights(ACCES_RECHERCHER);
     
    var_dump(check_rights(ACCES_AJOUTER)); // FALSE
     
    add_rights(ACCES_AJOUTER);
     
    var_dump(check_rights(ACCES_AJOUTER)); // TRUE
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Merci je vais essayer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème droit accès fichier même en root
    Par webrider dans le forum Administration système
    Réponses: 24
    Dernier message: 13/12/2006, 07h52
  2. [C#] Migration VS 2003->2005 et Pb de droit accès
    Par mimibobo dans le forum Services Web
    Réponses: 2
    Dernier message: 16/08/2006, 17h02
  3. Droit accès à l'écriture dans mon repertoire WWW sous Mandriva
    Par zave dans le forum Administration système
    Réponses: 3
    Dernier message: 23/04/2006, 15h08
  4. problème droit accès à une table
    Par lio33 dans le forum Administration
    Réponses: 3
    Dernier message: 04/10/2005, 19h35
  5. [System][Droit accés Unix]
    Par lemaxou64 dans le forum Général Java
    Réponses: 2
    Dernier message: 09/06/2005, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo