English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous apprendrez à envoyer des informations au serveur en utilisant les méthodes HTTP GET et POST, ainsi qu'à récupérer des informations en utilisant PHP.
Les navigateurs Web utilisent généralement l'une des deux méthodes HTTP (HyperText Transfer Protocol) (GET et POST) pour communiquer avec le serveur. Les deux méthodes transmettent les informations de différentes manières et ont des avantages et des inconvénients différents, comme décrit ci-dessous.
Dans la méthode GET, les données sont envoyées en tant que paramètres de l'URL, généralement sous forme de chaînes de caractères de paires nom=valeur séparées par le symbole &. Une URL contenant des données GET peut généralement être vue ainsi :
http://www.example.com/action.php?name=john&age=24
La partie en gras de l'URL est le paramètre GET, tandis que la partie en italique est la valeur de ces paramètres. On peut insérer plusieurs paramètres=valeurs en utilisant le symbole &. Seuls les données de texte simple peuvent être envoyées via la méthode GET.
Comme les données envoyées par la méthode GET s'affichent dans l'URL, il est possible d'ajouter des signets aux pages en utilisant des valeurs de chaîne de requête spécifiques.
La méthode GET n'est pas adaptée pour transmettre des informations sensibles, telles que les noms d'utilisateur et les mots de passe, car ces informations sont complètement visibles dans la chaîne de requête de l'URL et peuvent être stockées dans la mémoire du navigateur client.
La méthode GET attribue les données au variables d'environnement du serveur, donc la longueur de l'URL est limitée. Par conséquent, il y a une limitation sur la quantité totale de données à envoyer.
PHP fournit la variable globale superglobale $_GET pour accéder à toutes les informations envoyées via l'URL ou soumis via un formulaire HTML avec method="GET".
!DOCTYPE html <html> <head> <title>Exemple en ligne PHP Méthode GET</title> </head> <?php if(isset($_GET["name"])){ echo '<p>Hi, ' . $_GET["name"] . '</p>"; } ?> <form method="get" action="<?php echo $_SERVER["PHP_SELF"];?>"> <label for="inputName">Nom :</label> <input type="text" name="name" id="inputName"> <input type="submit" value="Soumettre"> </form>
Dans la méthode POST, les données sont envoyées au serveur dans un message de communication séparé avec le script de traitement. Les données envoyées par la méthode POST ne sont pas visibles dans l'URL.
Il est plus sûr que GET car les informations saisies par l'utilisateur ne sont jamais visibles dans la chaîne de requête de l'URL ou dans les journaux du serveur.
La quantité de données transmissibles est plus limitée, et vous pouvez envoyer des données de texte et des données binaires (téléchargement de fichiers) via POST.
Les données envoyées par la méthode POST ne sont pas visibles dans l'URL, donc vous ne pouvez pas ajouter de signets de page avec une requête spécifique.
Comme $_GET, PHP fournit une autre variable globale superglobale $_POST pour accéder à toutes les informations envoyées par la méthode POST ou soumis par un formulaire HTML avec method="POST".
!DOCTYPE html <html> <head> <title>Exemple en ligne PHP Méthode POST</title> </head> <?php if(isset($_POST["name"])){ echo "<p>Hi, " . $_POST["name"] . "</p>"; } ?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>"> <label for="inputName">Nom :</label> <input type="text" name="name" id="inputName"> <input type="submit" value="Soumettre"> </form>
PHP fournit une autre variable globale superglobale $_REQUEST, qui contient les valeurs des variables $_GET et $_POST ainsi que les valeurs de la variable globale superglobale $_COOKIE.
!DOCTYPE html <html> <head> <title>Exemple en ligne PHP Variable $_REQUEST</title> </head> <?php if(isset($_REQUEST["name"])){ echo "<p>Hi, " . $_REQUEST["name"] . "</p>"; } ?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>"> <label for="inputName">Nom :</label> <input type="text" name="name" id="inputName"> <input type="submit" value="Soumettre"> </form>
Vous découvrirez dans la partie avancée des informations sur PHP cookieettraitement desPlus d'informations.
Remarque :Les variables globales superglobales $_GET, $_POST et $_REQUEST sont intégrées, elles sont toujours disponibles dans tous les ensembles d'instructions du script.