Algo. et développement web S2 (M2202) — TD #4

Dans cette séance de TD on va créer des scripts PHP en peu plus évolués.

D'abord on va améliorer deux exercices du TP #1.

Ensuite on va faire des exercices basés sur les contenu du CM #2.

Vous allez apprendre deux fonctions très utiles : header() et strlen().

Avant de commencer, créez dans votre répertoire m2202 un sous-répertoire m2202-td4 pour sauvegarder les exercices de cette séance (TD #4).

Dans ce répertoire m2202-td4, créez un répertoire appelé exo1 pour le premier exercice, exo2 pour le deuxième, etc.

Anciens exercices

On va reprendre quelques exercices déjà faits, et on va les refaire en utilisant les fonctions et la validation de formulaires.

Exercice 1

Répétez l'exercice 4 du TP #1 avec les améliorations suivantes :

  • Utilisez la balise <label> dans le formulaire.
  • Utilisez une balise <input type="number"> pour entrer n.
  • Calculez la somme avec une fonction appelée calcul_somme().
  • Vérifiez que n > 1. Sinon, affichez un message d'erreur et un lien vers la page avec le formulaire.

Utilisez le modèle suivant pour la page du formulaire :

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>M2202</title>
</head>
<body>
  <h1>TD #4 / Exo 1</h1>

  <form>
    <!-- formulaire -->
  </form>
</body>
</html>

Exercice 2

Faites l'exercice 6 du TP #1 avec les améliorations suivantes :

  • Utilisez la balise <label> dans le formulaire.
  • Utilisez une balise <input type="number"> pour entrer n.
  • Créez une fonction appétée afficher_lien() pour générer et afficher le lien dans chaque case du tableau. Cette fonction prend deux paramètres.
  • Vérifiez que n > 0. Sinon, affichez un message d'erreur et un lien vers la page avec le formulaire.

Nouveaux exercices

Exercice 3

Dans cet exercice on va faire un site web protégé avec un mot de passe.

Créez un document HTML appelé index.html avec un formulaire pour entrer le mot de passe.

Dans un document PHP appelé traitement.php, déclarez un tableau avec quelques paires identifiant-mot de passe. Si le mot de passe est dans la liste, affichez un message de bienvenue avec l'identifiant. Sinon, envoyez l'utilisateur vers le site web de votre choix.

Pour envoyer l'utilisateur vers une autre page directement (sans cliquer sur un lien), utilisez la fonction header() [doc]. Par exemple :

<?php
header('Location: https://www.univ-amu.fr/');

Exercice 4

Dans cet exercice on va créer un formulaire avec la méthode post et le valider avec PHP.

Créez un formulaire avec les widgets suivants : un champ de texte (input type="text"), un champ pour mot de passe (input type="password"), un champ de texte multiligne (textarea), et 4 cases à cocher (input type="checkbox").

Ajoutez des libellés à chaque champ avec la balise <label>.

Dans un fichier PHP appelé validation.php, validez les données du formulaire :

  • Le texte ne peut pas être vide
  • Le mot de passe doit contenir au moins 6 caractères. Pour récupérer la taille d'une chaîne de caractères, strlen() [doc]
  • Le message doit avoir au plus 64 caractères
  • Au moins une des cases doit être cochée

Si c'est bon, affichez toutes les données entrées. Sinon, affichez un message d'erreur et un lien vers la page avec le formulaire.

Exercice 5

Dans cet exercice, on va valider un numéro de téléphone français entré dans un formulaire.

Créez un document HTML appelé index.html avec un formulaire pour entrer un numéro de téléphone.

Dans un document PHP appelé validation.php, déclarez une fonction appelée purger_tel_number() qui prend une chaîne de caractères et qui renvoie une copie avec uniquement les chiffres.

Déclarez une autre fonction appelée is_tel_number() qui renvoie true si la chaîne de caractères contient 10 chiffres et que la première est un zéro.

Utilisez ces deux fonctions pour valider la saisie du formulaire. Affichez un message dans chaque cas.

Exercices supplémentaires

Exercice 6

Dans cet exercice vous allez créer des fonctions pour manipuler les tableaux.

Déclarez un tableau numéroté avec 5 éléments.

Faites une fonction appelée afficher_tab_num() qui l'affiche entre crochets, avec les valeurs séparées par une virgule.

Faites une autre fonction appelé ajouter_exclamation_tab_num() qui renvoie un tableau pareil, avec un point d'exclamation ajouté à la fin de chaque élément.

Déclarez un tableau associatif avec 5 éléments.

Faites une fonction appelée afficher_tab_ass() qui l'affiche entre accolades, avec les paires clé-valeur séparées par une virgule, et les clés séparées de la valeur avec deux point.

Faites une autre fonction appelé ajouter_exclamation_tab_ass() similaire à la fonction ajouter_exclamation_tab_num(), mais pour un tableau associatif.

Exercice 7

Dans cet exercice on va mettre en pratique l'envoie d'un fichier sur un site web.

En vous appuyant sur l'exemple vous en CM #2, faites un formulaire pour envoyer une image (en format png ou jpg uniquement) avec 500 Ko au maximum.

Prévoyez un message pour chaque cas d'erreur (envoi, format, taille). Si c'est bon, sauvegardez l'image dans un sous-répertoire appelé images/ du répertoire racine, et affichez un message de succès avec l'image.

Si vous avez des problèmes avec les droits, lisez ceci.