[PHP] - formulaire - Optimisation possible?

Salut, j’ai un formulaire de contact sur mon site qui me renvoi des infos via un fichier php3, mais je suis pas sur qu’il soit optimisé au mieux.

<html>
<head></head>
<body>
<?php
$MailTo = "xxx@xxx.com";
$MailSubject = "Contact site";

$Envoi = 1;

if ($champ1 == ""){
echo("<font face=verdana size=2>Vous n'avez pas indiqué votre nom.</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Nom : $champ1\n"; 
}
if ($champ2 == ""){
echo("<font face=verdana size=2>Vous n'avez pas indiqué votre prénom.</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Prénom : $champ2\n";
}
if ($champ3 == ""){
echo("<font face=verdana size=2>Vous n'avez pas indiqué votre téléphone.</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Telephone : $champ3\n";
}
if ($champ4 == ""){
echo("<font face=verdana size=2>Adresse mail?</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Adresse e-mail : $champ4\n";
}
if ($champ5 == ""){
echo("<font face=verdana size=2>Vous n'avez pas saisi votre message!!!</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Commentaires : $champ5\n";
}
if ($Envoi == 0)
{
echo("<p> </p><p> </p><p align=\"center\"><a href= \"index.html\"><strong>Retour au message</strong></a></p>");
}
else
{
mail($MailTo, $MailSubject, $MailBody);
echo("<p><font face=verdana size=2>Votre message a bien été envoyé.</font>"); 
echo("<p> </p><p> </p><p align=\"center\"><a href=\"\main.html\"><strong>Retour</strong></a></p>");
}
?>
</body>
</html>

De plus je voudrais ne plus obliger le visiteur à laisser mail et téléphone, je modifie comment ???

C’est lourd de faire ce genre de tests à l’ancienne, même si c’est pas faux.
En meme temps tous les tests sur les champs en javascript …

tu devrais peut etre regarder du côté de smarty (http://smarty.php.net/) pour générer des formulaires plus rapidement qu’a la mode php3 :smiley:

Tu vires ça :

if ($champ3 == ""){
echo("<font face=verdana size=2>Vous n'avez pas indiqué votre téléphone.</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Telephone :$champ3\n";
}
if ($champ4 == ""){
echo("<font face=verdana size=2>Adresse mail?</font><br>");
$Envoi = 0;
}

Pour rendre ça plus propre dans l’ensemble, tu devrais homogénéiser tes noms de variables, mettre toutes les lettres en minuscules et des noms cohérents. Ensuite, tu peux utiliser la fonction empty() au lieu de faire des comparaisons avec “”.
Enfin, tu peux mettre la liste de tes champs obligatoires dans un array et faire la vérification d’un coup.

:jap:
Merci!

Finalement j’ai fait comme ça :


if ($champ3 != ""){
$MailBody .= "Telephone : $champ3\n";
}
if ($champ4 != ""){
$MailBody .= "Adresse e-mail : $champ4\n";
}