Envoi d'informations formulaire avec PHP

Fermé
xilil Messages postés 16 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 2 février 2018 - 30 janv. 2008 à 15:42
xilil Messages postés 16 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 2 février 2018 - 30 janv. 2008 à 16:58
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

2 réponses

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
xilil Messages postés 16 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 2 février 2018
30 janv. 2008 à 16:58
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