J'ai un soucis un formulaire. Si quelqu'un fait ne rentre pas son nom et fait "valider" je recois quand meme le mail.
Si je ne mets pas mon email, j'ai remarqué que le message apparait, mais du coup, je ne recois pas le formulaire ^^.
Voici ma page php :
<?php
// Une fois le formulaire envoyé
if(isset($_POST["button"]))
{
// Vérification de la validité des champs
if(!preg_match("/^[A-Za-z0-9_]{4,20}$/", $_POST["nom"]))
{
$message = "Votre nom doit comporter entre 4 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!preg_match("/^[A-Za-z0-9]{4,}$/", $_POST["prenom"]))
{
$message = "Votre prénom doit comporter entre 4 et 20 caractères";
}
elseif(!preg_match("/^[0-9]{4,}$/", $_POST["telephone"]))
{
$message = "Votre numéro de téléphone n'est pas renseigné";
}
elseif(!preg_match("/^[A-Za-z0-9]{4,}$/", $_POST["ville"]))
{
$message = "Votre ville n'est pas renseignée";
}
elseif(!preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$/",
$_POST["email"]))
{
$message = "Votre adresse e-mail n'est pas valide";
}
else
{
// Message de confirmation
$message = "Merci beaucoup<br />\n";
$message .= "Un email vient de vous être envoyer afin de l'activer";
// On masque le formulaire
$masquer_formulaire = true;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DBA</title>
<link rel="stylesheet" media="all" type="text/css" href="css/style.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
</head>
<body>
<div id="formulaire_devis">
<?php if(isset($message)) { ?>
<p><?php echo $message; ?></p>
<?php } if($masquer_formulaire != true) { ?>
<form id="form" action="formulaire_devis.php" method="post" class="devis_miseenforme">
<fieldset class="Dev_block" id="vous">
<legend>A Remplir</legend>
<fieldset class="Dev_Inline" id="vos_coordonnees">
<legend>Vos Coordonnées</legend>
<p class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap001">
<label id="Dev_Label001" for="Dev_elem001">Nom</label>
<input class="Dev_elem" type="text" name="nom" value="" id="Dev_elem001"/>
<span class="Dev_Required">*</span>
</p>
<p class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap002">
<label id="Dev_Label002" for="Dev_elem002">Prénom</label>
<input class="Dev_elem" type="text" name="prenom" value="" id="Dev_elem002"/>
<span class="Dev_Required">*</span>
</p>
<p class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap003">
<label id="Dev_Label003" for="Dev_elem003">Téléphone</label>
<input class="Dev_elem" type="text" name="telephone" value="" id="Dev_elem003"/>
<span class="Dev_Required">*</span>
</p>
<p class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap004">
<label id="Dev_Label004" for="Dev_elem004">E-Mail</label>
<input class="Dev_elem" type="text" name="email" value="" id="Dev_elem004"/>
<span class="Dev_Required">*</span>
</p>
</fieldset>
<fieldset class="Dev_Inline" id="vos_coordonnees">
<legend>Votre Adresse</legend>
<p class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap005">
<label id="Dev_Label005" for="Dev_elem005">Societe</label>
<input class="Dev_elem" type="text" name="societe" value="" id="Dev_elem005"/>
</p>
<p class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap006">
<label id="Dev_Label006" for="Dev_elem006">Adresse</label>
<input class="Dev_elem" type="text" name="adresse" value="" id="Dev_elem006"/>
</p>
<p class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap007">
<label id="Dev_Label007" for="Dev_elem007">Code Postal</label>
<input class="Dev_elem" type="text" name="codepostal" value="" id="Dev_elem007"/>
</p>
<p class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap008">
<label id="Dev_Label008" for="Dev_elem008">Ville</label>
<input class="Dev_elem" type="text" name="ville" value="" id="Dev_elem008"/>
<span class="Dev_Required">*</span>
</p>
</fieldset>
<span class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap001">
<label id="Dev_lab01" for="Dev_for01">Comment avez-vous connu la DBA PROD ?</label>
<select class="Dev_elem" name="Dev_nm_connu[]" id="Dev_elem01">
<option selected="selected" value="">-- Faites votre choix --</option>
<option value="moteur_de_recherche">Par un moteur de recherche</option>
<option value="annuaire_internet">Par un annuaire sur internet</option>
<option value="pages_jaunes">Par les pages jaunes</option>
<option value="bouche-_a_oreille">Bouche à oreille</option>
<option value="salon">Un salon</option>
<option value="article_de_presse">Article de presse</option>
<option value="autre">Autre</option>
</select>
</span>
</p>
<fieldset class="Dev_Inline" id="type_de_projet">
<legend>Type de Projet</legend>
<input type="checkbox" name="film_de_mariage"/><label>Film de mariage</label>
<br/>
<input type="checkbox" name="film_institutionnel"/><label>Film institutionnel</label>
<br/>
<input type="checkbox" name="film_clubbing"/><label>Film Clubbing</label>
<br/>
<input type="checkbox" name="conversion_duplication"/><label>Conversion/Duplication</label>
<br/>
<input type="checkbox" name="crea_site"/><label>Création de site internet</label>
<br/>
<input type="checkbox" name="court_metrage"/><label>Court métrage</label>
<br/>
<input type="checkbox" name="autre"/><label>Autre</label>
</p>
</fieldset>
<p>
<fieldset class="Dev_Inline" id="echeance">
<legend>Echéance</legend>
<p>
<input type="checkbox" name=">1mois"/><label>-1 mois</label>
<br/>
<input type="checkbox" name="> 2mois"/><label>> 2 mois</label>
<br/>
<input type="checkbox" name="> 3mois"/><label>> 3mois</label>
<br/>
<input type="checkbox" name="> 5mois"/><label>> 6 mois</label>
<br/>
<input type="checkbox" name="non_planifie"/><label>non planifié</label>
</p>
</fieldset>
<fieldset class="Dev_Inline" id="budget">
<legend>Budget</legend>
<input type="checkbox" name="0_500euros"/><label>0 - 500 euros</label>
<br/>
<input type="checkbox" name="500_1000euros"/><label>500 - 1000 euros</label>
<br/>
<input type="checkbox" name="1000_1500euros"/><label>1000 - 1500 euros</label>
<br/>
<input type="checkbox" name="1500_2000euros"/><label>1500 - 2000 euros</label>
<br/>
<input type="checkbox" name="5000_10000euros"/><label>5000 - 10000 euros</label>
<br/>
<input type="checkbox" name="peu_importe"/><label>Peu importe</label>
</fieldset>
<p>
<fieldset class="Dev_Inline" id="description">
<legend>Description</legend>
<p class="Dev_ElemWrap Dev_LabelLeft" id="Dev_ElemWrap357">
<textarea class="Dev_elem" style="width:99%;height:150px;" name="description" id="Dev_elem357"></textarea>
</p>
</fieldset>
</fieldset>
<p>
<input type="submit" name="button" id="button" value="Valider" />
</p>
</fieldset>
</form>
<?php } ?>
</div>
</div>
</div>
</div>
<div id="footer_formulaire">
<div class="copyright">
<a href="connexion.php">Espace Membres</a> | <font color="#c71d36">DBA PRODUCTION FILMS © 2011</font> | <a href="mention_legales.html">Mentions Légales</a>
</div>
</div>
</body>
</html>
La page formulaire_devis.php :
<?php
$TO = "[email protected]";
$subject = "Demande de devis DBA-PROD.COM";
$h = "From: " . $TO;
$message = "Formulaire";
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
header("Location:accuse_devis.html");
?>
Pouvez vous m'aider à résoudre ce problème. Ca fait depuis 4h que je suis dessus, mais étant pas très fort en php... a mon avis cela vient de la page formulaire_devis.php car elle envoie au lieu de vérifier avant, mais sur la page du formulaire je l'ai noté en haut.