Html : Système de newsletter
Résolu/Fermé
Niiko4400
Messages postés
1161
Date d'inscription
mardi 29 janvier 2008
Statut
Membre
Dernière intervention
26 mars 2009
-
11 août 2008 à 15:07
lambartillustration - 26 nov. 2010 à 12:39
lambartillustration - 26 nov. 2010 à 12:39
A voir également:
- Html : Système de newsletter
- Editeur html - Télécharger - HTML
- Html download - Télécharger - HTML
- /Var/www/html/index.html ✓ - Forum Linux / Unix
- &Nbsp html ✓ - Forum Webmastering
- [HTML] - á et les autres - Forum HTML
7 réponses
XxTitxX
Messages postés
1176
Date d'inscription
samedi 24 mai 2008
Statut
Membre
Dernière intervention
30 août 2012
246
11 août 2008 à 15:13
11 août 2008 à 15:13
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 ;
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 ;
-CCM-
Messages postés
927
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
16 juin 2013
84
11 août 2008 à 15:10
11 août 2008 à 15:10
cherche wanewsletter c'est très bien fait !!!
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
11 août 2008 à 15:23
11 août 2008 à 15:23
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
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
| ^ - ^ |
Messages postés
259
Date d'inscription
lundi 11 août 2008
Statut
Membre
Dernière intervention
15 avril 2010
36
11 août 2008 à 15:08
11 août 2008 à 15:08
utilise un serveur tiers comme hawatools
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Niiko4400
Messages postés
1161
Date d'inscription
mardi 29 janvier 2008
Statut
Membre
Dernière intervention
26 mars 2009
57
11 août 2008 à 15:18
11 août 2008 à 15:18
Waoh !
Merci a vous 2 ;)
Je vais voir MERCHI encore ;)
Merci a vous 2 ;)
Je vais voir MERCHI encore ;)
XxTitxX
Messages postés
1176
Date d'inscription
samedi 24 mai 2008
Statut
Membre
Dernière intervention
30 août 2012
246
11 août 2008 à 15:21
11 août 2008 à 15:21
Désolé, la syntaxe n'a pas été conservé avec le copier/coller du coup c'est beaucoup moins lisible.
-CCM-
Messages postés
927
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
16 juin 2013
84
11 août 2008 à 15:20
11 août 2008 à 15:20
http://phpcodeur.net/wascripts/wanewsletter/telecharger
super facile a utiliser !!!!
super facile a utiliser !!!!
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,
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,