Tutoriaux > PHP / MySQL > Récupérer des variables par formulaire
Utilisation des méthodes GET et POST dans un formulaire en PHP
Je vais vous expliquer comment récupérer les données d'un formulaire que l'utilisateur a précédemment rempli. Il y a deux possibilités:
- Soit passer les valeurs directement dans la barre d'adresse (GET):
Avantages : Bof... Il n'y a pas vraiment d'avantages !
Inconvénient : Limite de 1024 caractères ; Lisible pour tout le monde ; Très peu sécurisé
- Soit passer les valeurs sans que l'utilisateur ne les voient (POST):
Avantages : presque aucune limite de taille (2^64 je crois) ; Moyennement bien sécurisé
Donc en gros, il vaut mieux toujours utiliser la méthode POST, mais je vais quand même vous expliquer les deux !
Alors commencons par la méthode GET :
Créez votre formulaire en HTML normal sur la première page:
<html>
<body>
<form name="NomDuFormulaire" method="get" action="page2.php"> (1)
<input type="text" name="Nom" size="20" />
<input type="text" name="Prenom" size="20" />
<input type="submit" name="envoi" value="Envoyer" />
</form>
</body>
</html>
(1) : Lors de la déclaration du formulaire, vous voyez la déclaration de la méthode, ici get, et action=page2.php, qui vous envoie à page2.php lorsque vous cliquez sur le bouton.
Pour cette page, le formulaire contient deux champs texte, Nom et Prenom.
Lorsque vous cliquerez sur le bouton, vous verrez dans la barre d'adresse :
Code
http://www.monsite.com?nom=Chirac&prenom=Jacques&envoi=envoyer
Nous allons créer maintenant page2.php, qui doit récupérer les valeurs de nom et de prénom.
Donc créez votre page comme suit:
<html>
<body>
<?
$_nom = $_GET['Nom']; (1)
$_prenom = $_GET['Prenom']; (2)
echo $_nom."<BR>"; (3)
echo $_prenom; (4)
?>
</body>
</html>
(1) : Nous insérons la valeur de la variable $_GET['Nom'] dans la variable $_nom
(2) : Nous insérons la valeur de la variable $_GET['Prenom'] dans la variable $_prenom
(3)(4) : On affiche les variables (n concaténant un <BR>, qui fera sauter une ligne entre le nom et le prénom.
Donc en gros, lorsque vous passer des valeurs en GET, pour les récupérer, il faut utiliser la variable :
Citation
$_GET['LeNomDuChamp']
Pour la méthode POST, c'est exactement la même chose, sauf que dans la déclaration du formulaire, remplacer GET par POST, et la variable de récupération est :
Citation
$_POST['LeNomDuChamp']
Mais dans la barre d'adresse, vous verrez seulement :
Code
http://www.monsite.com/
Voila voila je crois que vous savez tout au niveau du passage de variables par formulaires !
La lecon suivante, je vous apprendrai comment garder les valeurs en mémoire sur plusieurs pages, car il faut savoir que les variables $_GET et $_POST ne restent pas en mémoire. Les variables ne seront utilisables que sur page2.php !
:D
Par 1
, Le 25 Avril 2006 à 17h09
Ce tutoriel est la propriété d'Aidoweb et ne peut en aucun cas être copié.
Bonjour,
Est-il possible de pré-remplir les champs d'un formulaire avec cette méthode, et sans utiliser du tout de php par ailleurs ?
Mon idée est d'envoyer par mail une url de cette forme
www.mondomaine.com/formulaire.html?nom=Maradona&prenom=Diego
et que la personne arrive sur une page avec un formulaire prérempli avec son prénom et son nom.
Suffit-il d'ajouter à l'imput du champ texte value=""
ou bien faut-il ajouter autre chose en php plus haut dans la page ?
Mes tests n'ont pas donné grand chose...
Merci !
Un petit
if(isset($_GET('monChamp')))
$maVariable = $_GET('monChamp');
Ça serait pas du luxe
Toutefois merci pour ton exemple clair et concis, c'est toujours bon d'avoir la syntaxe sous la main.
Juste une précision sur GET, j'ai un avantage pour son utilisation (c'est d'ailleur le seul cas ou je l'utilise.). Il permet à l'utilisateur d'utiliser le bouton précédent de son navigateur sans renvoyer les données. Utile essentiellement pour la navigation (tri, page, etc...)
Il ne faut pas oublier d'expliquer que la methode POST est avant tout à utiliser pour les requetes qui sont succeptibles de modifier l'état du serveur.
Bruno CATTEAU
Il faut préciser aussi que pour que cela marche, il faut que la valeur du name (name="Nom" par exemple) doit etre la meme dans un POST ou un GET ($_GET['Nom'] et $_POST['Nom'])
Et il manque aussi le <head></head> dans le code html ^^
J'ai modifié tout ca
pas mal le tuto,mais il manque les guillements dans le HTML et les apostrophes dans tes variables $_GET[''] et $_POST[''] :/
Tutoriaux > PHP / MySQL > Récupérer des variables par formulaire