Geek Help Me ! Tutoriels, Dossiers, News...

  Accueil Tutoriels Développement PHP / MySQL [PHP] Tuto : Les formulaires en PHP (GET et POST)
Bookmark and Share
[PHP] Tuto : Les formulaires en PHP (GET et POST)
Note des utilisateurs: / 1
MauvaisTrès bien 
Écrit par Lordsirius   
Dimanche, 18 Avril 2010 18:35

I/ Le protocole http

Dans le protocole http, il est possible d’utiliser plusieurs commandes d’entêtes, celle-ci sont au nombre de 8 (GET, HEAD, POST, OPTIONS, CONNECT, TRACE, PUT, DELETE).
En PHP pour la gestion des formulaires nous utiliseront les commandes GET et POST du protocole http.

Plus généralement, la commande GET permet de passer des données via l’url :
http://www.geekhelpeme.fr/saisie_utilisateur.php?nom=menu&prenom=ludovic&mdp=0000


Quand à la commande POST, elle permet de passer des données via les entêtes http :
Exemple de message http en POST :

http://192.168.1.2:1010/index/valid/
POST /index/valid/ HTTP/1.1
Host: 192.168.1.2:1010User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://192.168.1.2:1010/
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
login=test&password=test&Valider=Valider
HTTP/1.1 200 OK
Date: Sun, 18 Apr 2010 18:05:11 GMT
Server: Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.1
Content-Length: 1868
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

II/ L’affichage du formulaire

Par exemple, imaginons que dans le fichier saisie_utilisateur.php nous souhaitons afficher un formulaire de saisi permettant à un internaute de créer un compte utilisateur. Le formulaire ressemblerait alors à ceci :

Fichier : saisie_utilisateur.php

<html>
<head>
   <title>Création d'un compte utilisateur</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
   <h1> Création d'un compte utilisateur</h1>
   <form action= "insert_utilisateur.php" method="POST" >
      <table width="300px">
         <tr>
            <td align="right">
               <label for="nom">Nom :</label>
            </td>
            <td>
               <input type="text" name="nom" id="nom" />
            </td>
         </tr>
         <tr>
            <td align="right">
               <label for="prenom">Pr&eacute;nom :</label>
            </td>
            <td>
               <input type="text" name="prenom" id="prenom" />
            </td>
         </tr>
         <tr>
            <td align="right">
               <label for="login">Login :</label>
            </td>
            <td>
               <input type="text" name="login" id="login" />
            </td>
         <tr>
         </tr>
            <td align="right">
               <label for="mdp">Mot de passe :</label>
            </td>
            <td>
               <input type="password" name="mdp" id="mdp" />
            </td>
         </tr>
         <tr>
            <td align="center" colspan="2">
               <input type="submit" name="ok" id="ok" value="Envoyer" />&nbsp;
               <input type="reset" name="annuler" id="annuler" value="Annuler" />&nbsp;
            </td>
         </tr>
      </table>
   </form>
</body>
</html>


III/ Réception des données

En php, il est possible de récupérer les données provenant des formulaires via les variables globales $_GET pour les passages des données avec la méthode GET, $_POST pour la récupération via la méthode $_POST.
Il existe également la vriable global $_REQUEST, variable qui permet de récupérer les données en GET ou en POST.

Ces variables sont des tableaux associatifs, ainsi pour accéder à une donné, il suffit de connaître son index (le nom du champ du formulaire). Par exemple, pour accéder à la valeur du champ nom, vous devez écrire $_POST['nom'] ;

Exemple de réception de données provenant du fichier saisie_utilisateur.php :

Fichier : insert_utilisateur.php

<html>
<head>
    <title>Création d'un compte utilisateur</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
    <h1> Création d'un compte utilisateur </h1>
    <?php
    $nom='';
    $prenom='';
    $mdp='';
    if (isset($_POST['ok'])) {
       if (isset($_POST['nom'])) {
          $nom=$_POST['nom'];
       }
       if (isset($_POST['prenom'])) {
          $nom=$_POST['prenom'];
       }
       if (isset($_POST['login'])) {
          $login=$_POST['login'];
       }
       if (isset($_POST['mdp'])) {
          $mdp=$_POST['mdp'];
       }
   }
   ?>
   <table width="300px">
      <tr>
         <td align="right">
            Nom :
         </td>
         <td>
            <?php echo $nom;?>
         </td>
      </tr>
      <tr>
         <td align="right">
            Pr&eacute;nom :
         </td>
         <td>
            <?php echo $prenom;?>
         </td>
      </tr>
      <tr>
         <td align="right">
            Login :
         </td>
         <td>
            <?php echo $login;?>
         </td>
      <tr>
         <td align="right">
            Mot de passe :
         </td>
         <td>
            <?php echo $mdp;?>
         </td>
      </tr>
   </table>
</body>
</html>


Pour toutes questions concernant le tuto : "Les formulaires en PHP", venez poster dans le forum.

Mise à jour le Lundi, 26 Avril 2010 22:10
 
web design - referencement