=')) { if (!session_regenerate_id (true)) { exit; } } } $_SESSION = array (); initialiser_cle_session (); } /* Initialement, la lecture d'un cryptogramme n'est pas nécessaire pour se connecter */ $admModeSecurise = false; if (isset ($_GET['logout'])) { if (isset ($_SESSION[ADM_ETAT_CONNEXION])) { /* Ferme la connexion */ unset ($_SESSION[ADM_ETAT_CONNEXION]); supprimer_cle_session (); } /* Revient à la page d'accueil */ header ('location: index.php'); } /* Si la connexion est fermée */ else if (!isset ($_SESSION[ADM_ETAT_CONNEXION])) { /* Lecture du fichier d'erreurs de connexion */ lire_fichier_erreurs_connexion (); /* * Vérification d'une tentative de connexion */ if (isset ($_POST['connecter'])) { $login = isset ($_POST['admin_login']) ? decode_gpc ($_POST['admin_login']) : ''; $pass = isset ($_POST['admin_pass']) ? decode_gpc ($_POST['admin_pass']) : ''; $mdpMode = 'compatible'; require ('include/admin/mdp.php'); if ($mdpMode == 'compatible') { $mdp = md5 ($mdp); } $testCrypto = (mode_securise () or isset ($_POST['code'])); /* Validation de l'identifiant, du mot de passe, et éventuellement du code du cryptogramme */ if ($login == $cfgAdministrateur[3] and md5 ($pass) == $mdp and (!$testCrypto or (isset ($_SESSION['cryptcode']) and isset ($_POST['code']) and $_SESSION['cryptcode'] == md5(strtoupper ($_POST['code'])) and !isset ($_SESSION['cryptreload'])))) { /* Création d'un nouvel identifiant pour la connexion à ouvrir */ if (version_compare (PHP_VERSION, '4.3.3', '>=')) { session_regenerate_id (true); } /* Création d'une clé à usage unique */ initialiser_cle_session (2); /* Ouvre la connexion */ $_SESSION[ADM_ETAT_CONNEXION] = 1; /* Restauration, à partir de la session, des informations passées au script */ if (isset ($_SESSION['admin_get'])) { $_GET = $_SESSION['admin_get']; } if (isset ($_SESSION['admin_post'])) { $_POST = $_SESSION['admin_post']; } if (isset ($_SESSION['admin_request'])) { $_REQUEST = $_SESSION['admin_request']; } unset ($_SESSION['admin_get'], $_SESSION['admin_post'], $_SESSION['admin_request']); /* Si le mot de passe par défaut n'a pas été changé */ if ($mdp == md5 ('pass')) { /* Affichage du message de rappel de changement de mot de passe. Les constantes définies ci-dessous sont utilisées par hpage.inc */ define ('HPAGE_HEADER', ' '); define ('HPAGE_BODY_ATTRIBUTES', 'onload="pwdReminder()"'); } } else { /* La validation identifiant/mot de passe[/cryptogramme] a échoué */ $_SESSION['cryptreload'] = true; /* Ajout de la tentative dans la liste des erreurs de connexion */ ajouter_erreur_connexion (); } unset ($mdp, $pass); } else { /* Sauvegarde, dans la session, des informations passées au script */ $_SESSION['admin_get'] = $_GET; $_SESSION['admin_post'] = $_POST; $_SESSION['admin_request'] = $_REQUEST; } /* Ecriture des erreurs de connexion dans le fichier */ ecrire_fichier_erreurs_connexion (); /* Si le nombre d'erreurs de connexion dépasse la limite autorisée, on passe en mode sécurisé */ $admModeSecurise = mode_securise (); } unset ($_POST['admin_login'], $_POST['admin_pass'], $_REQUEST['admin_login'], $_REQUEST['admin_pass']); if (isset ($HTTP_POST_VARS)) { unset ($HTTP_POST_VARS['admin_login'], $HTTP_POST_VARS['admin_pass']); } /* Si la connexion est ouverte */ if (isset ($_SESSION[ADM_ETAT_CONNEXION])) { /* * Chargement des pages de la zone d'administration */ $pg = isset ($_GET['pg']) ? decode_gpc ($_GET['pg']) : ''; $skin = isset ($_GET['skin']) ? decode_gpc ($_GET['skin']) : ''; if (!empty ($pg)) { /* Pages d'administration */ $nfPageAdmin = 'include/admin/'.basename ($pg).'.inc'; if (file_exists ($nfPageAdmin)) { include ($nfPageAdmin); } else { header ('location: admin.php'); } } else if (!empty ($skin)) { /* Configuration des thèmes administrables */ $nfAdminSkin = 'skin/'.basename ($skin).'/admin/admin.inc'; if (file_exists ($nfAdminSkin)) { include ($nfAdminSkin); } else { header ('location: admin.php'); } } else { /* * Affichage des icônes de la zone d'administration */ include ('include/hpage.inc'); htable ('Admin - Sélectionnez une option', '100%'); if (file_exists ('include/admin/upgrade.inc')) { include ('include/admin/upgrade.inc'); } /* Définition des icônes d'administration */ $iconesAdmin = array ( /* * Syntaxe : * array( url_lien, url_image, titre_icone ) * * Dans le titre de l'icône, \n permet de passer à la ligne. */ array ('admin.php?pg=homepage', 'graphics/admin/homepage.png', 'Page d\'accueil'), array ('admin.php?pg=pages', 'graphics/admin/pages.png', 'Pages centrales'), array ('admin.php?pg=articles', 'graphics/admin/article.png', 'Articles'), array ('admin.php?pg=nouvelles', 'graphics/admin/nouvelle.png', 'Nouvelles'), array ('admin.php?pg=upload', 'graphics/admin/upload.png', 'Envoyer sur'."\n".'le serveur'), array ('admin.php?pg=downloads', 'graphics/admin/download.png', 'Téléchargements'), array ('admin.php?pg=banniere', 'graphics/admin/banniere.png', 'Bannière'), array ('admin.php?pg=config2', 'graphics/admin/config2.png', 'Configuration'."\n".'du site'), array ('admin.php?pg=theme', 'graphics/admin/theme.png', 'Thème'), array ('admin.php?pg=footer', 'graphics/admin/footer.png', 'Pied de page'), array ('admin.php?pg=password', 'graphics/admin/password.png', 'Mot de passe'), array ('admin.php?pg=config1', 'graphics/admin/config1.png', 'Configuration'."\n".'générale'), array ('admin.php?pg=about', 'graphics/admin/about.png', 'Page A propos'), array ('admin.php?pg=syndication', 'graphics/admin/syndication.png', 'Syndication'), ); echo '
Bienvenue dans la zone d\'administration !
Vous pouvez modifier votre site :
changer les couleurs, ajouter ou supprimer des articles, créer des liens ...
Pour revenir sur cette page, cliquez sur "Retour admin".
'."\n";
if (preg_match ('/^javascript:/i', $icone[0]))
{
$lien = $icone[0];
}
else $lien = conv_url($icone[0]);
echo ''.
''.
' | '."\n";
$nColonne++;
}
if ($nColonne > 0)
{
/* Fin de la dernière ligne */
echo '
Attention ! La connexion se fait jusqu\'à la fermeture du navigateur.
Il est possible de se déconnecter dans la zone d\'administration.