Chapter 4. Passage de valeurs d'une page à l'autre

Table of Contents

Méthode POST
Méthode GET
Autres variables systèmes

La notion de site web dynamique repose sur l'interactivité, et donc la capacité du client à envoyer, avec son navigateur, des données au service web. Les méthodes principales pour envoyer les données sont:

Méthode POST

Les moyens de saisir des données en HTML sont habituellement consignés à l'intérieur d'un formulaire (form). Les balises HTML disponibles sont input, select ou textarea. La balise input a de nombreuses variantes (attribut type= text, password, file, hidden, radio, checkbox ...

Le principe de passage des valeurs est le suivant. Quand un formulaire comme ci-dessous est posté (method='post' comme attribut de form) à l'aide du bouton submit, le navigateur transmet les valeurs saisies dans le formulaire à l'URL spécifiée dans l'attribut action. Dans notre cas, l'URL de destination est un programme PHP ('maj.php' dans l'exemple)..

<form method="post" action="maj.php">

Champ texte : <input type="text" name="monchamp"><br>

            <input type=submit value="Insérer">
</form>

PHP met à disposition les valeurs saisies dans une variable $_POST. Cette variable est un tableau associatif qui contient en particulier toutes les valeurs saisies dans les champs du formulaire. Quand il y a un champ nommé monchamp dans le formulaire posté, on peut récupérer la valeur saisie en PHP par

  $une_variable_php =  $_POST['monchamp'];

Méthode GET

La méthode GET permet de récupérer des valeurs passées dans l'URL. La partie de l'URL contenant les paramètres passés est celle suivant le point d'interrogation (?). Ensuite, chaque paramètre et sa valeur sont séparés par un ET commercial (&). Dans l'URL suivante, on a deux paramètres a et b qui valent respectivement 23 et toto.

  http://domaine.org/maj.php?a=23&b=toto 

PHP met à disposition les valeurs des paramètres présents dans une URL à travers une $_GET. Dans l'exemple précédent, on peut récupérer la valeur du paramètre a par:

  $une_variable_php =  $_GET['a'];

[Tip]Tip

La tâche de transférer les valeurs dans $_POST et $_GET (et les autres, moins utilisées) étant fastidieuse, on peut demander à PHP une extraction automatique grâce à la fonction extract(). Elle exporte votre tableau associatif et crée une variable pour chaque clé du tableau.

Par exemple, si le tableau $_POST contient les variables login et email

extract($_POST,EXTR_OVERWRITE);

créera les deux variables PHP $login $email.

Autres variables systèmes