Un projet ENSISA
4 juin
Aujourd’hui nous allons nous familiariser avec les accès privés. Pour bien comprendre le principe, nous allons prendre le cas d’une connexion à un seul utilisateur (comme un admin par exemple) et tester l’accès à des pages privées. Pour ce faire, il est nécessaire d’avoir des connaissances en HTML, en effet il faut réaliser un formulaire de connexion. Cette technique ne sera pas développée ici, mais sera disponible dans les sources plus bas.
Commençons :
Dans la page accessible au serveur, index.html, nous développerons deux parties : un accès publique et un accès privée. Comme c’est un exemple, nous ne considérons pas la forme de la chose (pas de CSS attaché).
<p><a href="pagepublique.html">accès public</a> <a href="accesprive.php">accès privé</a></p> <p><a href="accesprive.php" class="Style1">un</a></p> <p><a href="accesprive.php" class="Style2">deux</a></p> <p><a href="accesprive.php" class="Style3">trois</a></p> <p><a href="accesprive.php" class="Style4">quatre</a></p> <p><a href="accesprive.php" class="Style5">cinq</a>
Cette page très sommaire peut être enrichie, mais ce n’est pas le but. Vous remarquerez l’accès aux différents fichiers PHP d’accès privé.
Justement, passons aux choses sérieuses :
L’accès privé. PHP impose à ses utilisateurs de mettre tout en haut d’un fichier à accès privé la chose suivante :
<?php session_start(); ?>
« session_start() crée une session (ou restaure celle trouvée sur le serveur, via l’identifiant de session passé dans une requête GET, POST ou par un cookie) » (PHP.net)
Au final, il est important de vérifier si les champs login et mot de passe sont bien renseignés avec les bonnes données dans quel cas on enverra “$_SESSION[’acces’]=”oui” et le nom de l’utilisateur sera transféré par la même occasion : $_SESSION[’nom’]=$_POST[’login’]. (un test vrai-faux est nécessaire : if/else)
<?php
session_start();
if($_POST['login']=="benoit" &amp;amp;amp;&amp;amp;amp; $_POST['pass']=="remi")
{
$_SESSION['acces']="oui";
$_SESSION['nom']=$_POST['login'];
echo "Vous avez été authentifié";
}else echo "Vous n'êtes pas authentifié";
?>
Une fois connecté avec le bon login et mot de passe (ici login: benoit, mot de passe: remi) toutes les pages privées doivent débuter avec le session_start() expliqué plus haut. De plus, il faut tester si la personne qui visite la page, dispose des droits nécessaires, c’est à dire si l’accès a été accordé.
if($_SESSION['acces']!="oui")
{
header("Location:accesprive.php");
}
D’autres fonctionnalités annexes ont été rajoutées ici comme par exemple le nombre de visites sur les pages privées, ou encore l’affichage du statut de la connexion (connecté, non connecté). Il faut néanmoins savoir qu’il est beaucoup plus intéressant de créer des logins par MYSQL. Ce point sera traité ultérieurement.
Vous pouvez télécharger les sources ici :
Télécharger Accès privé