diff --git a/R3.01/README.md b/R3.01/README.md index 45ec43f..b1f27e8 100644 --- a/R3.01/README.md +++ b/R3.01/README.md @@ -30,10 +30,11 @@ Les notions suivantes seront abordées : | Semaine | Cours | TD/TP | | ------------------ | -------------------------------------------------------- | ------------------ | -| 1 : 16/03 - 20/03| [Bases du langages](./cours/cm_bases_php.pdf) | | -| 2 : 23/03 - 27/03 | | [tp1](./tp/tp1) | -| 3 : 30/03 - 03/04 | [Intéractions avec le client](./cours/cm_interaction_client_serveur.pdf) | [tp2](./tp/tp2) | -| 4 : 07/04 - 10/04 | [PHP/MySQL](./cours/cm_extension_mysqli.pdf) | [tp3](./tp/tp3) | +| 1 | [Bases du langages](./cours/cm_bases_php.pdf) | | +| 2 | | [tp1](./tp/tp1) | +| 3 | [Intéractions avec le client](./cours/cm_interaction_client_serveur.pdf) | [tp2](./tp/tp2) | +| 4 | [PHP/MySQL](./cours/cm_extension_mysqli.pdf) | [tp3](./tp/tp3) | +| 5 | [Cookies et sessions](./cours/cm_cookies_sessions.pdf) | [tp3](./tp/tp3) , [tp4](./tp/tp4) | @@ -51,4 +52,18 @@ aborde la récupération des données de formulaires avec PHP. À chaque exercice correspond un sous répertoire avec des fichiers à compléter. +#### TP3 : PHP/Mysql +Le [tp3](./tp/tp3) +aborde l'interfaçage de php avec mysql, au moyen de l'extention +[mysqli](http://php.net/manual/fr/book.mysqli.php) de php. +À chaque exercice correspond un sous répertoire avec +des fichiers à compléter. + +#### TP4 : Cookies et sessions +Le [tp4](./tp/tp4) +aborde la notion de cookies et de sessions,et +les fonctions php dédiées. +À chaque exercice correspond un sous répertoire avec +des fichiers à compléter. + diff --git a/R3.01/cours/cm_cookies_sessions.pdf b/R3.01/cours/cm_cookies_sessions.pdf new file mode 100644 index 0000000..f142935 Binary files /dev/null and b/R3.01/cours/cm_cookies_sessions.pdf differ diff --git a/R3.01/tp/tp4/README.md b/R3.01/tp/tp4/README.md new file mode 100644 index 0000000..8c22000 --- /dev/null +++ b/R3.01/tp/tp4/README.md @@ -0,0 +1,76 @@ + +# 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 votre 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 +
+
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.
+
+ +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 + +``` + diff --git a/R3.01/tp/tp4/ex1/index.php b/R3.01/tp/tp4/ex1/index.php new file mode 100644 index 0000000..b1873cc --- /dev/null +++ b/R3.01/tp/tp4/ex1/index.php @@ -0,0 +1,6 @@ + diff --git a/R3.01/tp/tp4/ex1/views/main.php b/R3.01/tp/tp4/ex1/views/main.php new file mode 100644 index 0000000..2aedb2d --- /dev/null +++ b/R3.01/tp/tp4/ex1/views/main.php @@ -0,0 +1,44 @@ + + + + + + + + + +
+
+
+ Changez votre os + + + +
+ + +
+
+
Votre os
+ ";?> + +
+ +
+ + + diff --git a/R3.01/tp/tp4/ex2/css/style.css b/R3.01/tp/tp4/ex2/css/style.css new file mode 100644 index 0000000..3a5f75c --- /dev/null +++ b/R3.01/tp/tp4/ex2/css/style.css @@ -0,0 +1,32 @@ +table.morpion{ + border-collapse: collapse; + table-layout:fixed; + margin-left:auto; + margin-right:auto; + display:inline-block; + width:auto; +} +table.morpion td { + border : 1px solid #aaaaaa; + width:10rem; + height:10rem; + padding : 0px; + margin:0px; + overflow: hidden; + white-space: nowrap; + text-align:center; + vertical-align:middle; +} +table.morpion i { +font-size:8rem; +} + +table.morpion a { +display : inline-block; +width : 8rem; +height: 8rem; + +} +.center{ + text-align:center; +} diff --git a/R3.01/tp/tp4/ex2/helpers.php b/R3.01/tp/tp4/ex2/helpers.php new file mode 100644 index 0000000..211e12c --- /dev/null +++ b/R3.01/tp/tp4/ex2/helpers.php @@ -0,0 +1,54 @@ +'; + for ($i = 0; $i < 3; $i ++){ + echo ""; + for ($j = 0; $j < 3; $j ++){ + + echo ""; + + $pos = 3*$i + $j; + if ($grid[$pos] == 0) + echo ""; + if ($grid[$pos] == 1) + echo ''; + if ($grid[$pos] == 2) + echo ''; + + echo ""; + } + echo ""; + } + echo ""; +} diff --git a/R3.01/tp/tp4/ex2/index.php b/R3.01/tp/tp4/ex2/index.php new file mode 100644 index 0000000..2c1717b --- /dev/null +++ b/R3.01/tp/tp4/ex2/index.php @@ -0,0 +1,11 @@ + + + + + + + + + +
+

Tic Tac Toe :

+ $message new game"; + ?> +
+ + + diff --git a/R3.01/tp/tp4/img/cookie.png b/R3.01/tp/tp4/img/cookie.png new file mode 100644 index 0000000..f54392b Binary files /dev/null and b/R3.01/tp/tp4/img/cookie.png differ diff --git a/R3.01/tp/tp4/img/ttt.png b/R3.01/tp/tp4/img/ttt.png new file mode 100644 index 0000000..daf90ff Binary files /dev/null and b/R3.01/tp/tp4/img/ttt.png differ diff --git a/R3.01/tp/tp4/src.tar.gz b/R3.01/tp/tp4/src.tar.gz new file mode 100644 index 0000000..6a60b1b Binary files /dev/null and b/R3.01/tp/tp4/src.tar.gz differ