Gestion des formulaires en PHP

Gestion des formulaires en PHP

1 GET et POST
Le but est de récupérer le contenu des champs d’un formulaire HTML dans notre code PHP pour pouvoir le traiter. Lorsqu’un formulaire est envoyé à un script PHP, toutes les variables seront disponibles automatiquement dans le script.
Les formulaires peuvent être de type GET ou POST. Pour rappel, dans un formulaire de type GET, les informations sont passées directement par l’URL en clair, ce qui peut poser des problèmes de limitations suivant le serveur (de 256 à 8192 octets selon le cas). La méthode POST n’a pas ce genre de limitation, car les informations sont transmises par le conteneur de variables globales (dans l’entête) et sont de plus cachées. PHP peut gérer les deux méthodes de manière transparente.

2 Récupération par tableau
Chaque champ de formulaire en PHP est défini par un nom et une valeur. Dans un script, PHP va récupérer ces noms et ces valeurs dans des tableaux spéciaux dit superglobaux (accessibles depuis partout). Pour la méthode GET, le tableau est $_GET, pour la méthode POST le tableau est $_POST. Si vous ne souhaitez pas vous soucier de la méthode, vous pouvez utiliser le tableau $_REQUEST. En index on aura le nom du champ de formulaire (ou de la variable passée en URL)
et en valeur la valeur du champ. Par exemple :

<form action= »foo.php » method= »post »>
Name: <input type= »text » name= »username »><br>
Email: <input type= »text » name= »email »><br>
<input type= »submit » name= »submit » value= »Submit me! »>
</form>

Dans la page PHP foo.php on aura :
<?php
echo $_POST[‘username’];
echo $_REQUEST[’email’];
?>
Imaginons l’appel d’une page test.php par une URL comme ceci :
http://www.monsite.com/test.php?id=1
Ici on transmet une variable via une URL et donc la méthode implicite GET. Pour récupérer « id »
dans un code PHP on peut donc faire :
<?php
echo $_GET[‘id’];
echo $_REQUEST[‘id’];
?>

$_GET ne contiendra que les variables de type GET. $_POST ne contiendra que les variables de type POST. $_REQUEST contient les variables de type POST et GET mais aussi les variables de cookies. Il est aussi possible de procéder autrement en récupérant le nom du champ directement en tant que variable sans passer par un tableau. Pour cela il faut vérifier dans le fichier php.ini que la valeur register_globals est à on. Dans ce cas les noms des champs de formulaire seront les noms des variables :

<?php
echo $username;
echo $email;
?>

3 Récupération directe
Si cette valeur est à off et que pour diverses raisons (sécurité, pas le droit, etc) vous ne souhaitez/pouvez pas la modifier, il existe tout de même une méthode. La fonction « import_request_variables » permet d’effectuer explicitement la même chose. Cette fonction prend un ou deux paramètres, le second étant optionnel. Après exécution, on récupère les variables sans passer par un tableau. Le premier paramètre est le type de variables qu’on souhaite récupérer :
– P / p : variables de type POST
– G / g : variables de type GET
– C / c : variables de type cookie
On peut cumuler l’ensemble mais attention à l’ordre ! Le second paramètre est le préfixe qu’on souhaite donner au nom des variables qu’on va récupérer.

Voici deux exemples :

<?php
import_request_variables(« p »);
echo $username;
?>
<?php
import_request_variables(« P », »Post_ »);
echo $Post_username;
?>

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *