GitLab now enforces expiry dates on tokens that originally had no set expiration date. Those tokens were given an expiration date of one year later. Please review your personal access tokens, project access tokens, and group access tokens to ensure you are aware of upcoming expirations. Administrators of GitLab can find more information on how to identify and mitigate interruption in our documentation.
There was an error fetching the commit references. Please try again later.
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`.