Problème avec mon formulaire de case à cocher !

Fermé
Profil bloqué - Modifié par pijaku le 22/11/2013 à 10:11
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 25 nov. 2013 à 17:07
Bonjour,
J'ai un petit et sérieux problème, j'ai créé un formulaire PHP qui se compose d'une case à coché de deux choix, mais quant je veux envoyer le mail, le formulaire me demande de faire entrer un choix , que je l'ai déjà enter, je sais pas d'où vient le blocage?

Merci de me venir en aide, car je sais plus quoi faire ?
Voici le script Php:

-----------------------------

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n'êtes pas certain de ce que vous faites !
$list['f_1']=array("oui","non");
if(isset($_POST['submit'])){
 $erreur="";
 // Nettoyage des entrées
 while(list($var,$val)=each($_POST)){
 if(!is_array($val)){
  $$var=strip_tags($val);
 }else{
  while(list($arvar,$arval)=each($val)){
    $$var[$arvar]=strip_tags($arval);
   }
  }
 }
 // Formatage des entrées
 // Verification des champs
 if(!$f_1){
  $erreur.="<li><span class='txterror'>Le champ « Type de choix » requiert au moins une sélection.</span>";
  $errf_1=1;
 }
 if($erreur==""){
  // Création du message
  $titre="Message de votre site";
  $tete="From:Site@Monsite.com\n";
  for($id=0; $id<count($list['f_1']); $id++){
   if($f_1[$id]==1){
    $corps.="Type de choix : ".$list['f_1'][$id]."\n";
   }
  }
  if(mail("contact@monsite.com", $titre, stripslashes($corps), $tete)){
   $ok_mail="true";
  }else{
   $erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
  }
 }
}
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ma page</title>
</head>

<body>
<? if($ok_mail=="true"){ ?>
 <table width='100%' border='0' cellspacing='1' cellpadding='1'>
  <tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
  <tr><td> </td></tr>
  <tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
  <tr><td> </td></tr>
  <tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
 </table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b> ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Type de choix* :</span></td><td>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_1']);$id++){
if($f_1[$id]==1){$ct="checked";}
print("<tr><td><input ".$ct." type='checkbox' name='f_1[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_1][$id]."</span></td></tr>");
unset($ct);
}?>
</table>
</td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
<? } ?>
</body>

</html>

1 réponse

mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
25 nov. 2013 à 17:07
Bonjour,

On veut bien vous aider... mais c'est difficilement lisible. On n'utilise plus <table> pour la mise en page. A éviter ab-so-lu-ment! rendu meilleur et plus facile à maintenir avec un chouille de code css....

Sinon pour répondre à votre question, je dirai que ceci:

name='f_1[$id]'

dans votre input n'est pas heureux. Il serait préférable d'avoir un nom bien clair:

<input type="checkbox" name=''accord_client" value="1"/>

moi je dis ça..... Histoire de dire....

Cordialement
0