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 :
<!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">
<!-- 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);
}
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">
<?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;
}