Galère et encore galère...aide formulaire php
rhoulian
-
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>
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>
A voir également:
- Galère et encore galère...aide formulaire php
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Confirmer le nouvel envoi du formulaire err_cache_miss ✓ - Forum Access
10 réponses
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.
- 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.
remplacer ça
$headers .="From: monemail@mondomaine.com \n";
par
$headers .="From: ".$_POST['titre_email']."\n";
ça marche non?
$headers .="From: monemail@mondomaine.com \n";
par
$headers .="From: ".$_POST['titre_email']."\n";
ça marche non?
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 !
Je précise que je fais ça sur mes pages perso free
merci merci merci !
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
$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
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.
Ce serait trop facile pour les spammeurs !
Justement c'est bloqué maintenant.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
Merci mai sAix pour moi c'est un peu loin
une piste:
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>
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>
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>
Par contre on peut beaucoup simplifier ton code.
Si j'ai un moment un de ces soirs je te ferait ça.
@lain
Si j'ai un moment un de ces soirs je te ferait ça.
@lain
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
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é-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é-inscription a bien été 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>
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
// 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>
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é-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é-inscription a bien été 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>
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