Accès a la partie admin.

cs_DL21 Messages postés 2 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 22 février 2009 - 22 févr. 2009 à 08:51
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 22 févr. 2009 à 12:04
Bonjour.
J'ai ce code dans l'index.php de ma partie admin :

<?php require("../header.php");
if (isset($_SESSION['pseudo']))
{
    include("../start.php");
    $requete = mysql_query("SELECT * FROM membres WHERE membre='".$_SESSION['pseudo']."'") or die (mysql_error());
    $donnees = mysql_fetch_assoc($requete);
    if ($donnees['acces'] > 1)
    {
        echo "Choisissez ce que vous voulez administrer :

       
       
       

       
       

";
    }
    else
    {
        echo "Accès non autorisé.";
    }
}
else
{
    echo "Merci de vous connecter.";
} ?>
Comme vous pouvez le voir, j'utilise un systeme de "levels", où 1 Membre, 2 Modo, 3 = Administrateur, 4 = Webmaster.
Le problème, c'est que le reste de la partie admin est accessible a tout le monde, seul index.php est protégé. Comment faire pour appliquer ce code sur toutes les pages de l'admin ?
Merci d'avance.

3 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
22 févr. 2009 à 10:14
Salut,

«Comment faire pour appliquer ce code sur toutes les pages de l'admin ?»
Tu le met dans un fichier php et tu fait un include sur toutes les pages d'administration.

Au passage, il se passe quoi si je m'inscrit sur ton site avec le pseudo suivant ? :
toto' OR '1'= '1
(enfin, en échapant les quotes si besoin)
Si tu n'as pas filtré de manière drastique les pseudos a l'inscription je vais avoir accès a toutes les pages d'administration vu mon pseudo. En effet, regarde la requête SQL que ça av envoyer :
"SELECT * FROM membres WHERE membre='".$_SESSION['pseudo']."'"
Devient :
SELECT * FROM membres WHERE membre=' toto' OR '1'='1 '
membre ='toto' sera toujours faux
0
cs_DL21 Messages postés 2 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 22 février 2009
22 févr. 2009 à 10:28
Certes, mais comment utiliser include dans mon cas ?

echo "Choisissez ce que vous voulez administrer :

       
       
       

       
       

";

c'est censé etre ce qui s'affiche, je ne vais tout de meme pas faire deux autres fichiers contenant

<?php require("../header.php");
if (isset($_SESSION['pseudo']))
{
    include("../start.php");
    $requete = mysql_query("SELECT * FROM membres WHERE membre='".$_SESSION['pseudo']."'") or die (mysql_error());
    $donnees = mysql_fetch_assoc($requete);
    if ($donnees['acces'] > 1)
    {

et

    }
    else
    {
        echo "Accès non autorisé.";
    }
}
else
{
    echo "Merci de vous connecter.";
} ?>

chacun ?
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
22 févr. 2009 à 12:04
Un petit exit() si l'utilisateur n'a pas le droit de visualiser la page et c'est bon :) Comme ça ça te permet de tout gérer au dessus sans avoir plein de if sur toute la longueur de la page.
0