Galère et encore galère...aide formulaire php

rhoulian -  
 rhoulian -
Bonjour à tous, chers cerveaux bien remplis de codes php !

Voilà mon souci: je cherche à créer un formulaire php tout simple dans lequel la personne entre juste son email ; de là, l'email est envoyé sur ma boite et le message contient bien l'information rentrée dans le champ email.

Mon problème est que je souhaiterais que ce soit l'adresse rentrée par le visiteur qui apparaisse en tant qu'expéditeur du message, et non la mienne...ça doit pas être si compliqué mais j'ai beau cherché depuis 2 jours maintenant je suis toujours paumé et je commence à avoir les yeux qui tombent à force de resté planté...

j'utilise ce code qui marche parfaitement bien ;-) si une âme charitable veut bien m'aider, je lui offre l'apéro sur aix en provence !

Merci

Voilà le code:

<?php

$email_dest = "postmaster@enhautdelaffiche.com";

if ($_POST['envoi']) {

$message_remerciement = "Merci, votre pré-inscription a bien été prise en compte";

// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: monemail@mondomaine.com \n";
$headers .="Content-Type: text/html; charset=iso-8859-1 \n";

$subject = "pre-inscription";

$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.zone_email.value == "") {
alert("Veuillez entrer votre email svp")
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>
<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 width><font face="Verdana" size="2">Entrez votre 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="0">
<input name="nbre_zones_texte" type="hidden" value="0">
<input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_email" type="hidden" value="Entrez votre email"></td>
<td><div align="center">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer">
</div></td>
</tr>
</table>
<div align="center"></div>
</form>
</body>
</html>
Configuration: Windows XP
Internet Explorer 6.0

10 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Pour faire ce que tu veux:

    - par la fonction mail() tu envoie le mail à toi avec expéditeur ton adresse mail

    et par une deuxième fonction mail tu envoie l'accusé de réception à l'adreese rentrée par l'utilisateur avec expéditeur toujours ton adresse mail.
    1
    1. rhoulian
       
      Merci de ta générosité Alain ça fait vraiment plaisir ;-)

      Si je n'abuse pas trop, peut-être pourrais-tu m'indiquer comment modifier le code que j'ai posté plus haut ?
      Quoiqu'il arrive tu as gagné un apéro à aix !
      mon adresse rhoulian <at> free.fr
      0
  2. NookZ Messages postés 2376 Statut Membre 514
     
    remplacer ça
    $headers .="From: monemail@mondomaine.com \n";
    par
    $headers .="From: ".$_POST['titre_email']."\n";

    ça marche non?
    0
  3. rhoulian
     
    Merci de ta réponse...mais ça ne change rien !

    Je précise que je fais ça sur mes pages perso free

    merci merci merci !
    0
    1. rhoulian
       
      En fait, si la ligne:

      $headers .="from: xxxxxx@free.fr \n";

      contient une adresse email valide (j'ai essayé avec une des miennes), ça marche, je reçois bien le message avec "xxxxxx@free.fr" comme expéditeur

      par contre si j'essaye avec ton code il me met automatiquement l'adresse de mon compte pages perso free.

      C'est vraiment trop con d'être si pret du but et de pas trouver

      merci encore à toi, et à ceux qui pourront peut etre m'aider
      0
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    Ca veut dire que tu veux que la fonction mail() envoye le mail ( à toi en l'occurrence, mais ça pourait être à qq 'un d'autre) avec une adresse d'expéditeur différente de celle de ton compte.

    Ce serait trop facile pour les spammeurs !

    Justement c'est bloqué maintenant.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. rhoulian
     
    je te suis Alain...mais c'est quand même débile un spammeur
    logiquement mon formulaire est fait pour que la personne rentre son email, et qu'elle en reçoive un de confirmation (tout simpe, c'est ovh qui s'en charge tout seul) c'est pour ça que je veux que l'expéditeur soit la personne qui a donné son email dans le champ du formulaire

    alors je vais devoir faire un simple formulaire en HTML et c'est moi qui vais me faire spammer la gueule ?
    merci beaucoup alain, j'espere que malgré tout la situation n'est pas complètement bloquée
    0
    1. rhoulian
       
      D'autant que si je passe par du html uniquement, ça devient plus compliqué pour la personne qui m'écrit car elle doit avoir un logiciel de messagerie sous la main
      0
  7. Alain_42 Messages postés 5413 Statut Membre 904
     
    Merci mai sAix pour moi c'est un peu loin

    une piste:

    <?php
    
    $email_dest = "postmaster@enhautdelaffiche.com";
    
    if ($_POST['envoi']) {
    
    $message_remerciement = "Merci, votre pré-inscription a bien été prise en compte";
    
    // E-mail headers:
    		//attention chez OVH il faut terminer les lignes par \n  et pas par \r\n
    		$headers  = "Return-path: monemail@mondomaine.com "."\n";
    		$headers  .= "From: \"Ton Nom\"<monemail@mondomaine.com >"."\n";
    		$headers .= "MIME-Version: 1.0"."\n";
    		$headers .= "Content-Type: text/html; charset=\"iso-8859-1\""."\n"; 
    		$headers .= "Content-Transfer-Encoding: 8bit"."\n"; 
    
    
    $subject = "pre-inscription";
    
    $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...
    } 
    else{
    	//si mail bien envoyé à toi on fait un mail AR à l'utilisateur
    	mail($_POST['zone_email'],"Confirmatin inscription",$message_remerciement,$headers)
    }
    } // 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.zone_email.value == "") {
    alert("Veuillez entrer votre email svp")
    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>
    <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 width><font face="Verdana" size="2">Entrez votre 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="0">
    <input name="nbre_zones_texte" type="hidden" value="0">
    <input name="nbre_zone_email" type="hidden" value="1">
    <input name="titre_email" type="hidden" value="Entrez votre email"></td>
    <td><div align="center">
    <input type="reset" name="Reset" value="Effacer">
    <input type="submit" name="envoi" value="Envoyer">
    </div></td>
    </tr>
    </table>
    <div align="center"></div>
    </form>
    </body>
    </html>
    0
  8. rhoulian
     
    merci Alain t'es au top !
    je teste et je te dis ça
    0
    1. rhoulian
       
      Alors bonne nuit ?!
      Je suis désolé mais le code contient des erreurs de syntaxe apparemment ; je vais chercher à le nettoyer (je ne comprends pas encore grand chose à ce langage, mais si quelqu'un peut jeter un coup d'oeil (Alain a déjà beaucoup donné ;-)

      alors voilà le code: (je mets la page entière nommée "contact.php"

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <title>Document sans nom</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <?php

      $email_dest = "mon adresse@mondomaine.com";

      if ($_POST['envoi']) {

      $message_remerciement = "Merci, votre pré-inscription a bien été prise en compte";

      // E-mail headers:
      //attention chez OVH il faut terminer les lignes par \n et pas par \r\n
      $headers = "Return-path: mon adresse@mondomaine.com "."\n";
      $headers .= "From: \"Julien\"<mon adresse@mondomaine.com >"."\n";
      $headers .= "MIME-Version: 1.0"."\n";
      $headers .= "Content-Type: text/html; charset=\"iso-8859-1\""."\n";
      $headers .= "Content-Transfer-Encoding: 8bit"."\n";


      $subject = "pre-inscription";

      $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...
      }
      else{
      //si mail bien envoyé à toi on fait un mail AR à l'utilisateur
      mail($_POST['zone_email'],"Confirmatin inscription",$message_remerciement,$headers);
      } // 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.zone_email.value == "") {
      alert("Veuillez entrer votre email svp")
      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>
      <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 width><font face="Verdana" size="2">Entrez votre 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="0">
      <input name="nbre_zones_texte" type="hidden" value="0">
      <input name="nbre_zone_email" type="hidden" value="1">
      <input name="titre_email" type="hidden" value="Entrez votre email"></td>
      <td><div align="center">
      <input type="reset" name="Reset" value="Effacer">
      <input type="submit" name="envoi" value="Envoyer">
      </div></td>
      </tr>
      </table>
      <div align="center"></div>
      </form>
      </body>
      </html>
      0
  9. Alain_42 Messages postés 5413 Statut Membre 904
     
    Par contre on peut beaucoup simplifier ton code.

    Si j'ai un moment un de ces soirs je te ferait ça.

    @lain
    0
    1. rhoulian
       
      Merci Alain, tu en as déjà fait beaucoup...

      Peut-être que d'autres se montreront aussi sympa d'ici ce soir ?
      Mes propositions d'apéro tiennent toujours ;-)
      0
  10. Alain_42 Messages postés 5413 Statut Membre 904
     
    je t'ai beaucoup simplifié ton code, je pense que tu avais fait ça avec un génératuer, plus adapté quand tu as beaucoup de champ, a première vue tu n'en a qu'un (zone_email).

    Essayes comme ça:
    si besoin tu m'envoie un MP

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Formulaire pr&eacute;-inscription</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript">
    //une autre methode pour verifier email, beaucoup plus courte
    function verifSelection(id) {
    	var champ_email=document.getElementById(id);
    	if(champ_email.value == "")  {
    		alert("Veuillez entrer votre adresse email");
    		document.mail_form.zone_email.focus();
    		return false;
    	}
    	var exp=new RegExp("^[\\w\\-]+(\\.[\\w\\-]+)*@[\\w\\-]+(\\.[\\w\\-]+)*\\.[\\w\\-]{2,}$", "i");
    	if(champ_email.value !="" && !exp.test(champ_email.value)){
    		alert("Adresse email non valide ");
    		document.mail_form.zone_email.focus();
    	return false;
    	}
    return true;
    } // Fin de la fonction
    
    </script>
    </head>
    <body>
    <?php
    //il vaut mieux mettre le php a ce niveau la plutot que dans la partie <head>
    //parametres:
    $email_dest = "mon adresse@mondomaine.com";
    $message_remerciement = "Merci, votre pr&eacute;-inscription a bien &eacute;t&eacute; prise en compte";
    
    if (isset($_POST['envoi'])) {
    	//recup des valeurs postees
    	$adresse_mail=htmlentities($_POST['zone_email']); //ça c'est pour protéger des caractères dangereux
    
    	// E-mail headers:
    	//attention chez OVH il faut terminer les lignes par \n et pas par \r\n
    	$headers = "Return-path: mon adresse@mondomaine.com "."\n"; //a modifier pour toi
    	$headers .= "From: \"Julien\"<mon adresse@mondomaine.com >"."\n";
    	$headers .= "MIME-Version: 1.0"."\n";
    	$headers .= "Content-Type: text/html; charset=\"iso-8859-1\""."\n";
    	$headers .= "Content-Transfer-Encoding: 8bit"."\n";
    
    
    	$subject = "pre-inscription";
    
    	$corps_du_mail = "<html><head>
    	<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
    	</head>
    	<body bgcolor=#FFFFFF>";
    	// pas besoin de ces boucles tu connais ton formulaire, donc tu peux recuperer ce que tu t'attend à recevoir
    	//dans ton cas tu n'as qu'un seul champ "zone_email"
    	/*
    	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 = "c" . $_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);
    	}
    	*/
    
    	$corps_du_mail.="<font face='Verdana' size='2' color='#003366'>Email pre-inscription: </font>";
    	$corps_du_mail.="<font face='Verdana' size='2' color='#003366'>".$adresse_mail;
    	$corps_du_mail .= "</body></html>";
    
    	// Send the e-mail
    	if (!mail($email_dest,$subject,$corps_du_mail,$headers)) {
    		echo("Envoi du formulaire impossible");
    	}
    	else{
    		//si mail a bien ete envoyé à toi on fait un mail AR à l'utilisateur
    		mail($_POST['zone_email'],"Confirmation inscription",$message_remerciement,$headers);
    				
    		// et affichage phrase de remerciements à l'utilisateur:
    		echo "<font face=Verdana size=2>".stripslashes($message_remerciement)."</font>";;
    
    	}
    } // fin du if envoi
    else{ //si pas envoi (premier affichage) on affiche le formulaire
    ?>
    	<form name="mail_form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" onSubmit="return verifSelection('zone_email');">
    		<div align="center"></div>
    		<p align="center">
    		
    		<table width="566" border="0" align="center">
    			<p align="center"></p>
    		<tr>
    			<td width><font face="Verdana" size="2">Entrez votre email</font></td>
    			<td width><input type="text" name="zone_email" id="zone_email" value="" ></td>
    		</tr>
    		<tr>
    			<!-- ne sert a rien 
    			<td valign="top">
    				<input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="0">
    				<input name="nbre_zones_texte" type="hidden" value="0">
    				<input name="nbre_zone_email" type="hidden" value="1">
    				<input name="titre_email" type="hidden" value="Entrez votre email">
    			</td>
    			-->
    			<td colspan="2"> <!-- centre sur deux colonnes -->
    				<div align="center">
    					<input type="reset" name="Reset" value="Effacer">
    					<input type="submit" name="envoi" value="Envoyer">
    				</div>
    			</td>
    		</tr>
    		</table> 
    		
    	</form>
    <?php
    } //fin du else pas envoi
    ?>	
    </body>
    </html>
    
    0
    1. rhoulian
       
      alain t'es vraiment un mec super...j'ai beaucoup de bonne volonté mais je pite rien au php heureusement que tu es là vraiment merci merci merci je sais pas comment te remercier

      je teste ça très bientot
      merci !
      0
      1. rhoulian > rhoulian
         
        ça marche nickel ! faut vraiment que je me mette au php c'est terrible...
        Un grand merci à Alin, une personne de qualité sur ce forum
        0
      2. Alain_42 Messages postés 5413 Statut Membre 904 > rhoulian
         
        Bonjour,

        Je me suis permis de jeter un oeil sur ton site "enhautdelaffiche.free.fr"

        j'ai vu que tu avais intégré le formulaire pour la pre-inscription de chacune des catégories.

        mais si je puis me permettre, lorsque tu reçois le mail tu ne sais pas à quelle catégorie il correspond alors si tu veux je t'ai un tout petit peu modifié le code pour passer la catégorie en champ caché: libre à toi de l'utiliser ou pas

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
        <html>
        <head>
        <title>Formulaire pr&eacute;-inscription</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script language="JavaScript">
        //une autre methode pour verifier email, beaucoup plus courte
        function verifSelection(id) {
        	var champ_email=document.getElementById(id);
        	if(champ_email.value == "")  {
        		alert("Veuillez entrer votre adresse email");
        		document.mail_form.zone_email.focus();
        		return false;
        	}
        	var exp=new RegExp("^[\\w\\-]+(\\.[\\w\\-]+)*@[\\w\\-]+(\\.[\\w\\-]+)*\\.[\\w\\-]{2,}$", "i");
        	if(champ_email.value !="" && !exp.test(champ_email.value)){
        		alert("Adresse email non valide ");
        		document.mail_form.zone_email.focus();
        	return false;
        	}
        return true;
        } // Fin de la fonction
        
        </script>
        </head>
        <body>
        <?php
        //il vaut mieux mettre le php a ce niveau la plutot que dans la partie <head>
        //parametres:
        $email_dest = "mon adresse@mondomaine.com";
        $message_remerciement = "Merci, votre pr&eacute;-inscription a bien &eacute;t&eacute; prise en compte";
        
        if (isset($_POST['envoi'])) {
        	//recup des valeurs postees
        	$adresse_mail=htmlentities($_POST['zone_email']); //ça c'est pour protéger des caractères dangereux
        	<code>$categorie=htmlentities($_POST['categorie']); //on recuperes la categorie


        // E-mail headers:
        //attention chez OVH il faut terminer les lignes par \n et pas par \r\n
        $headers = "Return-path: mon adresse@mondomaine.com "."\n"; //a modifier pour toi
        $headers .= "From: \"Julien\"<mon adresse@mondomaine.com >"."\n";
        $headers .= "MIME-Version: 1.0"."\n";
        $headers .= "Content-Type: text/html; charset=\"iso-8859-1\""."\n";
        $headers .= "Content-Transfer-Encoding: 8bit"."\n";


        $subject = "pre-inscription";

        $corps_du_mail = "<html><head>
        <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
        </head>
        <body bgcolor=#FFFFFF>";

        $corps_du_mail.="<font face='Verdana' size='2' color='#003366'>Catégorie: </font>";
        $corps_du_mail.="<font face='Verdana' size='2' color='#003366'>$categorie </font><br /><br />";

        $corps_du_mail.="<font face='Verdana' size='2' color='#003366'>Email pre-inscription: </font>";
        $corps_du_mail.="<font face='Verdana' size='2' color='#003366'>".$adresse_mail;
        $corps_du_mail .= "</body></html>";

        // Send the e-mail
        if (!mail($email_dest,$subject,$corps_du_mail,$headers)) {
        echo("Envoi du formulaire impossible");
        }
        else{
        //si mail a bien ete envoyé à toi on fait un mail AR à l'utilisateur
        mail($_POST['zone_email'],"Confirmation inscription",$message_remerciement,$headers);

        // et affichage phrase de remerciements à l'utilisateur:
        echo "<font face=Verdana size=2>".stripslashes($message_remerciement)."</font>";;

        }
        } // fin du if envoi
        else{ //si pas envoi (premier affichage) on affiche le formulaire
        ?>
        <form name="mail_form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" onSubmit="return verifSelection('zone_email');">
        <div align="center"></div>
        <p align="center">

        <table width="566" border="0" align="center">
        <p align="center"></p>
        <tr>
        <td width><font face="Verdana" size="2">Entrez votre email</font></td>
        <td width><input type="text" name="zone_email" id="zone_email" value="" ></td>
        </tr>
        <tr>
        <td colspan="2"> <!-- centre sur deux colonnes -->
        <div align="center">
        <!-- tu rajoutes cet input champ caché dans chacun de tes formulaires des catégories en modifiant la value -->
        <input type="hidden" name="categorie" value="Pop-Rockers">

        <input type="reset" name="Reset" value="Effacer">
        <input type="submit" name="envoi" value="Envoyer">
        </div>
        </td>
        </tr>
        </table>

        </form>
        <?php
        } //fin du else pas envoi
        ?>
        </body>
        </html>
        </code>
        0
  11. Alain_42 Messages postés 5413 Statut Membre 904
     
    Merci pour le compliment.

    Un site pas mal pour apprendre le php:

    www.siteduzero.com

    il y en a d'autres bien sur

    Bonne prog

    @lain
    0
    1. rhoulian
       
      Salut à toi Alain
      En fait j'ai pu faire sans (mon mac me permet de trier les messages selon le titre, l'objet etc... sympa !)

      Merci de ton aide en tout cas, tu as vraiment bien assuré

      à plus
      0