Envoi d'informations formulaire avec PHP

xilil Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
xilil Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai une page html avec mon formulaire, et une page php destinée à l'enregistrement des champs dans le mailbody et à l'envoi du mailbody.
Je suis confronté à plusieurs problèmes :

le premier et que je n'arrive pas à envoyer les informations des checkbox, voici mon code pour l'un d'entre eux qui comporte trois item:
$champ3 = $_POST['champ3'];
$MailBody .="Question 3 : ";
$items = 3;
for ($i = 1; $i <= $items; $i++) { 
$MailBody .= $champ3[$i].","; 
}


En plus de ça j'aimerai ajouter une vérification du type "il faut cocher au moins un item" et je ne sais pas comment l'ajouter à cette boucle.
Même chose pour mes boutons radio : je n'arrive pas à mettre une vérification "il faut cocher exactement un item".

En sachant que j'ai initialisé une variable Envoi à 1 et que, pour chaque erreur, je souhaite qu'elle soit mise à 0. A la fin j'ai ajouté une vérification avant l'envoi que la variable est bien à 1 sinon un retour sur le formulaire est possible.

Voilà si vous pouvez m'éclairer sur ces quelques points.
Merci d'avance
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. numayos
     
    bonjour ,
    c 'p'tet moi mais je ne comprend pas ce que tu veu faire

    et ton bout de code on ne sais pas a quoi il corespond

    ou tu en met plus ou tu explique mieu ce que tu désir faire.

    bye
    0
  2. xilil Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
     
    Bon je réexplique, j'ai une page html qui contient un formulaire avec différents type de questions :
    sous forme de checkbox
    sous forme de bouton radio
    sous forme de liste déroulante
    sous forme de champs texte à remplir

    le but de mon fichier php est tout d'abord de vérifier que les réponses ont bien été saisies, ensuite d'organiser le mail à envoyer avec ces réponses à une certaine adresse, puis enfin de l'nvoyer.

    Voici le code complet :
    <?Php
    $MailTo = "****@hotmail.com";
    $MailCc = "*****@hotmail.com"; 
    $MailSubject = "Nouvelle saisie sur GeoRescue";
    $MailHeader = "*****"; 
    $Envoi = 1;
    
    $champ1 = $_POST['champ1'];
    $champ2 = $_POST['champ2'];
    $champ3 = $_POST['champ3'];
    $champ4 = $_POST['champ4'];
    $champ5 = $_POST['champ5'];
    $champ6 = $_POST['champ6'];
    $champ7 = $_POST['champ7'];
    $champ8 = $_POST['champ8'];
    $champ9 = $_POST['champ9'];
    $champ10 = $_POST['champ10'];
    $champ11 = $_POST['champ11'];
    $champ12 = $_POST['champ12'];
    $champ13 = $_POST['champ13'];
    $champ14 = $_POST['champ14'];
    $champ15 = $_POST['champ15'];
    $champ16 = $_POST['champ16'];
    $champ17 = $_POST['champ17'];
    $champ18 = $_POST['champ18'];
    $champ19 = $_POST['champ19'];
    $champ20 = $_POST['champ20'];
    $champ21 = $_POST['champ21'];
    $champ22 = $_POST['champ22'];
    $champ23 = $_POST['champ23'];
    $champ24 = $_POST['champ24'];
    $champ25 = $_POST['champ25'];
    $champ26 = $_POST['champ26'];
    $champ27 = $_POST['champ27'];
    $champ28 = $_POST['champ28'];
    $champ29 = $_POST['champ29'];
    $champ30 = $_POST['champ30'];
    $champ31 = $_POST['champ31'];
    
    if ($champ1 == ""){
    echo("Vous avez oublié de répondre à la question 1 <br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Question 1 : $champ1\n";
    }
    
    $MailBody .= "Question 2 : $champ2\n";
    
    
    
    
    $MailBody .="Question 3 : ";
    $items = 3;
    for ($i = 1; $i <= $items; $i++) { 
    $MailBody .= $champ3[$i].","; 
    }
    
    
    
    $MailBody .="/n Question 4 : ";
    $items = 5;
    for ($i = 1; $i <= $items; $i++) { 
    $MailBody .= "$champ4[$i], \n"; 
    }
    
    
    
    if ($champ5 == "0"){
    echo("Vous avez oublié de répondre à la question 5 <br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Question 5 : $champ5\n";
    }
    
    if ($champ6 == "0"){
    echo("Vous avez oublié de répondre à la question 6 <br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Question 6 : $champ6\n";
    }
    
    
    $MailBody .= "Question 7 : $champ7\n";
    
    
    
    
    if ($champ8 == "0"){
    echo("Vous avez oublié de répondre à la question 8 <br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Question 8 : $champ8\n";
    }
    
    
    
    if ($champ9 == "0"){
    echo("Vous avez oublié de répondre à la question 9 <br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Question 9 : $champ9\n";
    }
    
    $MailBody .= "Question 10 : $champ10\n";
    
    
    
    
    if ($champ11 == "0"){
    echo("Vous avez oublié de répondre à la question 11 <br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Question 11 : $champ11\n";
    }
    
    
    $MailBody .="Question 12 : ";
    $items = 8;
    for ($i = 1; $i <= $items; $i++) { 
    $MailBody .= "$champ12[$i], \n"; 
    }
    
    if ($champ13 == ""){ 
    $MailBody .= "Question 13 : aucune réponse donnée\n";
    }
    else {
    $affich_champ13 = htmlentities($champ13);
    $affich_champ13 = StripSlashes($affich_champ13);
    $envoi_champ13 = StripSlashes($champ13);
    $MailBody .= "Question 13 : $envoi_champ13\n";
    }
    
    $MailBody .= "Question 14 : $champ10\n";
    
    
    
    
    if ($champ15 == "0"){
    echo("Vous avez oublié de répondre à la question 15\n");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Question 15 : $champ15\n";
    }
    
    
    $MailBody .="Question 16 : ";
    $items = 7;
    for ($i = 1; $i <= $items; $i++) { 
    $MailBody .= "$champ16[$i], \n"; 
    }
    
    $MailBody .= "Question 17 : $champ17\n";
    
    
    
    
    $MailBody .="Question 18 :" ;
    $items = 6;
    for ($i = 1; $i <= $items; $i++) { 
    $MailBody .= "$champ18[$i], \n"; 
    }
    
    
    if ($champ19 == ""){ 
    $MailBody .= "Question 19 : aucune réponse donnée\n";
    }
    else {
    $affich_champ19 = htmlentities($champ19);
    $affich_champ19 = StripSlashes($affich_champ19);
    $envoi_champ19 = StripSlashes($champ19);
    $MailBody .= "Question 19 : $envoi_champ19\n";
    }
    
    
    $MailBody .="Question 20 : ";
    $items = 7;
    for ($i = 1; $i <= $items; $i++) { 
    $MailBody .= "$champ20[$i], \n"; 
    }
    
    if ($champ21 == ""){ 
    $MailBody .= "Question 21 : aucune réponse donnée\n";
    }
    else {
    $affich_champ21 = htmlentities($champ21);
    $affich_champ21 = StripSlashes($affich_champ21);
    $envoi_champ21 = StripSlashes($champ21);
    $MailBody .= "Question 21 : $envoi_champ21\n\n";
    }
    
    
    
    $MailBody .= "Classement question 22 : \n";	
    $MailBody .= "En premier : $champ22\n";
    $MailBody .= "En deuxième : $champ23\n";
    $MailBody .= "En troisième : $champ24\n";
    $MailBody .= "En dernier : $champ25\n\n";
    
    $MailBody .= "Question 23 : $champ26\n";
    
    
    $MailBody .= "Age : $champ27\n";
    
    
    
    if ($champ28 == "0"){
    echo("Vous avez oublié de répondre à la question 25 <br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Enfant(s) : $champ28\n";
    }
    
    
    
    $MailBody .="Question 26 : ";
    $items = 10;
    for ($i = 1; $i <= $items; $i++) { 
    $MailBody .= "$champ29[$i], \n"; 
    }
    
    
    if ($champ30 == "0"){
    echo("Vous avez oublié de répondre à la question 27 <br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Question 27 : $champ30\n";
    }
    
    
    $MailBody .= "Code postal : $champ31\n";
    
    if ($Envoi == 0) { 
    echo("<p><a href=\"Javascript:history.go(-1)\"><center><strong>RETOUR</strong></center></a></p>");
    }
    else{ 
    mail($MailTo, $MailSubject, $MailBody, $MailHeader); 
    mail($MailCc, $MailSubject, $MailBody, $MailHeader); 
    echo("<p>Vos réponses ont bien été prises en compte.<br>"); 
    echo("<p>&nbsp;</p><p>&nbsp;</p><p align=\"center\"><a href=\"index.php\">Retour</strong></a></p>");
    }
    ?>
    


    Le problème est que dans le mial que je reçois, les saisies des question sous forme de checkbox comme à la question 3 champ 3 (cf le code au dessous) n'apparaissent pas. J'obtiens juste : "Question 3 : "
    Donc je suppose que la boucle que j'ai fait n'est pas bonne :

    Cette fameuse boucle :
    $MailBody .="Question 3 : ";
    $items = 3;
    for ($i = 1; $i <= $items; $i++) { 
    $MailBody .= $champ3[$i].","; 
    }
    


    De plus je veux ajouter un vérificateur pour vérifier qu'au moins une saisie a été faite.
    Ainsi qu'un vérificateur pour les boutons de type radio pour faire la vérification qu'un choix a été fait.
    Comme vous pouvez le voir lecode n'envoi pas le mail tant que la variable $Envoi == 0
    Donc j'aimerai que ces moyens de vérification ramènent à la variable $Envoi à 0 si aucune réponse choisie et sinon (else) que $Envoi == 1

    Merci d'avance
    0