Skip to content
Snippets Groups Projects
Commit 6ea73316 authored by Adrien KRÄHENBÜHL's avatar Adrien KRÄHENBÜHL
Browse files

Ajout du TP n°1 et des liens vers Moodle dans le README

parent 4a26323f
No related merge requests found
......@@ -15,6 +15,12 @@ Ensuite, pour **utiliser** de votre dépôt, regardez la page [HOWTO.md](HOWTO.m
- [CM n°2 : POO et PDO](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/CM2)
- [CM n°3 : Laravel](http://adrien.krahenbuhl.fr/courses/IUTRS/W31/CM3)
#### Moodle
- [Le cours sur BBB](https://moodle3.unistra.fr/mod/bigbluebuttonbn/view.php?id=365399)
- [Les quizz](https://moodle3.unistra.fr/course/view.php?id=6423)
1 - Créer un **clône distant** sur Gitlab
-----------------------------------------
......
TP1.md 0 → 100644
TP n°1 : requêtes GET/POST, cookies et sessions
===============================================
Tous vos fichiers PHP devront être déposés dans le répertoire `public_html` à la racine de de votre répertoire personnel. Il sera ainsi accessible à l'adresse `https://webetu.iutrs.unistra.fr/~[LOGIN_UNISTRA]/chemin_vers_le_fichier`.
Exemple :
- Mon pseudo unistra est `jdupont`
- Je dépose le fichier `test.php` dans le répertoire `jdupont/public_html/TP1/`
- Je peux visualiser mon fichier interprété par le serveur PHP à l'adresse `https://webetu.iutrs.unistra.fr/~jdupont/TP1/test.php`
Exercice 1 - Bonjour
--------------------
1. Écrivez un fichier PHP `bonjour.php` qui contient uniquement du code HTML5 **valide**. Visualisez-le avec Postman puis avec votre navigateur.
2. Écrivez un fichier `bonjourGet.php` qui contient la structure de base d'un fichier HTML5 valide.
- Dans le `<body>`, ajoutez du code PHP qui affiche le contenu de la variable `module` du tableau `$_GET`.
- Testez avec Postman et votre navigateur, en transmettant ou non une variable via la méthode `GET`.
- Ajoutez un **test** pour vérifier que la variable existe et n'est pas vide et affichez un message si la condition n'est pas remplie.
- **Sécurisez** la variable
3. Écrivez un fichier `bonjourPost.php` qui contient la structure de base d'un fichier HTML5 valide.
- Affichez le contenu des variables `firstname` et `lastname` du tableau `$_POST` dans le `<body>`
- Testez avec Postman en transmettant 0, 1 ou les 2 variables via la méthode `POST`
- Ajoutez le test d'existence des deux variables et **sécurisez-les**.
4. Écrivez un fichier **HTML** `formulaire.html` qui contient un formulaire demandant à l'utilisateur son nom et son prénom avec des balises `<input>` de type texte. Ce formulaire doit avoir pour **action** le fichier `bonjourPost.php`. Testez avec votre navigateur l'affichage du formulaire et ce qu'il se produit lorsque vous le soumettez.
5. Dans `bonjourPost.php`, ajoutez **en tout début de fichier** un test pour vous assurer que la page est demandée via la méthode POST du protocole HTTP (regardez la doc du tableau [`$_SERVER`](https://www.php.net/manual/fr/reserved.variables.server.php)). Si ce n'est pas le cas, effectuez une demande de redirection vers la page `formulaire.html` (regardez la doc de la directive [`header`](http://php.net/manual/fr/function.header.php)).
Exercice 2 - Générer une liste
------------------------------
1. Écrivez un fichier PHP `liste.php` qui produit un document HTML contenant
**une liste de 10 items** générés en PHP avec une boucle `for`. Testez avec Postman et votre navigateur.
2. Écrivez un fichier PHP `listeGet.php` similaire à `liste.php`, où le
nombre d'items à générer est disponible dans **la variable `nbItems` du tableau `$_GET`**. Testez avec Postman et un navigateur. Pensez à ajouter un test pour vérifier que votre variable est un entier et transtypez-la (cast).
3. Écrire un fichier PHP `listePost.php` similaire à `liste.php`, où le
nombre d'items à générer est disponible dans **la variable `nbItems` du tableau `$_POST`**. Testez avec Postman.
4. Tester le 3. avec votre navigateur. Pour cela, créez un fichier PHP contenant un **formulaire** avec `listesPost.php` pour action.
Exercice 3 - Compteur de visites en session
-------------------------------------------
1. Écrire un fichier PHP `counter.php` qui :
- crée ou rétablit une session PHP pour le client
- initialise ou incrémente la variable `$counter` qui sert de compteur
- affiche le nombre de fois que le fichier a été demandé.
Testez avec Postman et le navigateur en appellant plusieurs fois la page `counter.php`. Le chiffre indiqué doit augmenter de 1.
2. Écrire un fichier PHP `resetCounter.php` qui :
1. réinitialise le compteur présent dans la session
2. effectue une demande de redirection vers le fichier `counter.php` (regardez la doc de la directive [`header`](http://php.net/manual/fr/function.header.php)).
> **Note** : ce script doit contenir exactement 3 instructions.
3. Ajoutez un lien HTML vers le script `resetCounter.php` dans le `<body>` renvoyé par `counter.php`. Testez dans votre navigateur.
4. Dans Postman ou votre navigateur, supprimez le cookie de session `PHPSSID` puis rechargez la page. Que se passe-t-il ?
5. Réalisez un schéma comportant un navigateur, un serveur web et un module PHP. Présentez à l'aide de flèches et de numéros la série de requêtes/réponses qui sont échangées lorsque vous cliquez sur le lien ajouté à la question 3. Pour chaque numéro :
- expliquer brièvement l'objet de la requête/réponse : qui envoie/réceptionne ?
- indiquez le contenu de la requête/réponse : entête, corps, variables, etc.
Exercice 4 - Compteur de visites dans un cookie
-----------------------------------------------
Faites les questions 1 à 3 de l'exercice 3 sans utiliser les sessions mais uniquement un cookie qui contient la variable `counter`.
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment