Mammouth du PHP |
19672 Messages
20 juil. 2005, 07:51
Quelques explications simples.
Jusqu'à la version 4.2 de PHP, la configuration par défaut définissait l'option "
register_globals" à ON. Grâce à cette option, on pouvait récupérer la valeur d'un champ de formulaire en mettant directement le nom du champ préfixé avec un "$" pour définir la variable. Ainsi, un champ "nom" (
<input type="text" name="nom"> pouvait être récupéré dans la partie traitement en appelant
$nom.
Depuis, pour des raisons de sécurité, cette option
register_globals est à OFF. Pour récupérer une valeur, il faut créer la variable et l'initialiser en récupérant explicitement les valeur dans une variable dire "super globale". Il y a plusieurs super-globales, les plus utilisées avec les formulaires étant $_POST, $_GET et $_REQUEST. Il est préférable d'utiliser les deux premières. On choisira en fonction de la valeur de l'attribut "method" de la balise <form>.
Si la méthode choisie est "post", alors on retrouvera les valeurs dans $_POST, si c'Est "get" dans $_GET. Ce sont des tableaux associatifs dont les index sont les noms des champs du formulaire. Donc on retrouvera la valeur de notre champ "nom" dans $_POST['nom'] ou $_GET['nom'] selon la méthode.
Pour vérifier "en vrac" ce que le formulaire envoie, on peut très simplement faire afficher le contenu de la variable superglobale utilisée:
<pre>
<?php
var_dump($_POST);
?>
</pre>
On aura alors à l'écran toutes les variables effectivement envoyées par le formulaire.
Bon code.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 