Statistiques| Inscription| Espace privé
Développement Web
Accueil > PHP/MySQL > Le formulaire posté
Le plan Les galeries
Dernière mise à jour :
vendredi 15 mai 2009
Contact
Webmestre
olivier ramos
ParamSPIP
Agenda
<<   Mai 2019   >>
Lu Ma Me Je Ve Sa Di
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2



Gestion PHP/MySQL d’un formulaire
On donne ici un exemple simple de gestion PHP d’un formulaire et on met en évidence l’inscription de données dans la base MySQL.
 
 
 
 
Gestion PHP/MySQL d’un formulaire
On donne ici un exemple simple de gestion PHP d’un formulaire et on met en évidence l’inscription de données dans la base MySQL.
Le but du code.
 
 
 
 

On considère le code html du formulaire que l’on avait envisagé au chapitre sur les feuilles de style.

On va maintenant traiter les informations récupérées à l’aide de PHP du côté du serveur (le coté client a été étudié à l’aide de javascript) . L’objet de cet exemple est double :

- d’une part, on génère une nouvelle page html dans laquelle on utilise les valeurs postées sur le serveur,

- d’autre part, on inscrit ces valeurs dans la table nommée "inscription" de la base de données "developpementweb".

Le code de ce traitement est situé dans le fichier intitulé "traitement.php" et l’appel de cette page s’effectue grâce à la ligne suivante :

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

qui remplace la ligne <form action=""> initiale. Le bouton de validation devient alors :

 <input type="submit" value="Enregistrer" />

Tout le reste du code html et de la feuille de style reste inchangé.

Dans la page traitement.php, les valeurs ainsi reçues sont désignées par $_POST[’name’] où name est un nom d’un champ du formulaire.

La première partie du résultat sera l’affichage de la page html produite par le fichier traitement.php.

La seconde partie consistera à vérifier que l’inscription dans la base de données a bien été correctement réalisée (on donne en fin le script permettant l’affichage de la table "inscription" à la façon phpMyAdmin). La structure cette table est la suivante :

Champ Type Attributs Null Extra Action
id int(10) UNSIGNED Non auto_increment

nom varchar(20)   Oui    
prénom varchar(20)   Oui    
passe char(40)   Oui    
genre char(1)   Non    
loisir varchar(12)   Non    
français char(1)   Oui    
anglais char(1)   Oui    
allemand char(1)   Oui    
espagnol char(1)   Oui    
texte mediumtext   Oui    
date datetime   Non    

signifie clé primaire.

 
 
 
 
 
Le fichier traitement.php
 
 
 
 

Le fichier traitement.php :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

<head>
<meta http-equiv="Content-Type" content="text/html ; charset=iso-8859-1" />
<title>Le traitement PHP/MySQL</title>
<link rel="stylesheet" href="form/traitement.css" type="text/css" />
</head>
 
 <body>

<!-- Dans cette première partie, on reprend les données envoyées par le formulaire qui sont les superglobales $_POST et on en fait la synthèse grâce à un petit texte. -->
<p>
Bonjour <?php if ($_POST['genre']=="un homme") { echo "Monsieur "; $genre="h";}
else { echo "Madame "; $genre="f";}
echo $_POST['nom']." ".$_POST['prenom']."."; ?>
</p>

<p>
<?php if ($_POST['secret']) echo "Votre mot de passe est ".$_POST['secret']." et v";
      else echo "V"; ?>
otre loisir préféré est <?php if($_POST['loisir']=="informatique") echo "l'informatique";
if($_POST['loisir']=="sport") echo "le sport";
if($_POST['loisir']=="cinéma") echo "le cinéma";
if($_POST['loisir']=="musique") echo "la musique";
echo". <br/>" ;?>
</p>

<p>
<?php $fran="f";$ang="f";$all="f"; $esp="f";
 if (($_POST['francais'])or($_POST['anglais'])or
($_POST['allemand'])or ($_POST['espagnol'])){ echo "Vous parlez : <ul>";
if ($_POST['francais']==true ) { echo "<li> le français </li>";$fran="o";}
if ($_POST['anglais']==true ) { echo "<li> l'anglais </li>"; $ang="o";}
if ($_POST['allemand']==true ) { echo "<li> l'allemand </li>"; $all="o";}
if ($_POST['espagnol']==true ) { echo "<li> l'espagnol </li>"; $esp="o";}
echo "</ul>"; }
?>
</p>

<p>
<?php if ($_POST['projet']!="") echo "Vous avez rédigé le texte suivant :<br/>";
echo $_POST['projet']; ?>
</p>

<p>
Ces valeurs ont bien été enregistrées dans la base de données.
</p>

<p>
<a href="webdevformulaire.html"> Retour</a>
</p>

<!-- Dans cette seconde partie, on inscrit ces données dans la table inscription de la base developpementweb. -->
<?php
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$secret=SHA1($_POST['secret']);
$loisir=$_POST['loisir'];

// Nécessaire pour l'inscription dans la base de données (' devient /').
$projet=addslashes($_POST['projet']);

// On se connecte à la base "developpementweb".
 mysql_connect("localhost","root","");
 mysql_select_db("developpementweb");

 
// Ensuite on enregistre les données dans la table "inscription" grâce à la commande SQL INSERT.
mysql_query("INSERT INTO inscription (id,nom,prénom,passe,genre,loisir,français,anglais,allemand,espagnol,texte,date)
 VALUES('', '$nom', '$prenom','$secret','$genre','$loisir','$fran','$ang','$all','$esp','$projet',NOW())");
?>

</body>
</html>

Le fichier traitement.css :

body{
font-family: Impact;
padding:30px;
font-size:35px;
color:#fafad2;
background:url(19A.jpg);

}

 
 
 
 
 
La première partie du résultat
 
 
 
 
 
 
 
 
 
La deuxième partie du résultat
 
 
 
 
 
 
 
 
 
Le fichier permettant l’affichage de la table
 
 
 
 

Le fichier mabase.php :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

<head>
<meta http-equiv="Content-Type" content="text/html ; charset=iso-8859-1" />
<title>Ma base</title>
<link rel="stylesheet" href="form/mabase.css" type="text/css" />
</head>
 <body>

<?php
// On va afficher tous les messages présents dans la base de données.
// On se connecte d'abord à MySQL.

 mysql_connect("localhost","root","");
 mysql_select_db("developpementweb");

 
// On utilise la requête suivante pour récupérer tous les messages.
 $reponse = mysql_query("SELECT * FROM inscription ORDER BY id");
 $nb=1;
?>

<!--On présente les résultats sous la forme d'un tableau, à la façon de phpMyAdmin.-->
<table id="tableaubase"   cellspacing="0">
<!-- Une première ligne d'en-tête, avec les titres des champs.-->
    <tr id="entete">
        <td
class="ide">id</td>
  <td
class="nom">nom</td>
  <td
class="prenom">prénom</td>
  <td
class="genre">genre</td>
  <td
class="loisir">loisir</td>
  <td
class="francais">français</td>
  <td
class="anglais">anglais</td>
  <td
class="allemand">allemand</td>
  <td
class="espagnol">espagnol</td>
  <td
class="texte">texte</td>
  <td
class="date">date</td>
  <td
class="passe">passe</td>
    </tr>

<?php
// On fait une boucle pour afficher tous les messages.
while ($donnees = mysql_fetch_array($reponse) ){
// La variable $couleur permet d'alterner les couleurs.
$nb=$nb*(-1);
if ($nb==1) $couleur="claire"; else $couleur="foncee";
?>

    <tr class="<?php echo $couleur;?>" >
  <td
class="ide"><?php   echo $donnees['id']; ?></td>
  <td
class="nom">
  <?php
// Cette petite vérification est utile pour internet explorer ( sinon l'affichage des cases vides ne se fait pas).
  if ((isset($donnees['nom']))and ($donnees['nom']!=""))  echo $donnees['nom']; else echo " "; ?>
  </td>
  <td
class="prenom">
  <?php   if ((isset($donnees['prénom']))and ($donnees['prénom']!="")) echo $donnees['prénom']; else echo " "; ?>
  </td>
   
  <td
class="genre"><?php   echo $donnees['genre']; ?></td>
  <td
class="loisir"><?php   echo $donnees['loisir']; ?></td>
  <td
class="francais"><?php   echo $donnees['français']; ?></td>
  <td
class="anglais"><?php   echo $donnees['anglais']; ?></td>
  <td
class="allemand"><?php   echo $donnees['allemand']; ?></td>
  <td
class="espagnol"><?php   echo $donnees['espagnol']; ?></td>
  <td
class="texte">
  <?php   if ((isset($donnees['texte']))and ($donnees['texte']!="")) echo stripslashes($donnees['texte']); else echo " "; ?>
  </td>
  <td
class="date">
  <?php   echo $donnees['date']; ?>
  </td>
  <td
class="passe">
  <?php   if ((isset($donnees['passe']))and ($donnees['passe']!="")) echo $donnees['passe']; else echo " "; ?>
  </td>    
    </tr>

<?php
}
// Fin de la boucle while.
?>

<!-- Fin de la base de données -->
</table>

<!--  On affiche le bouton qui permet d'actualiser la page.     -->
<form  action="mabase.php" >
  <input
type="submit"   value="Actualiser"  />
</form>

</body>
</html>

Le fichier mabase.css :

#tableaubase{
margin:auto;
overflow:scroll;

}
#tableaubase td{

border:1px solid white;
}
#entete{

background:#e5e5e5;
color:#3a00ff;
font-weight:bold;
text-align:center;

}
.foncee{

background:#d5d5d5;
}
.claire{

background:#e5e5e5;
}