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 `
`, 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 `` 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 `` 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 `` 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`.