2.7 KiB
2.7 KiB
TP4 : Cookies et sessions en PHP.
Ex1.
Complétez le script index.php
de l'exercice 1 de manière à
mémoriser grâce à un cookie son os préféré (parmi Linux, Windows et
MacOS). Le cookie est valable pendant une minute, et l'os par
défaut est Linux.
Ex2.
Le but est de créer un min-jeu de morpion.
Les variables de session :
grid
: le plateau du jeu. tableau de 9 cases, prennant les valeurs 0 (libre), 1 (joueur 1), 2 (joueur 2).playerTurn
: le joueur qui joue.
Le script prend en paramètre la variable pos
: la position du coup joué par le joueur.
Ex3.
On désire rendre les pages du tp3 (cinema) accessibles uniquement à des utilisateur inscrits au préalable.
- Rajouter à la base une table
user
qui comprend un login, email et un password. (login est la clé) - Ecrire un formulaire d'inscription au site qui comprend les champs correspondants. Vous enregistrerez dans la base la mot de passe hashé avec la fonction password_hash de php.
- Faire en sorte que toutes les pages de l'application soient accessibles uniquement si l'utilisateur s'est authentifié. (utiliser une session)
Ecrire les scripts ou pages suivants
inscription.php
- formulaire d'inscription, et qui traite les données du formulaire. Si le formulaire n'est pas correctement rempli, Il est réaffiché. (les champs correctes sont conservés !)
authentification.html
- formulaire d'authentification.
verification.php
- traite le formulaire précédent et vérifie si l'utilisateur est enregistré. En cas de succés, renvoie vers la page d'accueil du site. Pour éviter des attaques force brute, ajoutez une temporisation qui ralentira de telles attaques.
securite.php
- morceau de code que vous inclurez systématiquement dans vos pages que vous voulez rendre accessible uniquement aux utilisateurs dûment authentifiés. Ce script vérifiera l'existence d'une variable de session créée lors de la connexion.
<?php
// Voir l'exemple fourni sur la page de la fonction password_hash()
// pour savoir d'où cela provient.
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';
if (password_verify('rasmuslerdorf', $hash)) {
echo 'Le mot de passe est valide !';
} else {
echo 'Le mot de passe est invalide.';
}
?>