|
|
@@ -0,0 +1,76 @@
|
|
|
+TP1 : 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 nom une variable via la méthode `GET`.
|
|
|
+ - Ajoutez un **test** pour vérifier que la variable existe et n'est pas vide. Affichez un message si la condition n'est pas remplit.
|
|
|
+ - **Sécurisez** la variable
|
|
|
+
|
|
|
+3. Écrivez un fichier `bonjourPost.php` qui contient la structure de base d'un fichier HTML5 valide.
|
|
|
+ - Dans le `<body>` de `bonjour.php`, affichez le contenu des variables `firstname` et `lastname` du tableau `$_POST`
|
|
|
+ - 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 methode POST du protocole HHTP (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. Pensez à ajouter un test pour vérifier que votre variable est un entier et transtypez-la (cast).
|
|
|
+
|
|
|
+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 Postamn et un navigateur.
|
|
|
+
|
|
|
+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 Postamn.
|
|
|
+
|
|
|
+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 précédente. 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`.
|