if (mail($mon_email,$namebo,$msg_pour_moi,$entete) && mail($son_email,$namebo,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
echo "<p style=\"text-align:center\">Votre message a été envoyé, vous recevrez une confirmation par mail.<br /><br />\n"; // On affiche un message de confirmation
echo "<a href=\"" . $mon_url . "\">Retour</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
}
}
?>
Etant donné que j'ai beaucoup de fois le même champ à faire remplir , je ne sais pas comment les envoyer sans les nommer différemment un par un . On m'a suggéré d'utiliser foreach() avec name="champ[]" pour tous les champs identiques mais je n'y arrive pas ... comment faire ?
Bonjour, j'ai corrigé des lignes 38 a 50 en rajoutant un foreach et en recuperant tes champs
Citation :
<?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_pseudo"])) $_POST["son_pseudo"]=trim(stripslashes($_POST["son_pseudo"])); if (isset($_POST["race"])) $_POST["race"]=trim(stripslashes($_POST["race"])); if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); if (isset($_POST["namebo"])) $_POST["namebo"]=trim(stripslashes($_POST["namebo"])); if (isset($_POST["champ[]"])) $_POST["champ[]"]=trim(stripslashes($_POST["champ[]"])); // Après la mise en forme, on vérifie la validité des champs if (empty($_POST["race"])) { // L'utilisateur n'a pas rempli le champ race $erreur="Vous n'avez pas entré la race..."; // 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 (empty($_POST["son_pseudo"])) { // L'utilisateur n'a pas rempli le champ pseudo $erreur="Nous avons besoin de votre pseudo pour vous répondre..."; } elseif (empty($_POST["namebo"])) { // L'utilisateur n'a pas rempli le champ nom du bo $erreur="Vous devez entrer le nom de votre BO..."; } 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 } } else { // Sinon l'état est ok donc on envoie le mail $race = $_POST["race"]; // On stocke les variables récupérées du formulaire $namebo = $_POST["namebo"]; $champ = $_POST["champ"]; $build=""; foreach($champ as $key=>$value){ $build.=$key." -> ".$value."<br />"; } $son_email = $_POST["son_email"]; $son_pseudo = $_POST["son_pseudo"]; $mon_email = "gwebmastersc2@gmail.com"; // Mise en forme du message $mon_pseudo = "gwebmaster"; $mon_url = "/test3/index.html"; $msg_pour_moi = "- Race : $race \n - Son E-mail : $son_email \n - Son pseudo : $son_pseudo \n - Nom du BO : $namebo \n - Build Orders : \n $build \n\n"; // Mise en forme de l'accusé réception qu'il recevra $accuse_pour_lui = "Bonjour $son_pseudo,\n Votre BO nous a bien été envoyé et nous tâcherons de le publier le plus rapidement possible.\n\n - Votre bo : $namebo \n Merci et à bientôt sur http://monfutursite.fr !"; // Envoie du mail $entete = "From: " . $mon_pseudo . " <" . $mon_email . ">\n"; // On prépare l'entête du message $entete .='Content-Type: text/plain; charset="iso-8859-1"'."\n"; $entete .='Content-Transfer-Encoding: 8bit'; if (mail($mon_email,$namebo,$msg_pour_moi,$entete) && mail($son_email,$namebo,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé echo "<p style=\"text-align:center\">Votre message a été envoyé, vous recevrez une confirmation par mail.<br /><br />\n"; // On affiche un message de confirmation echo "<a href=\"" . $mon_url . "\">Retour</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 } } ?>
Message édité par intel-44 le 25-07-2013 à 15:32:25
Marsh Posté le 21-06-2013 à 18:06:24
Bonjour !
J'ai créé un formulaire au sujet d'un jeu vidéo :
Mon problème est au niveau du traitement :
Etant donné que j'ai beaucoup de fois le même champ à faire remplir , je ne sais pas comment les envoyer sans les nommer différemment un par un . On m'a suggéré d'utiliser foreach() avec name="champ[]" pour tous les champs identiques mais je n'y arrive pas ... comment faire ?
Merci d'avance et bonne soirée