Bonjour à tous, alors je m'explique, j'ai créé un formulaire pour faire une demande de devis, et celui-ci envoie les réponses par mail.
Mais j'ai un problème au niveau des checkbox. J'ai essayé plusieurs façon de traiter la récupération des checkbox cochés et de les envoyer dans le mail mais sans succès.
Voici donc le code complet de ma page au niveau du dernier test effectué:
Donc en gros je n'arrive pas à comprendre si l'erreur vient de mes checkbox dans le formulaire (il me semble pas à première vue), de la récupération de ce qui est coché ou de l'intégration dans le mail ou alors le tout :s
Merci d'avance pour l'aide et les explications que vous pourrez l'apporter
Mais j'ai un problème au niveau des checkbox. J'ai essayé plusieurs façon de traiter la récupération des checkbox cochés et de les envoyer dans le mail mais sans succès.
Voici donc le code complet de ma page au niveau du dernier test effectué:
<?php
$email_webmaster = "****";
// === traitement des données du formulaire ====
if (isset($_POST["envoyer"])){
// le formulaire a été soumis
$etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
if (isset($_POST["nom"])) {
$_POST["nom"]=trim(stripslashes($_POST["nom"]));
}
if (isset($_POST["societe"])) {
$_POST["societe"]=trim(stripslashes($_POST["societe"]));
}
if (isset($_POST["mail"])) {
$_POST["mail"]=trim(stripslashes($_POST["mail"]));
}
// message
if (isset($_POST["message"])) {
$_POST["message"]=trim(stripslashes($_POST["message"]));
}
// --- test de la validité des champs saisis ---
if (empty($_POST["nom"])) {
// le nom est vide
$erreur="Merci d'entrer votre nom";
}
elseif (empty($_POST["societe"])) {
// la societe est vide
$erreur="Merci d'entrer votre société";
}
elseif (empty($_POST["mail"])) {
// il manque l'email de l'expéditeur
$erreur="Merci d'entrer votre adresse e-mail";
}
elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["mail"])){
// l'adresse e-mail n'est pas valide
$erreur="Adresse e-mail non valide";
}
elseif (empty($_POST["message"])) {
// le message est vide
$erreur="Merci d'entrer votre message";
}
elseif (empty($_POST["devis"])) {
$erreur="Merci de cocher au moins un élément";
}
else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
$etat="ok";
}
}
else {
// --- le formulaire n'a pas été soumis ---
$etat="attente";
}
// === fin de traitement des données du formulaire ====
?>
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
}
?>
<form action='<?php echo $_SERVER["PHP_SELF"]; ?>' method='post'>
<p>Votre nom:<br/><input name='nom' type='text' value='<?php
if (!empty($_POST["nom"])) {
// nom saisi
echo htmlspecialchars($_POST["nom"],ENT_QUOTES);
}
?>' size='30' maxlength='30' /></p>
<p>Votre société:<br/><input name='societe' type='text' value='<?php
if (!empty($_POST["societe"])) {
// societe saisi
echo htmlspecialchars($_POST["societe"],ENT_QUOTES);
}
?>' size='30' maxlength='40' /></p>
<p>Votre e-mail:<br/><input name='mail' type='text' value='<?php
if (!empty($_POST["mail"])) {
// mail saisi
echo htmlspecialchars($_POST["mail"],ENT_QUOTES);
}
?>' size='30' maxlength='40' /></p>
<br/><br/>Services<br/><br/>
<input type='checkbox' name='devis[]' value='site_complet' />Site complet<br/>
<input type='checkbox' name='devis[]' value='design' />Design seul<br/>
<input type='checkbox' name='devis[]' value='prog' />Prgrammation seule<br/>
<input type='checkbox' name='devis[]' value='hebergement_client' />Hébergement choisi par vos soins (à précider dans le message)<br/>
<input type='checkbox' name='devis[]' value='hebergement_agence' />Hébergement choisi par Kenji<br/>
<input type='checkbox' name='devis[]' value='logo' />Logo<br/>
<input type='checkbox' name='devis[]' value='banniere' />Bannière<br/>
<input type='checkbox' name='devis[]' value='pub' />Bannière publicitaire<br/>
<input type='checkbox' name='devis[]' value='affiche' />Affiche<br/>
<input type='checkbox' name='devis[]' value='flyer' />Flyer
<br/><br/>Documents<br/><br/>
<input type='checkbox' name='devis[]' value='cahier' />Cahier des charges<br/>
<input type='checkbox' name='devis[]' value='charte' />Charte graphique<br/>
<input type='checkbox' name='devis[]' value='autre' />Autre (à préciser dans le message)<br/>
<input type='checkbox' name='devis[]' value='traduc' />Traduction
<br/><br/>Votre message:<br/>
<textarea name='message' id='message' cols='40' rows='5'><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?>
</textarea>
<br/><br/><input type='submit' name='envoyer' value='Envoyer' />
</form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["mail"]." <".$_POST["mail"].">\n";
$entete .= "MIME-Version: 1.0";
$choix=$_POST['devis'];
if (@mail($email_webmaster,$_POST["nom"],$_POST["societe"],$_POST["message"],$choix,$entete)){
// mail envoyé
echo "Votre message est parti<br />\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message?</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Il y a eu une erreur pendant l'envoi de votre message<br/>\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Retenter?</a>\n";
}
}
?>
Donc en gros je n'arrive pas à comprendre si l'erreur vient de mes checkbox dans le formulaire (il me semble pas à première vue), de la récupération de ce qui est coché ou de l'intégration dans le mail ou alors le tout :s
Merci d'avance pour l'aide et les explications que vous pourrez l'apporter
