suite à une grosse prise de tête avec PHP j'ai pris la douloureuse décision de générer mon formulaire de contact depuis un générateur gratuit. Il semble marcher parfaitement en local (serveur MAMP) mais mis en ligne je n'ai plus accès à mes checkbox et le lien d'envois est inerte.
Ci-joint le script à placer avant le header :
<?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("Particulier","Société");
$list['f_11']=array("Du neuf","De la rénovation");
$list['f_14']=array("Béton ciré","Une résine","Un enduit ","Une chape","Un carrelage","Autre");
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
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));
$f_4=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_4)));
$f_5=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_5)));
$f_6=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_6)));
$f_7=trim(eregi_replace("[^0-9+]", "", $f_7));
$f_8=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_8)));
$f_9=trim(eregi_replace("[^0-9\ +]", "", $f_9));
$f_10=strip_tags(trim($f_10));
$f_15=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_15)));
// Verification des champs
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>";
$errf_4=1;
}
if(strlen($f_10)<2){
$erreur.="<li><span class='txterror'>Le champ « Email » est vide ou incomplet.</span>";
$errf_10=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_10)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_10=1;
}
}
if(strlen($f_16)<2){
$erreur.="<li><span class='txterror'>Le champ « Message » est vide ou incomplet.</span>";
$errf_16=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:[email protected]\n";
for($id=0; $id<count($list['f_1']); $id++){
if($f_1[$id]==1){
$corps.="Profil : ".$list['f_1'][$id]."\n";
}
}
$corps.="Heures souhaitées : ".$f_2."\n";
$corps.="Société : ".$f_3."\n";
$corps.="Nom : ".$f_4."\n";
$corps.="Prénom : ".$f_5."\n";
$corps.="Adresse : ".$f_6."\n";
$corps.="Code Postal : ".$f_7."\n";
$corps.="Ville : ".$f_8."\n";
$corps.="Tél : ".$f_9."\n";
$corps.="Email : ".$f_10."\n";
for($id=0; $id<count($list['f_11']); $id++){
if($f_11[$id]==1){
$corps.="Travaux sur : ".$list['f_11'][$id]."\n";
}
}
$corps.="Sur une surface de : ".$f_12."\n";
$corps.="Type de pièce : ".$f_13."\n";
for($id=0; $id<count($list['f_14']); $id++){
if($f_14[$id]==1){
$corps.="Réalisation : ".$list['f_14'][$id]."\n";
}
}
$corps.="Autre : ".$f_15."\n";
$corps.="Message : ".$f_16."\n";
if(mail("[email protected]", $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>";
}
}
}
?>
Puis le script du formulaire :
<? if($ok_mail=="true"){ ?>
<p></p>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</p>
<tt><?echo nl2br(stripslashes($corps));?></tt>
<span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' id='contact' name='Form'>
<? if($erreur){ ?><span class='txterror'><font color='white'><b> ERREUR, votre message n'a pas été transmis</b></font></span><ul><?echo$erreur?></ul><?}?>
<p>Les champs marqué d'un * sont obligatoires</p>
<br />
<label>Profil* :</label>
<? for($id=0;$id<count($list['f_1']);$id++){
if($f_1[$id]==1){$ct="checked";}
print("<input ".$ct." type='checkbox' id='check' name='f_1[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_1][$id]."</span>");
unset($ct);
}?>
<br />
<label>Société :</label><input type='text' id="société" style='<?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='30' border='0'>
<br />
<label>Nom* :</label><input type='text' id="nom" style='<?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' value='<?echo stripslashes($f_4);?>' size='30' border='0'>
<label>Prénom :</label><input type='text' id="prénom" style='<?if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' value='<?echo stripslashes($f_5);?>' size='30' border='0'>
<br />
<label>Adresse :</label><input type='text' id="adresse" style='<?if($errf_6==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_6' value='<?echo stripslashes($f_6);?>' size='30' border='0'>
<br />
<label>Code Postal :</label><input type='text' id="cp" style='<?if($errf_7==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_7' value='<?echo stripslashes($f_7);?>' size='30' border='0'>
<label>Ville :</label><input type='text' id="ville" style='<?if($errf_8==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_8' value='<?echo stripslashes($f_8);?>' size='30' border='0'>
<br />
<label>Tél :</label><input type='text' id="tel" style='<?if($errf_9==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_9' value='<?echo stripslashes($f_9);?>' size='30' border='0'>
<label>Email* :</label><input type='text' id="mail" style='<?if($errf_10==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_10' value='<?echo stripslashes($f_10);?>' size='30' border='0'>
<hr />
<label>Travaux sur :</label>
<? for($id=0;$id<count($list['f_11']);$id++){
if($f_11[$id]==1){$ct="checked";}
print("<input ".$ct." type='checkbox' id='check' name='f_11[$id]' value='1' border='0'><span class='txtform'>".$list[f_11][$id]."</span>");
unset($ct);
}?>
<br />
<label>Sur une surface de :</label><input id="nom" style='width:360 <?if($errf_12==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_12' size='30'><?echo$f_12?></input>
<br />
<label>Type de pièce :</label><input id="nom" style='width:360 <?if($errf_13==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_13' size='30'><?echo$f_13?></input>
<br />
<? for($id=0;$id<count($list['f_14']);$id++){
if($f_14[$id]==1){$ct="checked";}
print("<input ".$ct." type='checkbox' id='check' name='f_14[$id]' value='1' border='0'><span class='txtform'>".$list[f_14][$id]."</span>");
unset($ct);
}?>
<br />
<label>Autre :</label><input type='text' id="nom" style='width:200 <?if($errf_15==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_15' value='<?echo stripslashes($f_15);?>' size='30' border='0'>
<br />
<label>Message* :</label><textarea style='width:360 <?if($errf_16==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_16' rows='10' cols='60'><?echo$f_16?></textarea>
<br />
<label>Heures souhaitées :</label><input type='text' id="nom" style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='30' border='0'>
<input type='submit' name='submit' id="bouton" value='' border='0'>
</form>
<? } ?>
Ayant bidouillé le second script, peut-être ai-je fait une erreur... Merci beaucoup, beaucoup d'avance pour vos conseils