Forum
Posez vos questions, ici

4.Formulaire

4.2.Balise form

4.2.2.L'attribut action

Honte à nous, le code que nous vous avons montré jusque là, n'est pas valide d'un point de vue HTML (en dehors du fait qu'il manque la DOCTYPE, le bloc head et la balise body). En effet, la balise form possède un attribut obligatoire action. Cet attribut doit désigner l'adresse à appeler lors que l'on soumet les données du formulaire. Lorsque cette information n'est pas renseignée, c'est la page courante qui est appelée (d'où l'effet de rafraichissement de la page que vous avez pu observer).
Le champ action doit donc pointer vers une page web capable de gérer les informations envoyées par le formulaire (i.e. la partie se situant après le point d'interrogation). Le langage HTML seul ne permet pas de faire ce type de traitement. La page ainsi pointée devra nécessairement intégrer une technologie complémentaire. En règle générale, on utilise un langage dédié à la création de site dynamique tel que JEE ou PHP [c'est quoi?] . Vous trouverez d'ailleurs sur PHPFacile.com un tutoriel sur la gestion des formulaires en PHP.
Pour vous donner un aperçu tout de même nous avons écrit un petit script en Javascript [c'est quoi?] chargé d'afficher les données saisies dans le formulaire. Notre script étant dans la page js_get.html, le formulaire devient:
<form action="js_get.html">
    <input type="text" name="champ1" />
    <input type="submit" />
</form>
Vous pouvez donc le tester, ici Formulaire interprété par Javascript. Vu qu'il n'est pas possible d'aller bien loin dans le traitement d'un formulaire en Javascript (si aucune autre technologie n'est utilisée), nous n'entrerons pas dans les détails (mais vous pouvez consulter le code par un simple "afficher source" dans votre navigateur si l'envie vous en dit (mais gardez bien à l'esprit qu'il est incomplet/erroné tant en ce qui concerne la récupération des valeurs - notamment avec les espaces - qu'en terme d'affichage - notamment avec les signes inférieur/supérieur).

4.2.3.L'attribut method

Le passage de paramètres via l'URL, après un point d'interrogation, s'appelle l'utilisation de la méthode GET. Cette méthode peut d'ailleurs être utilisée librement, sans faire intervenir de formulaire, dans une simple balise a (lorsqu'il n'y a pas d'interaction avec l'utilisateur. Exemple: <a href="fichier?param1=valeur1&param2=valeur2>blabla</a>).
Par défaut, c'est la méthode GET qui est utilisée avec les formulaires mais il est également possible de positionner l'attribut method à la valeur post pour utiliser un autre type de passage de paramètre.
<form action="php_post.php" method="post">
    <input type="text" name="champ1" />
    <input type="submit" />
</form>
Nous vous invitons à tester cette variante, ici Formulaire POST interprété par PHP. Cette fois, et c'est la grande différence avec la méthode GET, l'URL appelée ne contient pas les informations saisies dans le formulaire. Ces informations circulent de "façon cachée" (dans l'entête HTTP). Mais elles sont bien là, comme le prouve le script PHP qui affiche les valeurs saisies.
Même si le fait que les informations soient cachées constitue un petit avantage qui peut aider à la sécurité (notamment pour le passage de mots de passe ou autre données sensibles qui pourraient apparaître dans les logs des serveurs notamment via la donnée "referrer") ceci ne doit pas être vu comme une solution aux problèmes de sécurité. En fait, l'immense avantage de la méthode POST, c'est qu'elle permet de transmettre une quantité de données beaucoup plus importe que via l'URL (dont la longueur ne peut excéder une longueur qui dépend du seveur ou du réseau mais que l'on peut raisonnablement dire qu'elle ne doit pas excéder 256 caractères).