Fred999 Rabat-joie | Hello tout le monde
J'ai déjà posté 2-3 topics pour la refonte d'un site en PHP...
Aujourd'hui, le souci est le suivant :
Conditions de base
- une page de connexion (accueilmembre.php)
- une page d'accueil (membre.php, après connexion) qui permet de créer un cookie contenant les données suivantes : login, password, équipe (c'est un jeu de hockey) et type (joueur ou admin).
- sur chaque page du site, je vérifie l'existence du cookie avec la page verifcookie.php, dont voici le code :
Code :
- <? // Test de présence d'un cookie et vérification du mot de passe associé
- // NE FONCTIONNE PAS EN MODE REQUIRE : DONC, RECOPIE SUR CHAQUE PAGE.
- if ((!empty($HTTP_COOKIE_VARS["LHO-login"])) && (!empty($HTTP_COOKIE_VARS["LHO-password"])) && (!empty($HTTP_COOKIE_VARS["LHO-equipe"])) && (!empty($HTTP_COOKIE_VARS["LHO-type"]))) {
- // Connexion à la base
- require "../include/config.php";
- require "../include/include.php";
- require "../include/messages.php";
- // Si le cookie existe, vérification du login/password
- $login = $HTTP_COOKIE_VARS["LHO-login"];
- $password = $HTTP_COOKIE_VARS["LHO-password"];
- $equipe = $HTTP_COOKIE_VARS["LHO-equipe"];
- $type = $HTTP_COOKIE_VARS["LHO-type"];
- $requete = "select dirg_ch_password from lho_dg where dirgich_login = '$login'";
- $reponse = mysql_query($requete) or die("$requete : conservez ce texte et contactez un administrateur svp" );
- $row = mysql_fetch_array($reponse);
-
- if (!empty($row["dirg_ch_password"])) {
-
- // Si MDP trouvé, on vérifie
- $password_bdd = $row["dirg_ch_password"];
- if (md5($password_bdd) != $password) { ?>
- <script language="javascript">
- alert("Mot de passe incorrect" );
- document.location.replace("../membre/deco.php" );
- </script>
- <? }
- }
- }
- else { ?>
- <script language="javascript">
- alert ("Accès direct à la page interdit sans cookie!" );
- document.location.replace("../membre/deco.php" );
- </script>
- <? } ?>
|
L'arborescence des répertoires
- membre : contient les pages de connexion, d'accueil, et les autres fonctions utiles aux joueurs.
- include : contient verifcookie.php et config.php (ficheir de connexion à la base).
- admin : contient les fonctions d'admin.
Le souci
Dans la page membre.php, je vérifie le type de l'utilisateur : si c'est un admin, alors je crée un lien vers une page d'administration.
- Si la page est contenue dans le répertoire admin, alors, quand je veux y aller, il me dit qu'il n'y a pas de cookie présent.
- Alors que si la page est contenue dans le répertoire membre, tout va bien.
Quelqu'un a une idée du pourquoi du comment?
C'est pas que ça m'embête, mais j'aimerais bien avoir une vraie séparation fonctionnelle, et pis bon, c'est trop stupide comme truc |