Formulaire qui marche a moitié

Formulaire qui marche a moitié - PHP - Programmation

Marsh Posté le 08-08-2008 à 16:28:30    

salut  
 
j'ai un soucis avec mon formulaire et ca m'énerve ;/ :pt1cable:  
 
voici l'url : http://www.l1games.ovh.org/formulaire.php
 
Envoi du formulaire Impossible  :heink:  
 
voici le code
 
<?php
 
$email_dest = "l1games@live.fr";
 
if ($_POST['envoi']) {
 
$message_remerciement = "Votre Demande a été prise en compte";
 
// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: Nouveau Joueur<l1games@live.fr>\n";
 
 
$headers .="Content-Type: text/html; charset=iso-8859-1 \n";
 
$subject = "L1Games DMCUP";
 
$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";
 
for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
}
 
if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
}
 
if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
$partie_zone_texte = stripslashes($partie_zone_texte);
}
 
$fin = "</body></html>";
 
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;
 
// Send the e-mail
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible" );
} // Closing if !mail...
 
} // Closing if edit
?><html>
<head>
<title>Assistant d'envoi de formulaires</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript"><!-- Hide script from older browsers
function verifSelection() {if (mail_form.champ1.value == "" ) {
alert("" )
return false
} if (mail_form.champ2.value == "" ) {
alert("" )
return false
} if (mail_form.champ3.value == "" ) {
alert("" )
return false
} if (mail_form.champ4.value == "" ) {
alert("" )
return false
} if (mail_form.champ5.value == "" ) {
alert("" )
return false
} if (mail_form.zone_email.value == "" ) {
alert("" )
return false
}
 
invalidChars = " /:,;'"
 
for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
 
if (mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier." )
mail_form.zone_email.focus()
return false
}
}
 
atPos = mail_form.zone_email.value.indexOf("@",1)   // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
 
if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
 
periodPos = mail_form.zone_email.value.indexOf(".",atPos)
 
if (periodPos == -1) {     // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
 
if (periodPos+3 > mail_form.zone_email.value.length) {  // must be at least 2 characters after the  
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}} // Fin de la fonction
 
</script>
</head>
 
<body bgcolor="#000000" text="#999999" link="#FF0000">
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
  <div align="center"></div>
<p align="center">
<?php
if ($message_remerciement) {
echo("<font face=Verdana size=2>" );
echo(stripslashes($message_remerciement));
echo("</p></body></html>" );
exit();
}
?>
  <table width="566" border="0" align="center">
<p align="center"></p><tr>
      <td><font face="Verdana" size="2">Pseudo</font></td>
      <td><input name="champ1" type="text"></td>
    </tr><tr>
      <td><font face="Verdana" size="2">Guid</font></td>
      <td><input name="champ2" type="text"></td>
    </tr><tr>
      <td><font face="Verdana" size="2">Xfire</font></td>
      <td><input name="champ3" type="text"></td>
    </tr><tr>
      <td><font face="Verdana" size="2">Votre Team actuelle</font></td>
      <td><input name="champ4" type="text"></td>
    </tr><tr>
      <td><font face="Verdana" size="2">Par qui avez vous connu notre site ?</font></td>
      <td><input name="champ5" type="text"></td>
    </tr><tr>
      <td width><font face="Verdana" size="2">Votre adresse Email</font></td>
      <td width><input name="zone_email" type="text"></td>
    </tr><tr>
      <td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="5">
        <input name="nbre_zones_texte" type="hidden" value="0">
<input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="Pseudo"><input name="titre_champ2" type="hidden" value="Guid"><input name="titre_champ3" type="hidden" value="Xfire"><input name="titre_champ4" type="hidden" value="Votre Team actuelle"><input name="titre_champ5" type="hidden" value="Par qui avez vous connu notre site ?"><input name="titre_email" type="hidden" value="Votre adresse Email"></td>
      <td><div align="center">
        <font color="#000000">
<input type="submit" name="envoi" value="Envoyer">
<input type="reset" name="Reset" value="Effacer">
        </font>        </div></td>
    </tr>
  </table>
  <div align="center"></div>
</form>
</body>
</html>


Message édité par kris83400 le 08-08-2008 à 16:29:32
Reply

Marsh Posté le 08-08-2008 à 16:28:30   

Reply

Marsh Posté le 09-08-2008 à 12:25:29    

Salut,
il y a déjà un ouvbli dans ton post : les balises [*code] ça permet de mieux lire le code.
 
Dans ton formulaire, il y a une erreur de conception :

Code :
  1. <?php
  2. if ($message_remerciement) {
  3. echo("<font face=Verdana size=2>" );
  4. echo(stripslashes($message_remerciement));
  5. echo("</p></body></html>" );
  6. exit();
  7. }


C'est bizarre d'afficher le message, quelle que soit l'issue ...
Ensuite, il faudrait que, avant de faire un @mail comme un bourrin, tu testes ce que tu envoies ... Si ça se trouve c'est une erreur dans les headers. J'ai vu l'email avec ses chevrons collé au nom de l'expéditeur, essaie de les espacer. Essaie aussi les \r\n au lieu des seul \n


Message édité par NewsletTux le 09-08-2008 à 12:26:07

---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 11-08-2008 à 13:25:02    

Code :
  1. function send_email ($sender, $melsender,$message,$subject, $destinataire) { // Envoi d'un email
  2.  $headers  = 'From: "'.$sender.'"<'.$melsender.'>'."\n";
  3.     $headers .= 'Reply-To: '.$melsender."\n";
  4.     $headers .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
  5.     $headers .= 'MIME-version: 1.0\n';
  6.     $headers .= 'Content-Transfer-Encoding: quoted-printable';
  7.     return mail($destinataire, $subject, $message, $headers);
  8. }


 
L'ordre des headers, peut etre? En tout cas, je t'ai posté la fonction d'envoi d'email que j'utilise (et qui fonctionne)


---------------
arg(z) = pi /2 donc z = i, moi je prends pas
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed