TP1.md 4.9 KB

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 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 methode POST du protocole HHTP (regardez la doc du tableau $_SERVER). Si ce n'est pas le cas, effectuez une demande de redirection vers la page formulaire.html (regardez la doc de la directive header).

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).

    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.