Afin de réaliser une application web, il est impératif de se rappeler le fonctionnement des formulaires HTML utilisés pour la transmission des données. En effet, les formulaires permettent de créer une interactivité dans la mesure où ils constituent le principal moyen pour un utilisateur de transmettre des informations à l'application web distante. Rappelons qu'un formulaire n'est qu'un morceau de HTML formé de quelques éléments spécifiques qu'il faut connaître. Du côté navigateur, un formulaire fonctionne comme suit:
La création d'un formulaire se fait à l'aide de l'élément <form>. Même si celui-ci accepte d'intégrer n'importe quel élément de bloc, il existe une série d'éléments dédiés. Chacun d'eux fournit une manière spécifique de saisir une information: champs, cases à cocher, menus déroulants, etc. Nous les avons déjà étudiés dans la section HTML-CSS et vous inviterons tout prochainement à les réutiliser dans un exercice de rappel. Revenons plutôt sur le code HTML du formulaire ci-dessus et observons comment s'affichent les éléments et leur contenu dans <form>:
L'élément <form> contient tous les éléments de construction du formulaire que nous avons précédemment étudiés et indique au navigateur où envoyer les données et quelle méthode employer pour le faire:
Quand vous connaissez l'URL de l'application web qui traite votre formulaire, il suffit de l'indiquer en valeur de l'attribut action de l'élément <form> comme l'indique l'illustration ci-dessus.
Rappelons que les éléments <input> d'un formulaire prennent un attribut name donnant une identification unique à chacun des champs créés:
Cet identifiant correspondra au nom de la variable transmise à l'application web qui en traitera la valeur. La valeur de cette variable correspondra aux données transmises par l'utilisateur dans le champs du formulaire associé. Plus précisément:
La création d'application web telle que l'application «concours.php» ci-dessus demande la maîtrise du langage PHP. Dans ce cours, nous pourrons obtenir un résultat analogue avec le langage Python grâce à l'utilisation du module CherryPy.
Pour envoyer des données au serveur, les navigateurs utilisent deux méthodes: POST et GET. La première méthode, POST, empaquette les variables du formulaire et les envoie discrètement au serveur, alors que la deuxième, GET, les ajoute à la fin de l'URL dans la barre d'adresse du navigateur au moment d'envoyer la requête au serveur.
Le meilleur moyen de comprendre ce que fait la méthode GET est de la voir en pleine action. En modifiant le code HTML du fichier formulaire.html contenant la structure du formulaire de commande comme le propose l'image de gauche ci-dessous, nous remarquons que toutes les données soumises au formulaire sont transmises directement dans l'URL transmises au serveur Web. Ces données sont les paramètres qu'utilisera l'application Web commander.php pour générer le code HTML de la page retournée en réponse au client par le serveur :
Nous pouvons remarquer dans l'URL ci-dessus que le chemin d'accès à l'application PHP est séparé des paramètres transmis à l'aide d'un point d'interogation (?) et que les paramètres s'enchaînent selon le format nom=valeur tout en étant séparés les uns des autres par une esperluette (&).
Si vous désirez que les internautes puissent ajouter dans leurs signets les pages qui sont les réponses aux requêtes, il est impératif de se servir de GET puisqu'il est impossible de le faire avec POST. Si, par contre, le rôle de l'application web est de traiter des commandes, il est souhaitable de ne pas pouvoir conserver la page dans les signets, sinon chaque visite générerait une nouvelle commande. Dans ce cas, l'utilisation du POST est requise. De même, il ne faut jamais utiliser GET lorsque les données du formulaire sont un tant soit peu confidentielles (numéro de carte de crédit, mot de passe,...): l'URL est en clair et si elle se trouve dans les signets, elle peut être vue par quelqu'un qui regarderait l'historique de navigation. Finalement, notons que les requêtes GET sont limitées à 256 caractères alors que POST n'a aucune limite de taille.
Complétez le code du fichier GestionTable.html de telle sorte qu'il permette d'afficher le formulaire ci-dessous. La mise en page du formulaire doit se faire à l'aide d'un tableau invisible ayant la structure indiquée:
Résultat à obtenir
Structure sous-jacente
Votre solution devra vérifier les éléments suivants:
gestion via les variables NomClient, AdresseClient, NoPostalClient, VilleClient et CantonClient;aider;|