TUTOS.EU

Récupérer les valeurs d'un formulaire envoyé par POST

Comment récupérer les données et valeurs d'un formulaire envoyé avec la méthode POST

Le principe

Lorsque l'on envoie des données avec un formulaire en PHP, il est bien évidemment possible de récupérer l'intégralité de ces données. Pour cela on interroge la variable $_POST qui retourne un tableau. On peut alors utiliser le code ci-dessous pour récupérer ET le nom des paramètres ET leur valeur.

Le code

<!DOCTYPE html>
<HTML lang="fr">
	<HEAD>
		<meta charset="utf-8" />

		<SCRIPT TYPE="text/javascript">
			function fctPostForm(MyObj){
				//alert(MyObj.name);
				//alert(MyObj.form.name);
				MyObj.form.submit();
				//document.forms["MonFormulaire"].submit();
			}
		</SCRIPT>

	</HEAD>

	<BODY>

		<div id="bloc_page">
		<?php

			//Récupération des variables postées
			$VariablesPostees = $_POST;
			$NbrVariablesPostees = count($VariablesPostees);
			echo "Nombre variables postées : ".$NbrVariablesPostees."<br />\n";
			echo "<br />\n";
			
			//Si des variables ont été postées, on les récupère
			if ($NbrVariablesPostees > 0){
				foreach ( $_POST as $PostNomVariable => $PostValeurVariable )
				{
				
					echo "key : ".$PostNomVariable ."<br />\n"; //Nom d'une variable récupérée
					echo "value : ".$PostValeurVariable ."<br />\n"; //Sa valeur
					//$PostValeurVariable = trim($PostValeurVariable); Retrait des espaces avant et après

					$search  = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'à', 'á', 'â', 'ã', 'ä', 'å', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ');
					$replace = array('A', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y');
					//$PostValeurVariable = str_replace($search, $replace, $PostValeurVariable); //Retrait des accents. Préférer str_replace à strtr en UTF-8
					$PostValeurVariable = preg_replace('/([^.a-z0-9]+)/i', '_', $PostValeurVariable); //Tout ce qui n'est pas a-z0-9 etc..., le remplacer par _ 

					
				}
			}
			else{ //Si il n'y a pas eu de valeurs postées au formulaire
				//Affichage d'un formulaire et de quelques valeurs
				echo "<FORM METHOD=\"POST\" name=\"MonFormulaire\" ACTION=\"NomFormulaire.php\">\n"; //Remplacez "NomFormulaire.php" par le nom du fichier php dans lequel vous allez placer votre code
				echo "Une checkbox <INPUT TYPE=CHECKBOX CHECKED ID=\"UneCheckBox\" NAME=\"UneCheckBox\"  value=\"MaCheckBoxValue\" ><br />\n";
				echo "Une zone de saisie : <input type=\"text\" name=\"Inputbox01\" id=\"Inputbox01\"  value=\"Inputbox Value\" ><br />\n";
				echo "<input type=\"button\" name=\"ButtEnvFormulaire\" value=\"Envoyer le formulaire\" ONCLICK=\"fctPostForm(this)\" />\n";
				echo "</FORM>\n";

			}
			
		?>

		</div> <!-- div bloc_page -->
	</BODY>

</HTML>
Lien vers le fichier : cliquez ici Copier le code

Si vous voulez récupérer une valeur bien précise, vous pouvez procéder ainsi :

$txtUneValeur = $_POST['uneValeur'];
echo "$txtUneValeur <br />\n";
Lien vers le fichier : cliquez ici Copier le code

2