74 lines
2.7 KiB
Markdown
74 lines
2.7 KiB
Markdown
|
|
||
|
# 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.
|
||
|
|
||
|
![](./img/cookie.png)
|
||
|
### Ex2.
|
||
|
Le but est de créer un min-jeu de morpion.
|
||
|
|
||
|
![](./img/ttt.png)
|
||
|
|
||
|
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](./../tp3) (cinema) accessibles
|
||
|
uniquement à des utilisateur **inscrits au préalable**.
|
||
|
|
||
|
1. Rajouter à la base une table `user` qui comprend un **login**,
|
||
|
**email** et un **password**. (login est la clé)
|
||
|
2. 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](http://php.net/manual/fr/function.password-hash.php)
|
||
|
de php.
|
||
|
3. 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
|
||
|
<dl>
|
||
|
<dt><code>inscription.php</code></dt>
|
||
|
<dd>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 !)</dd>
|
||
|
<dt><code>authentification.html</code></dt>
|
||
|
<dd>formulaire d'authentification.</dd>
|
||
|
<dt><code>verification.php</code></dt>
|
||
|
<dd>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.</dd>
|
||
|
<dt><code>securite.php</code></dt>
|
||
|
<dd>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.</dd>
|
||
|
</dl>
|
||
|
Pour permettre l'authentification d'un utilisateur, il faut que
|
||
|
login et le mot de passe conviennent. On compare le hash de
|
||
|
l'utilisateur stocké dans la base avec le hashage calculé du
|
||
|
password soumis lors de l'authentification :
|
||
|
|
||
|
```php
|
||
|
<?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.';
|
||
|
}
|
||
|
?>
|
||
|
```
|
||
|
|