Modular Business

Tel: 00212 648154672 | Mail: Hamza.Abdeljabbar@gmail.com



Trackin

Administration sur PHP

PHP - ADMINISTRER en ligne : PROTECTION des PAGES

 

Principe :

- Création d'un dossier (ADMIN) dans lequel on met ses pages d'administration.

- Accès à l'"espace d'administration en ligne" : www.MONSITE.com/ADMIN

- ADMIN/index.php : formulaire d'identification par identifiant et mot de passe.

Ici : un accès à 1 niveau (webmestre)

- Validation par Cookie OU Session au choix,

- Comparaison avec un code de validation généré aléatoirement,

- L'accès aux pages protégées est alors validé.

 

NB : par sécurité, changez le nom du dossier "ADMIN" (trop évident).

 

NB : le code de validation est stocké dans une variable de session.

Il est généré aléatoirement à chaque nouvelle identification.

Il n'est valide qu'une fois.

 

 

Les fichiers nécessaires (dossier ADMIN) :

 

_protect.php

contient vos identifiants et mots de passe

index.php :

formulaire d'identification

_protectpage.php :

protection des pages

 

vos pages à protéger

scripts à inclure

_deconnexion.php

déconnexion et retour à votre site

 

 

_protect.php

 

<?php // partie commune (cookie ou session)

session_start();

// -------------------------------------------------------------------------

$utilisateur = "IDENTIFIANT"; // Remplacer IDENTIFIANT par votre identifiant (au choix)

$mot_de_passe = "MOTDEPASSE"; // Remplacer MOTDEPASSE par votre mot de passe (au choix)

// -------------------------------------------------------------------------

// si le visiteur (administrateur ou collaborateur) a validé le formulaire

$login = '';

$pass = '';

if (!empty($_POST['login']) && !empty($_POST['pass'])) {

$login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);

$pass = filter_var($_POST['pass'], FILTER_SANITIZE_STRING);

}

// -------------------------------------------------------------------------

// creation d un code de validation aleatoire

// -------------------------------------------------------------------------

$tableau = array("0","1","2","3","4","5","6","7","8","9",

"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",

"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

// Tirage aléatoire de 16 caracteres

$taille = 16;

$valeurs_aleatoires = array_rand($tableau, $taille);

// generation du code

$code_valide = '';

foreach($valeurs_aleatoires as $i)

{ $code_valide = $code_valide . $tableau[$i]; }

// -------------------------------------------------------------------------

// On stocke le code_valide sur le serveur dans une variable de session

$_SESSION["CODEVALIDE"] = $code_valide;

// -------------------------------------------------------------------------

?>

<?php

// (suite avec COOKIE)

// ------------------------------------------------------

// Si le login et le mot de passe sont corrects

if ($login == $utilisateur && $pass == $mot_de_passe) {

// copie du code dans un cookie "perso"

setcookie ("MONCOOKIE",$code_valide,time()+3600);

// ------------------------------------------------------

} else {

setcookie ("MONCOOKIE", "");

}

?>

<?php

// (suite avec SESSION)

// ------------------------------------------------------

// Si le login et le mot de passe sont corrects

if ($login == $utilisateur && $pass == $mot_de_passe) {

// copie du code dans une variable de session "perso"

$_SESSION["MASESSION"] = $code_valide;

// ------------------------------------------------------

} else {

$_SESSION["MASESSION"] = '';

}

?>

 

 

index.php

 

<?php // (debut avec COOKIE)

include("_protect.php");

// ------------------------------------------------------

// Accès autorisé si identifié

if (!empty($_SESSION['CODEVALIDE']) &&

md5($_COOKIE['MONCOOKIE']) ==

md5($_SESSION["CODEVALIDE"]))

{

// Redirection vers le menu de l "ADMIN"

header("Location: MONmenuADMIN.php");

exit;

}

// ------------------------------------------------------

// sinon affichage du formulaire d'identification

?>

<?php // (debut avec SESSION)

include("_protect.php");

// ------------------------------------------------------

// Accès autorisé si identifié

if (!empty($_SESSION['CODEVALIDE']) &&

md5($_SESSION["MASESSION"]) ==

md5($_SESSION["CODEVALIDE"]))

{

// Redirection vers le menu de l "ADMIN"

header("Location: MONmenuADMIN.php");

exit;

}

// ------------------------------------------------------

// sinon affichage du formulaire d'identification

?>

(suite commune)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">

<head>

<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

<title>index.php</title>

</head>

<body>

<div align="center">

<form name="identification" method="post" action="index.php">

Identifiant : <input name="login" size="20" /><br />

Mot de passe : <input name="pass" type="password" size="20" /><br />

<input type="submit" value="Valider" />

</form>

</div>

</body></html>

 

 

_protectpage.php

 

<?php // (avec COOKIE)

session_start();

// ------------------------------------------------------

// comparaison avec le code de validation

// si non identifie

if (empty($_SESSION['CODEVALIDE'])

|| md5($_COOKIE['MONCOOKIE']) !=

md5($_SESSION['CODEVALIDE']))

{

// redirection vers le formulaire d identification

header("Location: index.php");

exit;

}

// ------------------------------------------------------

// si identifie, on continue

?>

<?php // (avec SESSION)

session_start();

// ------------------------------------------------------

// comparaison avec le code de validation

// si non identifie

if (empty($_SESSION['CODEVALIDE'])

|| md5($_SESSION['MASESSION']) !=

md5($_SESSION['CODEVALIDE']))

{

// redirection vers le formulaire d identification

header("Location: index.php");

exit;

}

// ------------------------------------------------------

// si identifie, on continue

?>

 

 

Vos pages à protéger

Ajouter en tout début de chaque page à protéger :

 

<?php

include("_protectpage.php") ;

// -------------------------------------------------------------------

?>

 

 

Insérer un bouton de déconnexion

on insère le formulaire suivant (bouton de déconnexion) dans les pages protégées (ou dans son "menu admin") :

 

<form method="POST" action="_deconnexion.php">

<input type="submit" value="deconnexion" name="deconnexion">

</form>

 

 

_deconnexion.php

 

<?php // (avec COOKIE)

session_start();

// ------------------------------------------------------

// on vide/detruit le cookie "perso" et la session

$_SESSION = array();

$session_name = session_name();

setCookie('monCookieNom'); // destruction du cookie

// destruction des informations du cookie en mémoire

unset($_COOKIE['monCookieNom']);

session_destroy();

// Redirection vers le site

header("Location: http://www.MONSITE.com");

exit;

// ------------------------------------------------------

?>

Meilleurs partenaires Trackin VIP


Vous êtes un membre ?

Veuillez s’inscrire si vous ne disposez pas d’un compte sur le site pour profiter des meilleurs services du webmastering au but de perfectionner votre site web, avoir quelques aides à propos de votre site ...

Ce site web a été créé gratuitement avec Ma-page.fr. Tu veux aussi ton propre site web ?
S'inscrire gratuitement