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

Fermé
rhoulian - 9 mars 2009 à 16:37
 rhoulian - 31 mars 2009 à 15:03
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>

10 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 mars 2009 à 21:00
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
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
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
9 mars 2009 à 16:40
remplacer ça
$headers .="From: monemail@mondomaine.com \n";
par
$headers .="From: ".$_POST['titre_email']."\n";

ça marche non?
0
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
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 mars 2009 à 20:25
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

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
0
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 mars 2009 à 22:06
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
merci Alain t'es au top !
je teste et je te dis ça
0
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 mars 2009 à 08:43
Par contre on peut beaucoup simplifier ton code.

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

@lain
0
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 mars 2009 à 21:20
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
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
rhoulian > rhoulian
12 mars 2009 à 08:38
ç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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > rhoulian
14 mars 2009 à 15:52
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 mars 2009 à 09:23
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
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