Nom du fichier : exercises_13/lesson_13_a3_create_password_table.php
Lorsque l'utilisateur a été correctement autentifié, il faut ensuite écrire
une variable de session pour ne pas avoir à redemander le mot de passe à chaque
page. Le système http nécessite que cette opération soit effectuée avant tout envoi
au serveur http, la page devra donc commencer de la façon suivante :
<?
if ($password_OK) //la vérification du mot de passe s'est bien effectuée
{
empty($_SESSION)? session_start():print""; //initialisation de la session
$_SESSION["session_user_name"] = $_POST['user_name'];// on met le nom d'utilisateur dans la variable de session
header("Location: lesson_13_d_welcome.php?user_name=$session_user_name");//redirection
exit();
}
else
{ // mot de passe incorrect
echo "Vous n'avez pas fourni un mot de passe vous permettant d'entrer sur le site";
. . . .
}
?>
(Voir au besoin d'autres exemples pratiques sur les variables de session au chapitre 14)
Nom du fichier : exercises_13/lesson_13_b_login_form.php
Il faut ensuite modifier toutes les pages protégées du site de façon à empêcher
tout utilisateur non identifié d'entrer sur la page (on pourra rajouter ce code ou créer un
fichier séparer et l'inclure avec un include() ):
<?
empty($_SESSION)? session_start():print"";
if (!isSet($_SESSION['session_user_name']))//vérification variable de session
{
echo "Entrée interdite";
exit();
}
. . . . //suite du code de la page, (html ou php)
?>
Le problème qui peut survenir est le suivant :
Aprés une vérification positive du mot de passe, on demande au système
d'exploitation d'enregistrer une variable de session, puis on serait tenté
de diriger directement l'utilisateur sur le site, mais le temps d'accès
à une page du site peut être plus rapide que le temps, pour le système
d'exploitation, d'ecrire la variable de session, auquel cas l'utilisateur se voit refuser
l'accès à la page, bien que son mot de passe soit bon, d'où la mise en place d'une page de bienvenue,
comme indiqué dans l'organigramme ci-dessus
Nom du fichier : exercises_13/lesson_13_g1_risque.php
Exercices supplémentaires :
_Chercher dans le serveur où sont stockées les variables de session,
en éditer une pour voir son contenu
_Modifications à effectuer : rajouter le prénom à la fois dans la base et
dans les variable de session de façon à pouvoir l'afficher en haut de
chaque page visitée
Aller sur la page sans passer par le mot de passe
Si l'on a déjà saisi le mot de passe, il va rester valide
par l'intemédiaire des variables de session, tant que l'on
n'aura pas fermé et réouvert le navigateur