FAQ (X)HTML
FAQ (X)HTMLConsultez toutes les FAQ
Nombre d'auteurs : 23, nombre de questions : 53, dernière mise à jour : 14 juin 2021
Pour récupérer les données d'un formulaire, vous pouvez utiliser un langage côté serveur comme PHP, ASP,etc.
<form action
=
"traitement.php"
method
=
"post"
>
<fieldset>
<legend>Mes champs</legend>
<input type
=
"text"
name
=
"nom"
value
=
"Entrez votre nom ici..."
/>
<input type
=
"text"
name
=
"prenom"
value
=
"Entrez votre prenom ici..."
/>
</fieldset>
</form>
L'important est de spécifier l'url du script qui va traiter les données du formulaire et la méthode employée (GET ou POST).
Dans le script traitement.php, on récupère les champs du formulaire grâce au nom spécifié dans l'attribut name.
$nom
=
$_POST
[
'
nom
'
];
// Envoi avec la méthode POST
$nom
=
$_GET
[
'
nom
'
];
// Envoi avec la méthode GET
nom = Request.Form("nom") 'Quelle que soit la méthode
Quel que soit le langage utilisé côté serveur, il y a un aspect sécurité à ne pas négliger. Introduire une variable locale dans le code d'une application suppose que l'on peut l'utiliser relativement librement. Par exemple, faire un echo d'une variable $_GET ou $_POST offre une parfaite cible pour une faille XSS.
Il faut filtrer le contenu lors de la construction de la variable locale : s'assurer qu'elle ne contient
que ce que l'on espère. Ce n'est pas souvent évident à faire mais c'est fondamental.
Il faut également protéger le contenu lors de son affichage : htmlspecialchars() ou htmlentities() en PHP.
Afin d'obtenir plus de renseignements sur cet aspect de sécurité, se reporter aux F.A.Q's concernant le langage que vous utilisez.
Lien : Les F.A.Q's de developpez.com
Lien : Les questions sur la sécurité dans la F.A.Q PHP
Oui, c'est possible.
Il suffit de définir la méthode POST et d'ajouter à l'url de
l'attribut action les paramètres que vous souhaiter envoyer en GET
<form action
=
"script.php?get1=val1&get2=val2"
method
=
"post"
>
<fieldset>
<legend>Ces données seront envoyées avec la méthode POST</legend>
<label for
=
"post1"
>
Post1</label><input
type
=
"text"
id
=
"post1"
name
=
"post1"
/>
<label for
=
"post2"
>
Post1</label><input
type
=
"text"
id
=
"post2"
name
=
"post2"
/>
</fieldset>
</form>
Ainsi, get1 et get2 seront envoyées GET alors que post1 et post2 seront envoyés en POST.
Il faut définir l'attribut enctype de l'élément form.
enctype="application/x-www-form-urlencoded | multipart/form-data | text/plain | Type de média selon RFC 2045"
L'attribut enctype indique comment les données doivent être encodées avant d'être envoyées au serveur. La valeur par défaut est application/x-wwwform-urlencoded. Ce type d'encodage remplace les espaces par un signe + et les autres caractères non imprimables par le signe %, suivi de leur représentation ASCII hexadécimale.
L'option multipart/form-data n'effectue aucune conversion et transfère les données sous la forme d'un document MIME. Elle doit être employée lorsque <input type="file"/> est utilisé.
Il est également possible d'utiliser un autre type d'encodage comme text/plain pour éviter toute forme d'encodage hexadécimal, ce qui peut être utile avec les formulaires transmis par courrier électronique.