Soyez le premier à donner votre avis sur cette source.
Snippet vu 11 997 fois - Téléchargée 15 fois
functions.php <?php //fonctions relatives à la BDD //Connexion à la BDD function my_co() { mysql_connect ('localhost', 'root', ''); mysql_select_db ("pomme-poire"); } // Fonctions relatives à l'outil newsletter //Fonction de vérification d'une inscription préalable function verif_email_exists($mail) { // On compte le nombre de fois où apparait le dit mail dans la base $verif_presence = mysql_query ("SELECT mail FROM newsletter WHERE mail = '$mail'"); $verif_presence1 = mysql_fetch_array ($verif_presence); // Si le mail apparait; on renvoit la valeur true if ($verif_presence1 != NULL) { return true; } // Sinon, elle n'apparait pas, on renvoit la valeur false elseif ($verif_presence1 == NULL) { return false; } } //Fonction de vérification de format de l'email function verif_email($mail) { // On établit l'archétype d'une adresse mail en expressions régulières et on l'insère dans la variable syntaxe $syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#' ; $domain = explode('@', $email); // On compare l'adresse donnée en argument avec l'archétype; si elle correspond, on valide, sinon on renvoit la valeur false if (preg_match($syntaxe, $mail)) { if (checkdnsrr($domain[1])) { return true; } else { return false; } } } // Fonction d'inscription à la newsletter function insc_news($mail) { // Si la syntaxe d'une adresse mail est bien respectée if (verif_email($mail) == true) { // Si le test de présence de l'adresse dans la base nous renvoit false if (verif_email_exists($mail) == false) { // On conserve la date, puis on envoi l'adresse mail et la date d'inscription à la base $date_inscription = date("d/m/y"); mysql_query ("INSERT INTO newsletter VALUES('','$mail','$date_inscription') ") or die ("impossible de transmettre ces valeurs"); echo "vous voilà inscrit, vous recevrez donc les derniers articles de pomme poire abricot chaque semaine sous la forme d'un journal pdf"; } // Sinon c'est que l'adresse est déjà présente dans la BDD else { echo "vous êtes déjà inscrit à cette newsletter, en cas de problème veuillez contactez le webmaster"; } } // Sinon, c'est que le format d'adresse n'est pas valide else { echo "le format de votre adresse email ne semble pas être valide, veuillez réessayer"; } } //Fonction de désinscription de la newsletter function desinsc_news($mail) { // Si la syntaxe d'une adresse mail est bien respectée if (verif_email($mail) == true) { // Et si le test de présence de l'adresse dans la base nous confirme qu'elle y est inscrite if (verif_email_exists($mail) == true) { // Alors on demande à la base de retirer l'occurence correspondant au mail mysql_query("DELETE FROM `newsletter` WHERE `newsletter`.`mail` = '$mail' LIMIT 1"); echo "merci d'avoir été fidèle à Pomme Poire Abricot, en espérant vous retrouver bientôt parmi nos lecteurs"; } // Sinon si l'adresse n'est pas présente dans la BDD elseif (verif_email_exists($mail) == false) { echo "Vous n'êtes actuelement pas inscrit à la newsletter"; } } // Sinon, c'est que le format d'adresse n'est pas valide else { echo "Ceci n'est pas un format d'email valide"; } } //Fonctions relatives à l'envoi d'emails //Fonction relative à l'envoi de mail (passe les filtres hotmail/gmail) function email($destinataire, $sujet , $messtxt, $messhtml,$mailfrom="newsletter@pomme-poire.fr",$namefrom="http://pomme-poire.fr") { $boundary = "_".md5 (uniqid (rand())); $entete = "MIME-Version: 1.0\n"; $entete .= "X-Sender: <www.pomme-poire.fr>\n"; // Votre site $entete .= "X-Mailer: PHP\n"; $entete .= "X-auth-smtp-user: oleiade@pomme-poire.fr \n"; // Votre adresse mail $entete .= "X-abuse-contact: newsletter@pomme-poire.fr \n"; // L'adresse mail utilisée pour la newsletter $entete .= "Reply-to: $namefrom <$mailfrom>\n"; $entete .= "From:$namefrom <www-data@planet-work.com>\n"; $entete .= "Content-Type: multipart/alternative; boundary=\"$boundary\" "; $message = "--" . $boundary . "\n"; $message.= "This is a multi-part message in MIME format.\n\n"; $message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; $message .= "Content-Transfer-Encoding: quoted-printable\n\n"; $message .= $messtxt; $message .= "\n\n"; $message .= "--" . $boundary . "\n"; $message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; $message .= "Content-Transfer-Encoding: quoted-printable\n\n"; $message .= str_replace("=","=3D",$messhtml); $message .= "\n\n"; return @mail($destinataire, $sujet, $message, $entete); } //Fonction pour envoi de la newsletter function mail_newsletter() { my_co(); $adresses = mysql_query("SELECT mail FROM newsletter"); while ($adresses1 = mysql_fetch_row ($adresses)) { foreach ($adresses1 as $cle=>$valeur) { email($mail,votre sujet,votre message,votre en-tete,"",""); } } echo "votre mail a correctement été envoyé"; } mysql_close(); ?> inscription.php <html> <body> <div class="newsletter"> <div id="inscription"> <form action="inscription.php" method="post"> <input type="text" name="adresse"/> <input type="submit" value="Tenez=vous au courant" name="inscription"/> </form> </div> <div id="desinscription"> <a href="/mail-test/desinscription.php"> se désinscrire </a> </div> </div> </body> </html> <?php include ("functions.php"); //Connexion à la BDD my_co(); // On vérifie que le champs existe if ( isset($_POST['adresse']) ) { // Et on vérifie que le champs est remplit if ( $_POST['adresse'] != NULL) { // On transmet la valeur du champs dans une variable $mail = $_POST['adresse']; // Et on l'inscrit dans la BDD via la fonction: insc_news($mail); // On referme la connexion à la BDD mysql_close(); } else { echo "Veuillez entrer une adresse email"; } } ?> desinscription.php <html> <body> <form action="desinscription.php" method="post"> <input type="text" name="adresse"/> <input type="submit" value="désinscrivez-moi"> </form> </body> </html> <?php include ("functions.php"); my_co(); // Si le champs existe if (isset ($_POST['adresse'])) { // Et s'il est remplit if ($_POST != NULL) { // On récupère son contenu dans une variable $mail = $_POST['adresse']; // Et on la désinscrit de la BDD via la fonction: desinsc_news($mail); } // Sinon, c'est que le champs a été laissé vide else { echo "veuillez entrez une adresse email svp"; } } mysql_close(); ?> mail.newsletter.php <?php include ("functions.php"); mail_newsletter(); ?> envoi.php: <?php include ("functions.php"); mail_newsletter(); ?>
Merci pour ce code. Je suis un vrai débutant et je n'arrive pas à créer une bdd dans phpadmin qui corresponde à tous les champs auxquels ton code fait appel. Pourrais-tu la mettre à disposition ta BDD ?
Merci d'avance
merci de me répondre
où trouver ton ce php 5.2 ? donne moi le lien pour le télécharger merci d'avance ;)
Je me penche en ce moment meme sur le javascript pour ouvrir le formulaire d'inscription dans une nouvelle fenetre, afin d'éviter les soucis avec la gestion de l'intégration wordpress; je ferai évoluer le script en conséquence :)
Merci à tous de vos retours. Je prospecte, je prospecte...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.