Annonce

#2 Re : Aide technique » Envoi email depuis un formulaire vers Wanewsletter » 2006-12-14 15:34:33

Bonjour,

J'ai installé dans mon site le script qui marche nickel !!! (merci beaucoup pour l'avoir développé !)

J'utilise plusieurs formulaire php - dont le code est présenté à la fin de mon message - dans mon site (livre d'or par exemple).
Je souhaite ajouter dans les formulaires une liste déroulante ou autre chose pour laisser le choix au visiteur de s'inscrire ou non à la newsletter.
Ainsi, lorsque l'on m'envoit un message et que l'on souhaite s'inscrire, le formulaire enverrai également vers le script wanewsletter l'adresse email qui à son tour ajoute à la base de données des inscrits l'email en question.

Comment faire ? Quel code ajouter ?
Merci beaucoup de votre aide !


Partie du code juste avant le Head de la page :

<?php
include_once("antispam.php");
?>

<?php
// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
$email_webmaster = "abc123@abc123.fr";
// Rajout : Dans cette ligne remplacer example.com par le nom de votre site. Utile si vous avez plusieurs formulaires.
$titre_cache = "Mon site";
// === traitement des données du formulaire ============================================================
if (isset($_POST["envoyer"])){
// le formulaire a été soumis
$etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
if (isset($_POST["email_expediteur"])) {
$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
}
if (isset($_POST["titre"])) {
$_POST["titre"]=trim(stripslashes($_POST["titre"]));
}
if (isset($_POST["message"])) {
$_POST["message"]=trim(stripslashes($_POST["message"]));
}
// --- test de la validité des champs saisis ---
if (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expéditeur
$erreur="Saisissez votre adresse email...";
}
elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){
// l'adresse e-mail n'est pas valide
$erreur="Votre adresse e-mail n'est pas valide...";
}
elseif (empty($_POST["message"])) {
// le message est vide
$erreur="Saisissez un message...";
}
elseif (antispam_check() == false) {
// l'addition est fausse
$erreur="Résultat incorrect, veuillez réessayer !";
}
else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
$etat="ok";
}
}
else {
// --- le formulaire n'a pas été soumis ---
$etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>

Code du formulaire dans la page :

<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<p><label for="email_expediteur">Your email :</label><br />
<input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="titre">Subject :</label><br />
<input type="text" size="40" name="titre" id="titre" value="<?php
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="message">Your message :</label><br />
<textarea name="message" id="message" cols="40" rows="5"><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?></textarea>
</p>
<p>Résultat du calcul:</p><?php antispam_ins(); ?>
<p><input type="submit" name="envoyer" value="Send" />
</p>
</form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "Return-Path: ". $email_webmaster . "\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$_POST["message"],$entete)){
// mail envoyé
echo "Your message has just been sent !<br />\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Click here to send another message</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Your message couldn't be sent.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Please, try again.</a>\n";
}
}
?>

Pied de page des forums

Propulsé par FluxBB