Méthodes GET et POST

Passage de variable en PHP

GET et POST : comment passer des valeurs à un programme PHP ?

Exemple : on veut passer le nom et le prenom d'une personne à un programme pour l'afficher sur une page web. On a deux possiblités: soit on utilise un formulaire HTML, soit on passe les parametre via un lien hypertexte. Lorsqu'on passe les paramètres avec la methode GET, on les voit apparaître dans l'url :

http://www.mondomaine.com/fichier.php3?nom=airey&prenom=romuald

Lorsqu'on passe les paramètres avec la methode POST, c'est transparent. La méthode POST n'est pas limitée en taille, en GET la taille est limitée, donc des formulaires trop riches ne fonctionneront pas. De plus si on imagine une application avec mot de passe, la method get est à prohiber car on verrait le mot de passe dans l'url !

http://www.mondomaine.com/fichier.php3?login=dupont&motdepasse=45gtPQ47

Exemple d'un formulaire en POST !

<html>
<form action=fichier.php3 method=post>
prenom : <input type=text name=valeur><br>
nom : <input type=text name=valeur><br>
<input type=submit value=Envoyer>
</form>
</html>

Programme PHP permettant d'afficher les valeurs postées par le formulaire :

<?php
 echo "prenom : $HTTP_POST_VARS[prenom]<br>";
 echo "nom : $HTTP_POST_VARS[nom]<br>";
?>

Exemple avec un lien donc un programme php en GET !

<html>
<a href="fichier.php3?nom=airey&prenom=romuald">fichier</a>
</html>

Programme PHP permettant d'afficher les valeurs postées par le formulaire :

<?php
 echo "prenom : $HTTP_GET_VARS[prenom]<br>";
 echo "nom : $HTTP_GAT_VARS[nom]<br>";
?>

Cependant les exemples que je viens de vous donner sont complets, vous pouvez réduire le code, par exemple pour le dernier cas:

<?php
 echo "prenom : $prenom<br>";
 echo "nom : $nom<br>";
?>

Différence entre les variables $HTTP_POST_VARS et $_POST...

Remarque extrait de http://www.nexen.net/docs/php/annotee/reserved.variables.files.php?lien=http_post_files dans le cas de $HTTP_POST_FILES et $_FILES. Pour $HTTP_POST_VARS et $_POST d'une part et $GET et $GET d'autre part, il doit y avoir une explication similaire... à valider

Variable de téléchargement de fichier via HTTP : $_FILES

Introduite en 4.1.0. Dans les versions plus anciennes, elle s'appelait $HTTP_POST_FILES .

Un tableau associatif des valeurs téléchargées au script courant via le protocole HTTP et la méthode POST. Elle est automatiquement globale dans tous les contextes d'exécution.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $_FILES; pour y accéder, comme vous le faisiez avec $HTTP_POST_FILES .

$HTTP_POST_FILES contient les mêmes informations, mais n'est pas autoglobale. (Notez que $HTTP_POST_FILES et $_FILES sont des variables différentes et que PHP les traite comme tel)

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global. C'est-à-dire séparément des tableaux $_FILES et $HTTP_POST_FILES . Ces variables globales individuelles ne sont pas des globales.

Liens

page originale de celle-ci : http://www.ilovephp.com/docs/docview.php3?id=14