Html : Système de newsletter

Résolu
Niiko4400 Messages postés 1171 Statut Membre -  
 lambartillustration -
Bonjour,
Voila je suis a la recherche d'un code pour faire un système de newletter ...

Si quelqu'un peut m'aider sa serai sympa mechi :D

--
En faire trop, fini toujours par payer ! Le truc c'est qu'il faut être patient 
Configuration: Windows XP
Firefox 3.0

7 réponses

  1. XxTitxX Messages postés 1249 Statut Membre 246
     
    Il te faut 5 fichiers en supposant que tu as déjà un CSS.

    mail.php

    <?php

    // Parametres de la base de données mysql
    // à remplacer par les vôtres
    define('DB_SERVER', 'localhost');
    define('DB_SERVER_USERNAME', 'root');
    define('DB_SERVER_PASSWORD', 'motdepasse');
    define('DB_DATABASE', 'votre_base');

    // Configuration des infos expéditeur de la newsletter
    define('EXPEDITEUR_NOM', 'Newsletter de example.com');
    define('EXPEDITEUR_EMAIL', 'webmaster@example.com');

    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
    DB_SERVER_PASSWORD);
    // sélection de la base de données
    mysql_select_db(DB_DATABASE,$connect);

    // Informations d'entête du mail:
    $headers ="MIME-Version: 1.0\r\n";
    $headers .='From: ' . EXPEDITEUR_NOM;
    $headers .=' <' . EXPEDITEUR_EMAIL . ">\r\n";
    $headers .='Reply-To: '. EXPEDITEUR_EMAIL ."\r\n";
    $headers .='Content-Type: text/plain; ';
    $headers .='charset="iso-8859-1"'."\r\n";
    $headers .="Content-Transfer-Encoding: 8bit\r\n";
    $headers .='X-Mailer:PHP/' . phpversion() . "\r\n";

    // On ôte les slashes ajoutés par le passage en variable POST
    $message = stripslashes($_POST['message']);
    $sujet = stripslashes($_POST['sujet']);

    // On ajoute un lien de desinscription en bas de chaque message
    $message .= "\n\n\nVous recevez cet email car vous êtes
    abonné à la newsletter de monsite.com. Si vous ne souhaitez
    plus recevoir ce genre de message, vous pouvez utiliser le
    lien suivant pour vous désabonner :
    http://www.monsite.com/inscription.php, et utilisez
    l'option se désabonner.";

    // on selectionne tous les emails de la base de donnée
    $req=mysql_query("SELECT email FROM newsletter");
    // On envoi la lettre d'info à tous les emails
    // Boucle while pour parcourir les enregistrements
    // et envoi avec la fonction mail() placée dans la boucle...
    while ($res = mysql_fetch_array($req))
    {
    // Les variables sujet et message sont récupérés
    // via le formulaire d'envoi
    $retval = mail($res['email'],$sujet,$message,$headers);
    // On affiche un message OK ou ERREUR pour chaque email
    echo 'Envoi à ' . $res['email'] . ' : ';
    if ($retval) {
    echo 'OK<br>';
    } else {
    echo 'ERREUR<br>';
    }
    }

    // On ferme la connection
    mysql_close();
    ?>

    envoi.html

    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <title>Envoi de newsletter</title>
    <link rel="stylesheet" type="text/css" href="../style.css" />
    </head>

    <body>
    <form method="post" action="mail.php">
    <h1>Envoi d'une newsletter aux membres</h1>
    <table width="445" class="encadre">
    <tr>
    <th>Sujet :</th>
    <td>
    <input type="text" name="sujet" size="44" />
    </td>
    </tr>
    <tr>
    <th>Message :</th>
    <td>
    <textarea name="message" rows="18" cols="42"></textarea>
    </td>
    </tr>
    <tr>
    <td>
    <input type="submit" value="Envoyer la newsletter" />
    </td>
    <td>
    <input type="reset" value="Réinitialiser" />
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    formulaire.html

    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <title>Inscription à la newsletter</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>

    <body>
    <form method="post" action="inscription.php">
    <h1>Inscription à la newsletter</h1>
    <table width="500" border="0" class="encadre">
    <tr>
    <th>Adresse email : </th>
    <td><input type="text" name="email" size="40" /></td>
    </tr>
    <tr>
    <th>Nom : </th>
    <td><input type="text" name="nom" size="40" /></td>
    </tr>
    <tr>
    <th>Prénom : </th>
    <td><input type="text" name="prenom" size="40" /></td>
    </tr>
    <tr>
    <td> </td>
    <td>
    <input name="action" type="radio" value="abo"
    checked="checked" />
    S'abonner
    <input type="radio" name="action" value="desabo" />
    Se désabonner
    </td>
    </tr>
    <tr>
    <td> </td>
    <td>
    <input type="submit" name="valid" value="Valider" />
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    inscription.php

    <?php

    // Parametres de la base de données mysql
    // à remplacer par les vôtres
    define('DB_SERVER', 'localhost');
    define('DB_SERVER_USERNAME', 'root');
    define('DB_SERVER_PASSWORD', 'motdepasse');
    define('DB_DATABASE', 'votre_base');

    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
    DB_SERVER_PASSWORD);
    // sélection de la base de données
    mysql_select_db(DB_DATABASE,$connect);

    if (isset($_POST['action'])) $action=$_POST['action'];

    // vérification du bouton radio coché
    // si abonnement est coché, on insere les données dans la base
    if ($action == "abo") {
    // strtolower() pour inserer l'email en minuscule.
    // addslashes() pour proteger les données pour mysql
    $email=addslashes(strtolower($_POST['email']));
    $nom=addslashes($_POST['nom']);
    $prenom=addslashes($_POST['prenom']);
    // insertion des infos dans la base pour l'inscription
    $sql = "INSERT INTO newsletter
    VALUES('','".$email."', '".$nom."' ,'".$prenom."')";
    $req = mysql_query($sql);
    // Enfin on affiche un message de confirmation
    if ($req) {
    $msg = "Votre abonnement à la newsletter ";
    $msg .= "à bien été pris en compte";
    } else {
    $msg = "L'erreur suivante s'est produite : ";
    $msg .= mysql_error();
    $msg .= "<br><br>Veuillez contacter le ";
    $msg .= "webmaster du site.";
    }
    echo $msg;

    // sinon on efface dans la base pour la désinscription
    } else if ($action == "desabo") {
    $email=htmlentities(strtolower($_POST['email']));
    $sql = "DELETE FROM newsletter WHERE email='".$email."'";
    $req = mysql_query($sql);
    // Enfin on affiche un message de confirmation
    if ($req) {
    $msg = "Vous n'êtes plus abonné à la newsletter.";
    } else {
    $msg = "L'erreur suivante s'est produite : ";
    $msg .= mysql_error();
    $msg .= "<br><br>Veuillez contacter le webmaster.";
    }
    echo $msg;
    }

    // fermeture de la connexion à la base de données
    mysql_close();
    ?>

    table.sql

    CREATE TABLE newsletter(
    id INT(11) NOT NULL auto_increment,
    email VARCHAR(70),
    nom VARCHAR (50) not null,
    prenom VARCHAR (50) not null,
    PRIMARY KEY(id)
    ) TYPE=InnoDB AUTO_INCREMENT=1 ;
    7
  2. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    cherche wanewsletter c'est très bien fait !!!
    1
  3. dugenou Messages postés 6262 Statut Contributeur 1 455
     
    Bonjour,

    Il y a un script assez sympa et très simple (sans base de données), à cette adresse :

    http://www.phpscripts-fr.net/scripts/scripts.php?cat=MailingList+%2F+NewsLetter

    My Newsletter v1.0a par Matthieu Nicolescu

    http://www.phpscripts-fr.net/scripts/download.php?id=186
    1
  4. | ^ - ^ | Messages postés 320 Statut Membre 36
     
    utilise un serveur tiers comme hawatools
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Niiko4400 Messages postés 1171 Statut Membre 57
     
    Waoh !
    Merci a vous 2 ;)

    Je vais voir MERCHI encore ;)
    0
    1. XxTitxX Messages postés 1249 Statut Membre 246
       
      Désolé, la syntaxe n'a pas été conservé avec le copier/coller du coup c'est beaucoup moins lisible.
      0
  7. lambartillustration
     
    bonjour, super "tuto"

    cependant, j'ai un souci. Si j'arrive à faire sorte que l'inscription fonctionne (les données sont bien rentrées dans la base via ton formulaire), lorsque j'utilise le php "envoie" cela ne fonctionne pas. il me reconduit bien sur la page "mail.php" mais cette dernière est vide et je ne reçois rien....

    As-tu une solution ? As-tu besoin de mon code ?

    Cordialement,
    0