| Accueil | table PHP | index PHP | précédent | suivant |

Les formulaires - 4 (textes)

Voici un deuxième exemple dans lequel le traitement du formulaire est effectué par un script différent de celui qui le contient. Le script de traitement enregistre les données saisies dans des variables de session auxquelles le formulaire peut accéder pour les afficher à nouveau et les modifier.

L'insertion d'un titre title="mon titre" dans les balises de boutons et de champs, permet de l'afficher dans des info-bulles qui apparaissent au survol du curseur.

La feuille de style et le script se présentent comme suit :


/* Fichier PHPStyle011.css */

body
{
background-color : rgb(245,235,204);
}

/* style des liens */
a:link {color : rgb(200,0,0); font-weight : bold; font-style : normal; text-decoration : none; }
a:visited {color : rgb(0,150,0); font-weight : bold; font-style : normal; text-decoration : none;}
a:hover {color : rgb(0,0,200); text-decoration : underline}
a:active {color : rgb(0,150,150); font-weight : bold; font-style : normal; text-decoration : none;}

#form
{
position : absolute;
left : 7cm;
top : 1cm;
padding-top : 10px;
background-color : rgb(255,255,255);
font-family : Verdana;
font-size : 10pt;
color : rgb(0,0,0);
line-height : 150%;
}

h2
{
margin-top : 0;
font-size : 12pt;
color : rgb(60,0,0);
text-align : center;
}

.pass
{
width : 60px;
background-color : rgb(225,225,245);
color : rgb(0,0,0);
margin-left : 0;
font-size : 10pt;
border-width : 0;
}

.champs
{
width : 210px;
background-color : rgb(225,245,204);
color : rgb(0,0,0);
font-family : Arial;
font-size : 10pt;
margin-left : 20px;
margin-right : 20px;
border-width : 0;
}

.boutons
{
background-color : rgb(225,225,245);
color : rgb(0,0,0);
width : 80px;
font-weight : bold;
color : rgb(150,0,0);
margin-left : 80px;
}

.table
{
margin-left : 40px;
}

.cell
{
vertical-align : top;
font-size : 9pt;
}

.cell2
{
vertical-align : top;
font-size : 9pt;
width : 100px;
margin-left ; 10px;
}

.text
{
margin-left : 20px;
width : 210px;
}

.Tspan
{
margin-left : 20px;
color : rgb(0,60,0);
font-weight : bold;
}

Voici le formulaire (le mot de passe est passOK) :


<?php
session_start();
// initialisation des variables
$pass="";
$texte1="";
$texte2="";

if(isset($_GET["param"]))
{


$param=$_GET["param"];


}

if($param==1)
{


$pass=$_SESSION["passwd"];
$texte1=$_SESSION["ident"];
$texte2=$_SESSION["message"];


}

if($param==2)
{


$pass=$_SESSION["passwd"];


}

?>

<!--script023 -->
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Titre de cette page : script023</title>
<meta name="description" content="Phrase décrivant clairement cette page" />
<meta name="keywords" content="mot1 mot2, mot3 mot4 mot5, mot6" />
<link rel="stylesheet" type="text/css" href="PHPStyle011.css" />
</head>

<body>

<form id="form" action="script024.php" method="post" >

<h2>Message fictif<br/></h2>

<table class="table" >
<tr>
<td class="cell">
mot de passe :
</td>
<td class="cell">
<input class="pass" type="password" name="pass"
value="<?php echo $pass ?>" maxlength="6" />
</td>
</tr>
</table>

<p>
<input class="champs" type="text" name="texte1"
value="<?php echo $texte1 ?>" size="30" maxlength="50"
title="votre identifiant" /><br/><br/>

<textarea class="champs" name="texte2" rows="4" cols="27"
title="votre message" ><?php echo $texte2 ?></textarea>
<br/><br/>

<input class="boutons" type="submit" name="send" value="envoi" title="enregistrer le message"/>
<br/><br/>
</p>

</form>

</body>
</html>

Voici le script de traitement :


<?php
session_start();
$pass=$_POST["pass"];
$texte1=$_POST["texte1"];
$texte2=$_POST["texte2"];

// supprimer les caractères d'échappement
// et remplacer les guillemets par leur code &#34;
$pass=stripslashes(str_replace("\"", "&#34;", $pass));
$texte1=stripslashes(str_replace("\"", "&#34;", $texte1));
$texte2=stripslashes($_POST["texte2"]);
// remplacer les retours ligne par <br/> pour affichage résultats
$texte3=str_replace("\r\n", "<br/>", $texte2);

$_SESSION["passwd"]=$pass;
$_SESSION["ident"]=$texte1;
$_SESSION["message"]=$texte2;

$OK=false;
if($pass=="passOK")
{


$OK=true;


}

?>

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Titre de cette page : script024</title>
<meta name="description" content="Phrase décrivant clairement cette page" />
<meta name="keywords" content="mot1 mot2, mot3 mot4 mot5, mot6" />
<link rel="stylesheet" type="text/css" href="PHPStyle011.css" />
</head>

<body>

<div id="form">

<h2>Traitement du formulaire</h2>

<table class="table">
<tr>
<td class="cell2">
<a href="script023.php?param=1" >modifier</a>
</td>
<td class="cell2">
<a href="script023.php?param=2" >nouveau</a>
</td>
</tr>
</table>

<?php
// affichage des textes saisis
if($OK)
{


echo "<br/><p class=\"Tspan\" >Vous avez saisi : </p>";
echo "<p class=\"text\">";
echo "<i>votre mot de passe : </i><b>$pass</b>";
echo "<br/><br/>";
echo "<i>votre identifiant : </i><br/><b>$texte1</b>";
echo "<br/><br/>";
echo "<i>votre message : </i>";
echo "<br/>";
echo $texte3;
echo "</p>";


}
else
{


echo "<br/><p class=\"Tspan\" >";
echo "<b>mot de passe incorrect</b>";
echo "</p>";


}

?>

</div>

</body>

</html>


Exécuter ce script


suivant