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

PHP & Base de données Discussion :

connexion en super admin et admin


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut connexion en super admin et admin
    Bonjour,
    Jusqu'à maintenant dans l'admin, seuls les "user" avec un "userlevel" niveau 1 pouvaient se connecter et avoir accès à toute l'admin du site. Mais je viens de créer un profil avec un niveau 2 et 3 qui a accès qu'à certaines parties de l admin. Mais je sais pas du tout comment modifier le fichier qui gère l'autorisation d'accès à l'admin. Merci d'avance de votre aide.

    Voici le fichier:
    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
    <?php 
     
    function http_auth($realm="Administration")
    {
    	Header("WWW-Authenticate: Basic realm=\"$realm\""); 
    	Header("HTTP/1.0 401 Unauthorized"); 
    	echo "
    
    <link href=\"http://".$_SERVER[SERVER_NAME]."/style.css\" rel=\"stylesheet\" type=\"text/css\">
    <TABLE WIDTH=\"100%\" HEIGHT=\"100%\" CELLPADDING=\"0\" CELLSPACING=\"0\" ><TR>
            <TD ALIGN=\"center\" VALIGN=\"middle\"> 
              <TABLE CELLPADDING=\"0\" CELLSPACING=\"2\" class=TABLEBORDER><TR><TD ALIGN=\"center\" VALIGN=\"middle\">
    		<TABLE CELLPADDING=\"4\" WIDTH=\"100%\" HEIGHT=\"100%\" class=TABLEBG><TR><TD class=12 align=center><B>
    Vous devez vous identifier.</B><p><a href=\"index.php\" target=_parent>R&eacute;essayer</a> - <a href=\"".SITEWWWROOT."/index.php\">Quitter</a></p></font>
    </TD></TR></TABLE>
    	</TD></TR></TABLE>
    		</TD></TR></TABLE>
    "; 
    	exit;
    }
     
    function authentifier($user, $pass, $level=0)
    {
    	global $tables;
    	$le_result = mysql_query("
    		SELECT user_id FROM $tables[users] 
    		WHERE user = '$user' 
    		AND password = '".MD5($pass)."'
    		AND userlevel<=".(int)$level."
    		") or die ("#Impossible d'executer la requete !#"); 		
    	if (mysql_num_rows($le_result)==1) return 1;
    	else return 0;
    }
     
     
    if ($logout==1)
    {
    	session_start();
    	session_unregister("TAB_USER");
    	unset($TAB_USER);
    	session_destroy();
     
    	$url="http://" . $_SERVER[SERVER_NAME] . "/" . ADMINDIR . "/index.php";
     
    	header("location: $url ");
    	die;
    }
     
    if (isset($_SERVER[PHP_AUTH_USER]) && isset($_SERVER[PHP_AUTH_PW])) 
    { 
    	if (authentifier($_SERVER[PHP_AUTH_USER], $_SERVER[PHP_AUTH_PW], $niveau)==1)
    	{
    		session_start();
    		if (!session_is_registered("TAB_USER"))
    		{
    			session_register("TAB_USER");
    			$sql="SELECT user_id, user, userlevel FROM $tables[users] WHERE user = '$_SERVER[PHP_AUTH_USER]'"; 
    			$result=mysql_query($sql) or die ("##Impossible d'executer la requete !##"); 
    			$TAB_USER = mysql_fetch_array($result);
     
    			$sql="INSERT INTO $tables[users_logs] 
    			SET login='".date("Y-m-d H:i:s")."', logout='".date("Y-m-d H:i:s")."', user='$TAB_USER[user]', ip='$_SERVER[REMOTE_ADDR]', host='".gethostbyaddr($_SERVER[REMOTE_ADDR])."', session_id='".session_id()."'";	
    			$result0=mysql_query($sql) or die ("###Impossible d'executer la requete !###");
    		}
    		else
    		{
    			$sql="UPDATE $tables[users_logs] 
    			SET logout='".date("Y-m-d H:i:s")."'
    			WHERE session_id='".session_id()."'";
    			$result0=mysql_query($sql) or die ("###Impossible d'executer la requete !###");
    		}
    	} 
    	else 
    	{
    		http_auth("Administration : Echec, vous n'avez peut-être pas les droits nécessaires pour vous connecter.");
    	}
    } 
    else http_auth();   
    ?>

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Hello !

    Bon déjà soyons clair, ce script est pas propre du tout, et qui plus est encore moins sécurisé. Je te conseil de le réécrire entièrement en utilisant les "bonnes" pratiques (échappement des caractères, utilisation de mysqli etc..), ceci pour la bonne santé de ton site web.

    Autrement l'idée générale, c'est qu'au moment de la connexion tu stockes en session le niveau de droit de l'utilisateur courant (1,2 ou 3). Après au cours de l'exécution de ton programme, tu peux tester cette variable de session et exécuter des codes différents en fonction de sa valeur (si niveau = 1 alors faire ça sinon faire ça...)

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Je ne suis pas à l'origine du code. Je ne sais pas comment modifier et rédiger le code ci dessus pour intégrer la valeur 2 ou 3. Il y a déjà des "if" partout et je sais pas à quelle ligne et comment modifier tout ça.

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Dans ce cas là, la meilleure solution est de le réécrire entièrement à ta manière. Ce code est non sécurisé et également complètement obsolète (il utilise des fonctions dépréciées et même supprimées dans les dernières versionde php).

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    On avait lancé le site en 2006 et il est certain qu'il est dépassé. C'est pour cette raison que je suis en train de le refaire mais là je dois me débrouiller seul et pour cette partie je n'ai pas les compétences pour récrire le code. D'autres parties j'avais réussi à le faire seul mais là j'ai besoin d'un coup de main du forum si jamais certaines personnes peuvent m'aider à modifier le code. Merci d'avance

Discussions similaires

  1. Création d'une partie admin avec admin::category
    Par tombabibel dans le forum Ruby
    Réponses: 3
    Dernier message: 26/02/2010, 20h18
  2. Réponses: 8
    Dernier message: 05/12/2006, 17h34
  3. [Admin] Outil admin sous Linux
    Par Mister Nono dans le forum Outils
    Réponses: 1
    Dernier message: 25/08/2004, 08h51

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