IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Généralités > Utilisations des balises et de leurs attributs > Formulaires > Envoi des données
        Comment envoyer les données d'un formulaire d'une page à une autre ?
        Est-il possible d'envoyer des données en GET et en POST avec un seul formulaire ?
        Quels sont les différents paramètres et explications que peut prendre enctype ?



Comment envoyer les données d'un formulaire d'une page à une autre ?
auteurs : Linaa, Yogui
Pour récupérer les données d'un formulaire, vous pouvez utiliser un langage côté serveur comme PHP, ASP,etc.
Page (X)HTML contenant le formulaire

<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.
En PHP

$nom = $_POST['nom']; // Envoi avec la méthode POST
$nom = $_GET['nom']; // Envoi avec la méthode GET
En ASP

nom = Request.Form("nom") 'Quelle que soit la méthode
warning 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 : fr Les F.A.Q's de developpez.com
lien : faq Les questions sur la sécurité dans la F.A.Q PHP

Est-il possible d'envoyer des données en GET et en POST avec un seul formulaire ?
auteur : MasterOfChakhaL
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&amp;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.


Quels sont les différents paramètres et explications que peut prendre enctype ?
auteur : Jérôme
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.



Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2004 Developpez.com Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.