mail de recommandation à la fin d'un bulletin de participation

Petit nouveau ! | 2 Messages

21 août 2008, 17:41

Bonjour,

Voilà je débute tt doucement en php.

J'ai le problème suivant :

J'ai placé un formulaire de participation à un concours sur ma page. Cela fonctionne très bien, mais j'aimerais insérez une recommandation obligatoire du site avant de cliquez sur "envoyez".

Quel script pourrais-je placer pour que

1. la recommandation soit obligatoire avant de cliquez sur envoyez
2. envoyer automatiquement l'email à l'ami avec message prédéfini et utilisant le mail de la personne qui recommande

Merci pour votre aide

Mammouth du PHP | 1353 Messages

21 août 2008, 17:50

bonjour,

Deux possibilités pour le 1/

* En javascript : avoir une case à cocher et ne faire apparaitre (ou n'activer) le submit de ton formulaire que si la case est cochée (detectable avec l attribut onchange et la value)
* En php : avoir une case à cocher et dans le traitement du formulaire vérifier que le $_POST["case_a_cocher"] existe (donc qu'elle était cochée) avant de faire le traitement, sinon retourner au formulaire avec un message d explication.

Pour le /2 c'est dans le traitement de ton formulaire, tu peux utiliser la fonction mail() de php et définir comme FROM dans le header l'adresse insérée dans le formulaire. Mais attention avec ces header "dynamique" ils peuvent etre source de faille de sécurité avec des injections, j essayerai de te retrouver des informations la dessus.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Petit nouveau ! | 2 Messages

21 août 2008, 18:32

mais voila, je crois que c'est mission impossible pour moi lol

c'est du chinois

actu mon script c'est ça :

<?php

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {


//On commence une session pour enregistrer les variables du formulaire...

session_start();

$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['champ2'] = $_POST['champ2'];
$_SESSION['champ3'] = $_POST['champ3'];
$_SESSION['champ4'] = $_POST['champ4'];
$_SESSION['champ5'] = $_POST['champ5'];
$_SESSION['champ6'] = $_POST['champ6'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];

//Enregistrement des paramètres de la case 1...
$_SESSION['case1_'][0] = "";
if (isset($_POST['case1_'][0])) {
$_SESSION['case1_'][0] = $_POST['case1_'][0];
} // Fin du if...

$_SESSION['case1_'][1] = "";
if (isset($_POST['case1_'][1])) {
$_SESSION['case1_'][1] = $_POST['case1_'][1];
} // Fin du if...

//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];

// Définir l\'icone apparaissant en cas d\'erreur...


// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;

// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}

// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {

// Addresse de réception du formulaire
$email_dest = "[email protected]";
$sujet = "Abonnement";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: Abo<[email protected]>\n";
$entetes .="Return-Path: Abo<[email protected]>\n";
$entetes .="Reply-To: Abo<[email protected]>\n";
$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
$partie_entete = "<html>\n<head>\n<title>Concours xxxxxx.ch</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";


//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Nom = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Prenom = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Adresse = " . $_SESSION['champ3'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">CP = " . $_SESSION['champ4'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Ville = " . $_SESSION['champ5'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Pays = " . $_SESSION['champ6'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">E-Mail = " . $_SESSION['zone_email1'] . "</font><br>\n";



// Fin du message HTML
$fin = "</body></html>\n\n";

$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $fin;


// Send the e-mail
if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
echo("Envoi du formulaire impossible");
exit();
} else {

// Rediriger vers la page de remerciement
header("Location:/merci1.html");
exit();
} // Fin else
} // Fin du if ($flag_erreur == 0) {
} // Fin de if POST
?>
<html>

<head>
<title>Concours xxxxxxx.ch</title><script language="JavaScript">


function verifSelection() {


if (document.mail_form.champ1.value == "") {
alert("Merci de remplir cette information")
return false
}

if (document.mail_form.champ2.value == "") {
alert("Merci de remplir cette information")
return false
}

if (document.mail_form.champ3.value == "") {
alert("Merci de remplir cette information")
return false
}

if (document.mail_form.champ4.value == "") {
alert("Merci de remplir cette information")
return false
}

if (document.mail_form.champ5.value == "") {
alert("Merci de remplir cette information")
return false
}

if (document.mail_form.champ6.value == "") {
alert("Merci de remplir cette information")
return false
}

if (document.mail_form.zone_email1.value == "") {
alert("Merci de remplir cette information")
return false
}

invalidChars = " /:,;'"

for (i=0; i < invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (document.mail_form.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.mail_form.zone_email1.focus()
return false
}
}

atPos = document.mail_form.zone_email1.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (document.mail_form.zone_email1.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

periodPos = document.mail_form.zone_email1.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.')
document.mail_form.zone_email1.focus()
return false
}

if (periodPos+3 > document.mail_form.zone_email1.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.')
document.mail_form.zone_email1.focus()
return false
}

nbrecases1 = document.mail_form.case1_.length

flag = 0

for (i = 0; i < nbrecases1 ; i++) {

if (document.mail_form.case1_.checked) {

flag = 1

}

}


} // Fin de la fonction
</script>
</head><body><form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()">
<div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong>Concours xxxxxxx.ch </strong></font></div>
<br><table align="center" width="566" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="16"><div align="center">
<font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong><?php
if ($erreur_champ1) {
echo(stripslashes($erreur_champ1));
} else {
if ($erreur_champ2) {
echo(stripslashes($erreur_champ2));
} else {
if ($erreur_champ3) {
echo(stripslashes($erreur_champ3));
} else {
if ($erreur_champ4) {
echo(stripslashes($erreur_champ4));
} else {
if ($erreur_champ5) {
echo(stripslashes($erreur_champ5));
} else {
if ($erreur_champ6) {
echo(stripslashes($erreur_champ6));
} else {
if ($erreur_email1) {
echo(stripslashes($erreur_email1));
} else {
if ($erreur_case1) {
echo(stripslashes($erreur_case1));
} else {
if ($erreur_texte1) {
echo(stripslashes($erreur_texte1));
} else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
?>
</strong></font>
</div></td>
</tr>
</table>
<p align="center"><img src="banner-concours.jpg" width="190" height="95" longdesc="/xxxxx/banner-concours.jpg"></p>
<p align="center">Participez jusqu'au 30 octobre minuit en indiquant vos coordonn&eacute;es. </p>
<p align="center">Concours sous forme de tirage au sort. Tirage au sort le 1er novembre.</p>
<p align="center">Le gagnant sera contacte personnellement. </p>
<table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Nom</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ1) {
echo($icone);
}
?>
</td>
<td><input name="champ1" type="text" value="<?=stripslashes($_SESSION['champ1']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Prenom</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ2) {
echo($icone);
}
?>
</td>
<td><input name="champ2" type="text" value="<?=stripslashes($_SESSION['champ2']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Adresse</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ3) {
echo($icone);
}
?>
</td>
<td><input name="champ3" type="text" value="<?=stripslashes($_SESSION['champ3']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">CP</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ4) {
echo($icone);
}
?>
</td>
<td><input name="champ4" type="text" value="<?=stripslashes($_SESSION['champ4']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Ville</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ5) {
echo($icone);
}
?>
</td>
<td><input name="champ5" type="text" value="<?=stripslashes($_SESSION['champ5']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Pays</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ6) {
echo($icone);
}
?>
</td>
<td><input name="champ6" type="text" value="<?=stripslashes($_SESSION['champ6']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">E-Mail</font></div></td>
<td width="30" align="center" valign="middle">
<?php
if ($erreur_email1) {
echo($icone);
}
?>
</td>
<td><input name="zone_email1" type="text" value="<?=stripslashes($_SESSION['zone_email1']);?>"></td>
</tr></table>
<table width="566" border="0" align="center"><tr>
<td valign="top"><div align="center">
<input type="reset" name="Reset" value=" Effacer ">

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 août 2008, 11:36

Modération :
gebe, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...