8791 sujets

Développement web côté serveur, CMS

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é:

<?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&eacute;t&eacute;:<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&eacute;bergement choisi par vos soins (&agrave; pr&eacute;cider dans le message)<br/>
<input  type='checkbox' name='devis[]' value='hebergement_agence' />H&eacute;bergement choisi par Kenji<br/>
<input  type='checkbox' name='devis[]' value='logo' />Logo<br/>
<input  type='checkbox' name='devis[]' value='banniere' />Banni&egrave;re<br/>
<input type='checkbox' name='devis[]' value='pub' />Banni&egrave;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 (&agrave; pr&eacute;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 Smiley cligne
Salut,

* pour vérifier qu'au moins une checkbox a été cochée :
        elseif (!isset($_POST["devis"])) {
// aucune checkbox n'est cochée
                 $erreur="Merci de cocher au moins un service";
        }

* pour lister les checkbox dans le message :
$choix = 'Services :<br>';
foreach($_POST['devis'] as $devis) {
	$choix .= '- '.$devis.'<br>';
}

* pour réafficher les checkbox cochées :
-> rajouter après $email_webmaster = "****";
$arr_devis = array();
-> avant affichage des checkbox : $arr_devis = $_POST['devis'];
->
<input  type='checkbox' name='devis[]' value='site_complet' <?php if(in_array('site_complet', $arr_devis)) echo 'checked="checked" '; ?> />Site complet<br/>


Sinon quelques remarques :
* en l'état ton code est invalide (sans DOCTYPE, HEAD, BODY, etc...)
* pour faciliter l'accès aux champs rajoutes un id à chaque INPUT et un
<laber for="mon_id">libellé</label>

A+
Bonjour,

J'ai essayé mais ça marche pas. J'ai dû mal placer les éléments ou alors il y a une erreur. Normalement le formulaire marche en version sans checkbox.
Voici le code modifié:

<?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 (!isset($_POST["devis"])) {

// aucune checkbox n'est cochée

                 $erreur="Merci de cocher au moins un service";

        }
		
        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 = 'Services :<br>';

foreach($_POST['devis'] as $devis) {

	$choix .= '- '.$devis.'<br>';

}
        if (@mail($email_webmaster,$_POST["nom"],$_POST["societe"],$_POST["message"],$choix, $devis,$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";
        }
}
?>


Je suppose donc avoir fait une erreur dans le placement des éléments ou dans l'envoi du mail.
Modifié par Kenzi (15 Sep 2008 - 13:31)
Voila le code corrigé et testé :


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

    if (isset($_POST["message"])) {
        $_POST["message"]=trim(stripslashes($_POST["message"]));
    }

    // --- Test des valeurs ---
    if (empty($_POST["nom"])) {
        $erreur="Merci d'entrer votre nom";
    }
    elseif (empty($_POST["societe"])) {
        $erreur="Merci d'entrer votre société";
    }
    elseif (empty($_POST["mail"])) {
        $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"])){
        $erreur="Adresse e-mail non valide";
    }
    elseif (empty($_POST["message"])) {
        $erreur="Merci d'entrer votre message";
    }
	elseif (!isset($_POST["devis"])) {
        $erreur="Merci de cocher au moins un service";
    }
    else {
        $etat="ok";     //  tous les champs sont correctement remplis: on pourra envoyer le mail
    }
}
else {
    $etat="attente"; // Formulaire non soumis
}

###############################
# Affichage du formulaire et des eventuelles erreurs
###############################

if ($etat!="ok") {  // le formulaire n'a pas été soumis, ou soumis avec une erreur
    if ($etat=="erreur") {
        echo "<p><strong>".$erreur."</strong></p>\n"; // Affichage du message d'erreur
    }
    
?>

<form action='<?php echo $_SERVER["PHP_SELF"]; ?>' method='post'>
    <p>Votre nom:<br />
    <input name='nom' type='text' value='<?php echo htmlspecialchars($_POST["nom"],ENT_QUOTES); ?>' size='30' maxlength='30' /></p>
    <p>Votre société:<br />
    <input name='societe' type='text' value='<?php echo htmlspecialchars($_POST["societe"],ENT_QUOTES); ?>' size='30' maxlength='40' /></p>
    <p>Votre e-mail:<br />
    <input name='mail' type='text' value='<?php echo htmlspecialchars($_POST["mail"],ENT_QUOTES); ?>' size='30' maxlength='40' /></p>
    
    <br /><br />Services<br /><br />
    <input  type='checkbox' name='devis[]' value='site_complet' id='site_complet' /><label for="site_complet">Site complet</label><br />
    <input  type='checkbox' name='devis[]' value='design' id='design' /><label for="design">Design seul</label><br />
    <input  type='checkbox' name='devis[]' value='prog' id='prog' /><label for="prog">Prgrammation seule</label><br />
    <input  type='checkbox' name='devis[]' value='hebergement_client' id='hebergement_client' /><label for="hebergement_client">Hébergement choisi par vos soins (à précider dans le message)</label><br />
    <input  type='checkbox' name='devis[]' value='hebergement_agence' id='hebergement_agence' /><label for="hebergement_agence">Hébergement choisi par Kenji</label><br />
    <input  type='checkbox' name='devis[]' value='logo' id='logo' /><label for="logo">Logo</label><br />
    <input  type='checkbox' name='devis[]' value='banniere' id='banniere' /><label for="banniere">Bannière</label><br />
    <input  type='checkbox' name='devis[]' value='pub' id='pub' /><label for="pub">Bannière publicitaire</label><br />
    <input  type='checkbox' name='devis[]' value='affiche' id='affiche' /><label for="affiche">Affiche</label><br />
    <input  type='checkbox' name='devis[]' value='flyer' id='flyer' /><label for="flyer">Flyer</label>

    <br /><br />Documents<br /><br />
    <input  type='checkbox' name='devis[]' value='cahier' id='cahier' /><label for="cahier">Cahier des charges</label><br />
    <input  type='checkbox' name='devis[]' value='charte' id='charte' /><label for="charte">Charte graphique</label><br />
    <input  type='checkbox' name='devis[]' value='autre' id='autre' /><label for="autre">Autre (à préciser dans le message)</label><br />
    <input  type='checkbox' name='devis[]' value='traduc' id='traduc' /><label for="flyer">Traduction</label>

    <br /><br />Votre message:<br />
    <textarea name='message' id='message' cols='40' rows='5'><?php echo htmlspecialchars($_POST["message"],ENT_QUOTES); ?></textarea>

    <br /><br /><input type='submit' name='envoyer' value='Envoyer' />
</form>

<?php
}

###############################
# Envoi du Mail en format texte
###############################

else {
    $headers  = "From: " . $_POST["mail"] . " <" . $_POST["mail"] . ">\n";
    $headers .= "Reply-To: " . $_POST["mail"] . "\n";
    $headers .= "Content-Type: text/plain; charset='iso-8859-1'\n";
    $headers .= "Content-Transfer-Encoding: 8bit";

    $choix  = 'Société :' . "\n";
    $choix .= $_POST["societe"] . "\n\n";
    $choix .= 'Message :' . "\n";
    $choix .= $_POST["message"] . "\n\n";
    $choix .= 'Services :' . "\n";

    foreach($_POST['devis'] as $devis) {
        $choix .= '- ' . $devis . "\n";
    }
    
    if (@mail($email_webmaster, $_POST["nom"], $choix, $headers)) {
        // 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";
    }
}
?>


j'ai trouvé pas mal de petites erreurs,
Celle qui faisait planté le tout était surement ta fonction mail
dans laquelle tu avait inventé des paramètres.
Modifié par Yuk! (15 Sep 2008 - 15:51)
Merci beaucoup ça marche parfaitement Smiley cligne

Par contre j'ai une petite question, si j'ai à peu près le même formulaire mais avec deux radio à la place des checkbox, ça fonctionne de la même manière?
Je vais chercher si ça marche pas je viendrais poster le code
très mauvais au niveau sécu.
stripslashes/addslashes (déconseillé)
cette fonction envoie une faille xss, à cause de la récursivité inhérente.
je te conseil :

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

associé avec la fonction mysql
mysql_real_escape_string
en principe tu ne prend pas de claque...
Après personne ne peux empècher réellement une intru d'utiliser le xss
J'ai pas bien compris ce que tu m'as dis... Enfin c'est pas trop grave je pense.

Bon sinon pour confirmer mes dires j'ai essayé de récupérer mes radio sans succès.
les radio c'est un tableau:
<input type="radio" name="maRadio" value="1" />
<input type="radio" name="maRadio" value="2" />
<input type="radio" name="maRadio" value="2" />
<input type="radio" name="maRadio" value="2" />

tu récupères dans une page...
$maRadio=$-GET['$-GET'];
if(isset($-GET) && isset($maRadio) && !empty($maRadio)
echo $maRadio;

ou tu boucles sur le GET
Les inputs "radio" permettent de choisir UNE possibilité parmis les inputs "radios" affichés avec le meme nom (name="le_nom"), et ce sera la valeur de la possibilité choisis qui sera envoyé par get ou post.
donc pour récupérer la valeur d'un input "radio" il suffit de faire (dans ton cas) $_POST['nom_de_la_radio'].

Exemple :

==> page.php

<?php
if(isset($_POST['submit']))
{
    echo $_POST['nom_de_la_radio'];
}
?>
<form action="page.php" method="post">
    <input type="radio" name="nom_de_la_radio" value="1" id="radio_1" /><label for="radio_1">Radio 1</label>
    <input type="radio" name="nom_de_la_radio" value="2" id="radio_2" /><label for="radio_2">Radio 2</label>
    <input type="radio" name="nom_de_la_radio" value="3" id="radio_3" /><label for="radio_3">Radio 3</label>
    <input type="radio" name="nom_de_la_radio" value="4" id="radio_4" /><label for="radio_4">Radio 4</label>
    <!-- etc... -->
    <input type="submit" name="submit" value="Valider" />
</form>

Modifié par Yuk! (16 Sep 2008 - 06:26)
Salut,

alors j'ai repris mon formulaire corrigé hier pour les checkbox et j'ai remplacé par les radio et je reçois le message correctement sauf que j'ai Service: et à la ligne suivante le service choisi n'est pas affiché.

Voici le code:

<?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"]));
        }
		if (isset($_POST["site"])) {
                 $_POST["site"]=trim(stripslashes($_POST["site"]));
        }
        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["site"])) {
// il manque le site
                 $erreur="Merci d'entrer votre site";
        }
		
        elseif (empty($_POST["message"])) {
// le message est vide
                 $erreur="Merci d'entrer votre message";
        }
        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 method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
        <p><label for="nom">Votre nom:</label><br />
        <input type="text" size="40" name="nom" id="nom" value="<?php
        if (!empty($_POST["nom"])) {
// le nom a été saisie: la réafficher
                echo htmlspecialchars($_POST["nom"],ENT_QUOTES);
        }
        ?>" />
        </p>
        <p><label for="societe">Votre société:</label><br />
        <input type="text" size="40" name="societe" id="societe" value="<?php
        if (!empty($_POST["societe"])) {
// la societe a été saisi: le réafficher
                echo htmlspecialchars($_POST["societe"],ENT_QUOTES);
        }
        ?>" />
        <p><label for="mail">Votre e-mail:</label><br />
        <input type="text" size="40" name="mail" id="mail" value="<?php
        if (!empty($_POST["mail"])) {
// le mail a été saisi: le réafficher
                echo htmlspecialchars($_POST["mail"],ENT_QUOTES);
        }
        ?>" />
        </p>
         <p><label for="site">URL de votre site créé par notre agence:</label><br />
        <input type="text" size="40" name="site" id="site" value="<?php
        if (!empty($_POST["site"])) {
// le site a été saisi: le réafficher
                echo htmlspecialchars($_POST["site"],ENT_QUOTES);
        }
        ?>" />
        </p>
        <p>Choissez votre service</p>
        <p><input name="service" type="radio" name="radio" value="maintenance" />Maintenance<br/>
        <input name="service" type="radio" name="radio" value="maj" />Mise à jour</p>
       
        <p><label for="message">Votre message: (celui-ci doit expliquer en détail ce que vous désirez faire)</label><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>
        </p>
        <p><input type="submit" name="envoyer" value="Envoyer" />
        </p>
        </form>
        <?php
}

else {

    $headers  = "From: " . $_POST["mail"] . " <" . $_POST["mail"] . ">\n";

    $headers .= "Reply-To: " . $_POST["mail"] . "\n";

    $headers .= "Content-Type: text/plain; charset='iso-8859-1'\n";

    $headers .= "Content-Transfer-Encoding: 8bit";



    $choix  = 'Soci&eacute;t&eacute; :' . "\n";

    $choix .= $_POST["societe"] . "\n\n";
	
	$choix  = 'URL :' . "\n";

    $choix .= $_POST["site"] . "\n\n";

    $choix .= 'Message :' . "\n";

    $choix .= $_POST["message"] . "\n\n";

    $choix .= 'Service :' . "\n";

 $choix .= $_POST["radio"] . "\n\n";

    

    

    if (@mail($email_webmaster, $_POST["nom"], $choix, $headers)) {

        // 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";

    }

}
?>


Voilà et encore merci à vous de m'aider Smiley smile
Dans ton formulaire tu as mis :

        <p>Choissez votre service</p>
        <p><input [b][#red]name="service"[/#][/b] type="radio" [b][#red]name="radio"[/#][/b] value="maintenance" />Maintenance<br/>
        <input [b][#red]name="service"[/#][/b] type="radio" [b][#red]name="radio"[/#][/b] value="maj" />Mise à jour</p>


Tu as deux fois l'attrbut "name" dans chaque input radio, or il ne faut en mettre qu'un seul.

Correction :

        <p>Choissez votre service</p>
        <p>
            <input type="radio" name="radio" value="maintenance" />Maintenance<br/>
            <input type="radio" name="radio" value="maj" />Mise à jour
        </p>

Modifié par Yuk! (16 Sep 2008 - 18:24)
Ah oui j'ai oublié d'effacer l'ancien nom lors des tests... Quelle bête je fais :$

Ca marche très bien parfait! En ce qui concerne mes radio je serais plus vigilante lol

Merci beaucoup pour toute cette aide Smiley cligne
Modifié par Kenzi (16 Sep 2008 - 19:13)