Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/02/2007, 14h59   #1
Membre à l'essai
 
Inscription : décembre 2003
Messages : 107
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : décembre 2003
Messages : 107
Points : 21
Points : 21
Par défaut protection page switch case

bonjour,

j'ai une petite question technique, je crée actuellement une admin pour mon site, cet admin sera administrable par un admin, editeur, utilisateur...
Chaque utilisateur selon sont niveaux pourra accéder à un niveau (exemple un editeur ne pourra pas supprimer, un utilisateur ne pourra pas updater, supprimer, ajouter... dans mon cas comment je peux protégér les switchs cases.

A noter que dans le header il y a le html/head/body et un include session qui protege la page !

le problème c'est que en saisissant dans l'url nation.php?action=add on accède à la case add meme en temps que simple utilisateur.... le résultat peut etre catastrophique si je laisse comme cela

ci joint un extrait de ma page nation.php et le fichier session.php qui est en entete.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?php
require("include/header.php");
?>
<h1>NATIONS CONTINENTS</h1>
<?php
switch ($_GET['action']){
case 'display':
mon code
break;
 
case 'add':
mon code
break;
 
case 'update':
break;
break;
}
require("include/footer.php");
?>
et

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?php
session_start();
if( !isset($_SESSION["login"]) && !isset($_SESSION["loginID"]) && !isset($_SESSION["logintypeID"]))
{
header("location: index.php");
die();
}
?>
 
login= le login du connecté
longinID= le ID de l'user dans la base
logintypeID= le niveau de l'utilisateur 1=admin....4=utilisateur
jarod71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2007, 15h08   #2
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
Salut,
tu dois pouvoir régler ton problème en faisant ainsi :

Code :
case 'add' && $logintypeID <= 2:
si tu veux que seuls les admins et les editeurs puissent insérer. (en admettant que 2=editeurs)

Bye
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2007, 15h15   #3
Membre à l'essai
 
Inscription : décembre 2003
Messages : 107
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : décembre 2003
Messages : 107
Points : 21
Points : 21
je vais essayer cette solution.
jarod71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2007, 17h47   #4
Membre à l'essai
 
Inscription : décembre 2003
Messages : 107
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : décembre 2003
Messages : 107
Points : 21
Points : 21
cela ne semble pas fonctionner ! en effet dans le tableau situé sur la page display, si je clique sur update, alors que j'ai les droits je suis redirigé vers ADD !!! bizarre...

par contre qu'en je n'ai pas les droits je n'ai rien à l'ecran que le titre UPDATE donc on peux dire que cela fonctionne qu'en je n'ai pas les droits.

Autres questions, comment rajouter un message pour dire à la personne qui n'a pas les droits 'vous n'avez pas les droits pour accéder à cette page'......
jarod71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2007, 01h46   #5
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
Il doit y avoir une erreur à un autre niveau. Pour le message tu peux mettre ça dans le default du switch (si tu veux un message plus précis tu peux mettre un if dans chaque cas). Le code réduit :

Code :
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
 
 
if(isset($_GET['action']))
$action = $_GET['action'];
else
$action = 'display';
 
$lvl = 4;
switch ($lvl){
case 'display':
//mon code
break;
 
case 'add' && $lvl <= 2:
//mon code
break;
 
case 'update' && $lvl <= 2:
// code
break;
 
default:
echo 'erreur accès';
break;
}
si t'es redirigé sur le add c'est que $_GET['action'] ou $lvl est mal renseigné.
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h21.


 
 
 
 
Partenaires

Hébergement Web