Aller au contenu

Formulaire avec "checkbox"


Sujets conseillés

Posté

Bonjour!

Je n'arrive pas à recevoir le resultat de mon formulaire sur ma boîte email...

Quelqu'un pourrai voir si je n'ai pas oublier quelque chose dans mon code s'il vous plait

D'avance merci!

voici le formulaire:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>formulaire.</title>
</head>
<body>
<form name="formulaire" id="formulaire" method="post" action="traitement.php">
<p>
<input type="radio" name="radio" value="bouton radio" /><span class="formulaire">Particulier</span>
<input type="radio" name="radio" value="bouton radio" /><span class="formulaire">Entreprise
<input type="radio" name="radio" value="bouton radio" />Autre</span>
</p>
<p><span class="formulaire">Votre email:
<input name="email" type="text" size="40" />
</span></p>
<p>
<label>Votre site:
<input name="site" type="text" size="40" />
</label>
</p>
<p>
<input type="checkbox" name="coq" value="checkbox" />Coq
<input type="checkbox" name="coquelicot" value="checkbox" />Coquelicot
<input type="checkbox" name="pêcheur" value="checkbox" />Pêcheur
<input type="checkbox" name="glazig" value="checkbox" />Glazig
<input type="checkbox" name="crustacé" value="checkbox" />Crustacé;
<input type="checkbox" name="jardin fleuri" value="checkbox" />Jardin fleuri
<input type="checkbox" name="mer" value="checkbox" />Mer
<input type="checkbox" name="linge" value="checkbox" />Linge
<input type="checkbox" name="bol à prénom" value="checkbox" />Bol à prénom
<input type="checkbox" name="le blanc" value="checkbox" />Le Blanc
</label>
</p>
<p>
<label><span class="formulaire"><strong>Votre message:</strong></span></label>

<textarea name="texte" cols="40" rows="5"></textarea>
</p>
<p>
<input name="Submit" type="submit" class="formulaire" value="Envoyer" />
</p>
</form>
</body>
</html>

et voici le traitement.php

<?php
$adresse="nom_AT_fai.fr";
$from=" $radio $site $email";
mail($from, $texte, $coq, glazig);
?>

Posté

Bonjour!

En fait maintenant, c'est bon le formulaire fonctionne bien...

à une exeption faite:

les checkbox !

que j'en coche une ou plusieurs, dans mon email de réception j'en ai toujours qu'une seule...

Je ne comprend pas!

le code html concernant les checkbox:

<?php
if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
$etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur

// On récupère les champs du formulaire, et on arrange leur mise en forme
if (isset($_POST["son_statut"])) $_POST["son_statut"]=trim(stripslashes($_POST["son_statut"])); // trim() enlève les espaces en début et fin de chaine

if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes() retire les backslashes ==> \' devient '

if (isset($_POST["son_url"])) $_POST["son_url"]=trim(stripslashes($_POST["son_url"]));

if (isset($_POST["son_objet"])) $_POST["son_objet"]=trim(stripslashes($_POST["son_objet"]));

if (isset($_POST["son_message"])) $_POST["son_message"]=trim(stripslashes($_POST["son_message"]));

// Après la mise en forme, on vérifie la validité des champs
if (empty($_POST["son_statut"])) { // L'utilisateur n'a pas rempli le champ pseudo
$erreur="Vous n'avez pas choisi votre statut..."; // On met dans erreur le message qui sera affiché
}
elseif (empty($_POST["son_email"])) { // L'utilisateur n'a pas rempli le champ email
$erreur="Nous avons besoin de votre e-mail pour vous répondre...";
}
elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email"])){ // On vérifie si l'email est bien de la forme messagerie_AT_domaine.tld (cf cours d'expressions régulières)
$erreur="Votre adresse e-mail n'est pas valide...";
}
elseif (empty($_POST["son_objet"])) { // L'utilisateur n'a pas rempli le champ objet
$erreur="Vous devez entrer l'objet de votre message...";
}
elseif (empty($_POST["son_message"])) { // L'utilsateur n'a écrit aucun message
$erreur="Merci de saisir un message...";
}
else { // Si tous les champs sont valides, on change l'état à ok
$etat="ok";
}
}
else { // Sinon le formulaire n'a pas été soumis
$etat="attente"; // On passe donc dans l'état attente
}

if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
}
?>

<!-- Formulaire HTML qu'on affiche dans l'état attente ou erreur -->
<form method="post" action="<?php echo $_SERVER["../PHP_SELF"]; ?>"> <!-- Les données du formulaire seront récupérée avec la méthode POST, et action correspond à la page contenant le formulaire -->
<p style="text-align:left">
<label for="son_statut">Pseudo *</label><br /> <!-- Intitulé du champ pseudo -->
<input type="text" size="40" name="son_statut" id="son_statut" value="<?php
if (!empty($_POST["son_statut"])) {
// le pseudo de l'expéditeur a été saisi --> le réafficher
echo htmlspecialchars($_POST["son_statut"],ENT_QUOTES); // htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &
}
?>" />

<br />

<label for="son_email">E-mail *</label><br /> <!-- Intitulé du champ e-mail -->
<input type="text" size="40" name="son_email" id="son_email" value="<?php
if (!empty($_POST["son_email"])) {
// l'e-mail de l'expéditeur a été saisi --> le réafficher
echo htmlspecialchars($_POST["son_email"],ENT_QUOTES);
}
?>" />

<br />

<label for="son_url">URL de votre site</label><br /> <!-- Intitulé du champ url (facultatif) -->
<input type="text" size="40" name="son_url" id="son_url" value="<?php
if (!empty($_POST["son_url"])) {
// l'url a été saisi --> la réafficher
echo htmlspecialchars($_POST["son_url"],ENT_QUOTES);
}
?>" />

<br />

<label for="son_objet">Objet *</label><br /> <!-- Intitulé du champ objet -->
<input type="text" size="40" name="son_objet" id="son_objet" value="<?php
if (!empty($_POST["son_objet"])) {
// l'objet du message a été saisi --> le réafficher
echo htmlspecialchars($_POST["son_objet"],ENT_QUOTES);
}
?>" />

<br />

<label for="son_message">Message *</label><br /> <!-- Intitulé du champ message -->
<textarea name="son_message" id="son_message" cols="45" rows="7"><?php
if (isset($_POST["son_message"])) {
// le message a été saisi --> le réafficher
echo htmlspecialchars($_POST["son_message"],ENT_QUOTES);
}
?></textarea>

<br />

<input type="submit" name="envoyer" value="Envoyer" /><input type="reset" name="reset" value="Effacer" />
</p>
</form>
<!-- FIN du formulaire HTML -->

<?php
}
else { // Sinon l'état est ok donc on envoie le mail
$son_statut = $_POST["son_statut"]; // On stocke les variables récupérées du formulaire
$son_email = $_POST["son_email"];
$son_url = $_POST["son_url"];
$son_objet = $_POST["son_objet"];
$son_message = $_POST["son_message"];

$mon_email = "postmaster_AT_creaternet.com"; // Mise en forme du message que vous recevrez
$mon_pseudo = "Gérant";
$mon_url = "http://www.chezmoi.com";
$msg_pour_moi = "- Son pseudo : $son_statut \n
- Son E-mail : $son_email \n
- Son site : $son_url \n
- Objet du message : $son_objet \n
- Message : \n $son_message \n\n";

// Mise en forme de l'accusé réception qu'il recevra
$accuse_pour_lui = "Bonjour,\n
Votre message nous a bien été envoyé et nous tâcherons de vous répondre le plus rapidement possible.\n\n
- Votre E-mail : $son_email \n
- Votre site : $son_url \n
- L'objet de votre message : $son_objet \n
- Votre message : \n $son_message \n\n
Merci et à bientôt !";

// Envoie du mail
$entete = "From: " . $mon_statut . " <" . $mon_email . ">\n"; // On prépare l'entête du message
$entete .= "MIME-Version: 1.0";

if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && _AT_mail($son_email,$son_objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
echo "<p style=\"text-align:center\"><br /><br />\n"; // On affiche un message de confirmation
echo "<a href=\"" . $mon_url . "\"></a></p>\n"; // Avec un lien de retour vers l'accueil du site
}
else { // Sinon il y a eu une erreur lors de l'envoi
echo "<p style=\"text-align:center\">Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a></p>\n"; // On propose un lien de retour vers le formulaire
}
}
?>

D'avance merci! je patauge! :shutup:

Edit Norseb : merci d'utiliser la balise codebox pour les codes longs

Posté

Bonjour,

Toutes tes cases ont le même nom : name="son_objet"

C'est donc logique que tu ne recoive qu'une seule valeur ;)

Posté

Salut,

Toutes les checkbox doivent s'appeler : son_objet[]

Ensuite, pour réceptionner la valeur, tu les gères comme un tableau

Bye

Portekoi

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...