begin process at 2010 02 10 12:10:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

E-Mail / Messagerie

 > NEWSLETTER: FORMULAIRE D'INSCRIPTION ET ENVOI. HTMLAREA ET SOURCE 22457

NEWSLETTER: FORMULAIRE D'INSCRIPTION ET ENVOI. HTMLAREA ET SOURCE 22457


 Information sur la source

Note :
8,25 / 10 - par 8 personnes
8,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :E-Mail / Messagerie Niveau :Débutant Date de création :15/12/2004 Date de mise à jour :20/03/2005 17:50:28 Vu / téléchargé :15 505 / 2 289

Auteur : stepibou

Ecrire un message privé
Site perso
Commentaire sur cette source (51)
Ajouter un commentaire et/ou une note

 Description

Inscription et désinscription à la newsletter.
avec affichage du nombre d'inscrits, partie admin.
vérification des champs, et des doublons,
et verification champ mail, et email de confirmation en option.
Personnalisation et envoi de newsletter avec htmlarea.
presque complete, j'attend vos suggestions.

merci aux auteurs des sources :
www.phpcs.com/code.aspx?id=22457 de romalafrite
www.phpcs.com/code.aspx?ID=22503 de minta
www.phpcs.com/code.aspx?ID=26383 de redfo1
et mavounet.

bientot gestion de pieces jointes...

Source

  • bouts de code :
  • // desinscription
  • if (isset($_GET['maildes']) && isset($_GET['pseudes']) ) {//en cas de clic dans la newsletter
  • $maildes=$_GET['maildes'];
  • $pseudes=$_GET['pseudes'];
  • mysql_select_db($sql_bdd, $dbprotect) or die("Unable to select database");
  • $resultat = mysql_query("SELECT * FROM newsletter2 WHERE courriel = '$maildes' AND pseud = '$pseudes'");
  • if(false!=($ligne = mysql_fetch_array ($resultat))){// Si l'e-mail est dans la base
  • $query = "UPDATE `newsletter2` SET `privilege`='desinsc' WHERE courriel='$maildes' AND pseud='$pseudes' LIMIT 1";
  • mysql_query($query);
  • header("Location:inscription.php?delete=ok");
  • }
  • }
  • // ------ AFFICHAGE DU NOMBRE D'INSCRINTS --------
  • $nb=0;
  • mysql_select_db($sql_bdd, $dbprotect);
  • $query_users = "SELECT * FROM newsletter2 WHERE `privilege` = 'user' ORDER BY id ASC"; // renvoi les données triées(par id croissant)
  • $users = mysql_query($query_users, $dbprotect) or die(mysql_error());
  • $row_users = mysql_fetch_assoc($users);
  • do { $nb++; }
  • while ($row_users = mysql_fetch_assoc($users));
  • ?>
  • <p align="center"> <?php echo "$nb"; ?> inscrit<?php if ( $nb!=0 && $nb!=1 ) echo 's'; ?> à la newsletter </p>
  • // finalement on definit la fonction de l'analyse de base de donnéés
  • function administration($pseudov,$email)
  • {
  • require("configuration/config[1].inc.php");
  • mysql_select_db($sql_bdd, $dbprotect);
  • $verif_query=sprintf("SELECT * FROM newsletter2 WHERE courriel='$email' AND pseud='$pseudov'"); // requête
  • $verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
  • $row_verif = mysql_fetch_assoc($verif);
  • $utilisateur = mysql_num_rows($verif);
  • if ($utilisateur) { // On test s'il y a un utilisateur correspondant
  • session_register("authentification"); // enregistrement de la session
  • // déclaration des variables de session
  • $_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur
  • $_SESSION['pseud'] = $row_verif['pseud'];
  • $_SESSION['courriel'] = $row_verif['courriel'];
  • return TRUE;
  • }
  • else {
  • return FALSE;
  • }
  • }
bouts de code :

// desinscription
if (isset($_GET['maildes']) && isset($_GET['pseudes']) ) {//en cas de clic dans la newsletter
	$maildes=$_GET['maildes'];
	$pseudes=$_GET['pseudes'];
	mysql_select_db($sql_bdd, $dbprotect) or die("Unable to select database");
	$resultat = mysql_query("SELECT * FROM newsletter2 WHERE courriel = '$maildes' AND pseud = '$pseudes'"); 
	if(false!=($ligne = mysql_fetch_array ($resultat))){// Si l'e-mail est dans la base
		$query = "UPDATE `newsletter2` SET `privilege`='desinsc' WHERE courriel='$maildes' AND pseud='$pseudes' LIMIT 1";
		mysql_query($query);
		header("Location:inscription.php?delete=ok");
	}	
}

// ------ AFFICHAGE DU NOMBRE D'INSCRINTS --------
$nb=0;
mysql_select_db($sql_bdd, $dbprotect);
$query_users = "SELECT * FROM newsletter2 WHERE `privilege` = 'user' ORDER BY id ASC"; // renvoi les données triées(par id croissant)
$users = mysql_query($query_users, $dbprotect) or die(mysql_error());
$row_users = mysql_fetch_assoc($users);
do { $nb++; }
while ($row_users = mysql_fetch_assoc($users));
  ?>
<p align="center"> <?php echo "$nb"; ?> inscrit<?php if ( $nb!=0 && $nb!=1 ) echo 's'; ?> à la newsletter </p>

// finalement on definit la fonction de l'analyse de base de donnéés
function administration($pseudov,$email)
	{
	require("configuration/config[1].inc.php");
	mysql_select_db($sql_bdd, $dbprotect);
	$verif_query=sprintf("SELECT * FROM newsletter2 WHERE courriel='$email' AND pseud='$pseudov'"); // requête
	$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
	$row_verif = mysql_fetch_assoc($verif);
	$utilisateur = mysql_num_rows($verif);
	if ($utilisateur) {	// On test s'il y a un utilisateur correspondant
	    session_register("authentification"); // enregistrement de la session
		
		// déclaration des variables de session
		$_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur
		$_SESSION['pseud'] = $row_verif['pseud'];
		$_SESSION['courriel'] = $row_verif['courriel'];
		return TRUE;
	}
	else {
	return FALSE;
	}
	}

 Conclusion

donnez vos commentaires et aussi une note. merci.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

04 janvier 2005 00:30:37 :
mise a jour 1 : -partie admin pas trop protégé -interdire les doubles inscriptions pour une adresse mail -verifier la forme de l'email(un peu mieux) -affichage du nombre d'inscrits -verifier la suppression effective de compte
04 janvier 2005 09:35:16 :
petit oubli
28 janvier 2005 17:51:06 :
mise a jour 2 : -partie admin mieux protegé -verification mail par envoi de confirmation (source modifié 26383 de redfo1) -option choix de confirmation ou non ( ligne 57 de inscription.php ) -desinscription sans supression de la bdd. avec possibilité de se réinscrire bien sur. -5 types de privileges : utilisateur, admin, session en cours, désinscrits, sur liste noire(blackliste). -email de bienvenue -personnalisation de la newsletter à chaque utilisateur. -fonction de desinscription sur newsletter.
20 mars 2005 17:50:28 :
un peu plus pratique

 Sources du même auteur

Source avec Zip Source avec une capture CREABUTT : CRÉATEUR DE BOUTONS, BUTTONS GENERATOR
Source avec Zip Source avec une capture DIAPORAMA AVEC ANFY SLIDESHOW
Source avec Zip Source avec une capture DÉGRADÉ ANINÉ ! RECTANGULAIRE, POLAIRE, OU LINÉAIRE. MULTI S...

 Sources de la même categorie

Source avec Zip SCREENMAIL-SOLUTION DE CONTACT POUR WEBMASTERS par bnrj
Source avec Zip FORMULAIRE EMAIL AVEC PIECE JOINTE REPRIS DE LITTLEBUBU par cfndiaye
Source avec Zip Source avec une capture MESSAGERIE INTERNE AVEC FICHIER TEXTE par polly19
Source avec Zip FORMULAIRE EVOIE ET PLUS par florentinul
FILTRE POUR NEWSLETTERS GMAIL par durealex

Commentaires et avis

Commentaire de yurispy le 16/12/2004 12:07:09

Salut, alors pour ça je peux t'aider :) va dans le php.ini
à cette ligne
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

Pour free tu y mets

[mail function]
; For Win32 only.
SMTP = smtp.free.fr
smtp_port = 25

; For Win32 only.
sendmail_from = ton_mail@free.fr

voila

Commentaire de stepibou le 04/01/2005 01:10:19

merci yurispy,

en local, j'arrive tj pas à envoyer :
quel adresse email faut il?
faut il configurer le sever mail ou outlook?

chez free, ben ma freebox elle marche tj pas,
au bout 2 mois et deux appels ! merci free !!!

bonne année 2005 à tous!

n'esitez pas à voter.
ps : voir mise à jour 1

Commentaire de yurispy le 04/01/2005 15:05:31

Tu n'as pas besoin de serveur mail pour envoyé ton mail
Pour outlook ça n'a aucune importance.

Si tu veux juste envoyer un mail pour testé ta fonction configurer le comm je l'ai dit si tu es chez free

[mail function]
; For Win32 only.
SMTP = smtp.free.fr
smtp_port = 25

; For Win32 only.
sendmail_from = ton_mail@free.fr

Commentaire de chrixxx le 10/03/2005 00:19:18

Salut,

Super source très complète et bien utile, cependant je ne comprends pas pourquoi chaque inscrit reçoit 2 foit le mail de confirmation, en fait au début ça n'envoyait rien puis j'ai fait qques très petites modifs et là ça marche mais je reçois les mails de confirm en double (inscription.php). Le reste marche impec, y avait aussi un petit bug dans le message de la newsletter mais j'ai rajouté la fonction stripslashes() pour la variable $newsletter dans le fichier news2.php (ligne 218) et c'est réglé.
Donc si qqun a la solution pour ce problème de doublon je suis preneur... Merci ^^

@++

Commentaire de chrixxx le 10/03/2005 00:37:52

Qui peut me dire à quoi sert cette fonction JavaScript SVP ?

<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>


Merci :))

@++

Commentaire de stepibou le 10/03/2005 20:20:11

Je suis content que ma source te soit utile, et a d'autre j'espere.
je compte metre à jour ma source, et tes commentaires pourrons
m'aider à ameliorer la source.
ce script java est créer par dreamweaver, pour rendre les calques compatibles avec netscape, donc assez inutile.
les deux mail de confirmation, je sais pas chez moi ca marche, y a un de confirmation et un de bienvenue, apres confirmation. mais c vrai que j'ai deja entendu parler de ce pb.
pour le strpslash ca a l'air interressant, j'utilise pas trop cette fonction,

sinon, j'ai eu un probleme pour envoyer chez wanadoo, en effet, avec les meme header y a un qui marche et l'autre qui marche pas, j'ai galeré un moment, et a du faire des retour en arriere. ( en meme temps c wanadoo, chez eux j'ai fais un site en php, il inteprete pas le code!!! si quelqu'un sait comment on active php sur wanadoo, ou y connaissent pas la modernité??..;-) )

moi heureusement, je suis chez free.

donc si tu peux me dire, si t'as des hebergeurs ou tu peux pas lire les email ???

pour les pieces jointes, j'arrive pas à envoyer partout,  et surtout , j'arrive pas à envoyer un html joint.

donc , si qq'un peux m'expliquer??

voila, essaye de me renvoyer un mess en precisant tes pbs.

a+ ;)

Commentaire de works le 19/03/2005 00:54:38

Salut, j'ai pas compris pour le sql, changer user en admin ?
explique en détail please, et pour la désinscription je dois faire quoi?

Dsl du noobisme, mais j'ai pas tout suivit, et moi et php on s'aime pas vraiment, sinon bon script ;)

Commentaire de stepibou le 20/03/2005 18:04:49

hello works,
alors dans phpmyadmin
tu vas dans ta base
tu click sur afficher la table, (premier icon)
tu click sur modifier ( encore premier icon de ta ligne bien sur)
et la tu modif le privilège...
voir mise à jour 3.

@+

Commentaire de carly le 24/07/2005 17:06:05

je n'arrive pas a recevoir la newsletter en format HTML

j'ai le msg de la sorte

<p> blablabla</p>
...

pas de mis en page, rien.

D'ou peux venir le pbl svp ?

Commentaire de chrixxx le 25/07/2005 11:43:35

Alors il manque qques trucs pour la mise en forme du mail (chez hotmail il interprète en html mais pas chez les autres), voilà ce qu'il faut rajouter pour que le format html soit pris en compte:

"
//debut de mise en forme du mail : tags des headers
srand((double)microtime()*1000000);
$boundary = md5(uniqid(rand()));

$headers = "MIME-Version: 1.0\n";
$headers .= "From: $expediteur <$expediteur>\r\n";
$headers .= "Content-Type: multipart/alternative; boundary=$boundary\n";

//-------- fonction MAIL()----------

$message = "\nThis is a multi-part message in MIME format.";
$message .="\n--$boundary\nContent-Type: text/html; charset=\"iso-8859-1\"\n\n";
$message .= $editorContents;
$message .="\n--$boundary--\n end of the multi-part";


if(@mail($le_destinataire ,$sujet , $message, $headers))...
"

Voilà avec ça tout marche impec! Ta page html est assignée à la variable $editorContents et les headers sont envoyés en header et dans le message ce qui permet d'interpréter le html.
J'espère que c'est assez clair sinon envoie moi ton mail...
@++

Commentaire de chrixxx le 02/11/2005 17:00:51

Salut,
Alors c'est normal que ton PC n'interprète pas le php, sinon il faut avoir un serveur apache. Donc 2 solutions s'offrent à toi pour le faire fonctionner:
1) Tu possède un hébergeur qui a la fonction PHP (pratiquement tous), il te suffit donc de tester ton fichier .php en l'envoyant sur ton FTP et d'aller l'appeler sur http://ton-site-woueb/script.php .
2) Sinon tu installe sur ton PC EasyPHP qui contient tout ce qu'il faut (serveur apache et sql) pour faire fonctionner tes scripts en local. Voilà, j'espère t'avoir aidé...

@++

Commentaire de chrixxx le 02/11/2005 17:02:49

Lol, le temps que je réponde et le message a disparu... Surement à cause des majuscules.
@++

Commentaire de Armss le 05/01/2006 22:00:31

Hello ^^
C'tte surpuissance !
Non ouais franchement c'est pas mal du tout !
Bon par contre, petit soucis de réception Mail...!
Quad j'écris la Newsletter, au moment de l'envoie, en apperçut il m'affiche les polices différentes, et de différentes couleurs...
Bon et ensuite, lors de la réception de la Newsletter, elle va s'installer dans un fichier joint et non dans le Mail ^_^
C'est peut-être en rapport avec ce que tu as écris plus haut Chrixxx, mais j'ai pas trop compris comment on installe tout ça...

Merci en tout cas !!!!!!

Armss

Commentaire de chrixxx le 06/01/2006 15:51:35

Salut Armss,
Ce n'est pas la peine d'installer koi que ce soit si le mail arrive à partir, par contre essaye de faire les modifs sur news2.php:

1/ Recherche $nope="";
2/ Remplace ce qui suit (jusqu'à /* et hop, à la poste */ ) par:

//debut de mise en forme du mail : tags des headers
srand((double)microtime()*1000000);
$boundary = md5(uniqid(rand()));

            /* destinataire = $courriel */
            /* sujet = $sujet */
            /* message = $newsletter */
            /* Pour envoyer du mail au format HTML */
            $headers = "MIME-Version: 1.0\n";
            $headers .= "Content-Type: multipart/alternative; boundary=$boundary\n";
            
            /* D'autres en-têtes : errors, From cc's, bcc's, etc */
            $headers .= "From: ".$ma_messagerie_source."\r\n";
            //$headers .= "Cc: societe@domaine.com\n";
            //$headers .= "Bcc: societe@domaine.com\n";
        
        for($i=0;$i<$num_rows;$i++){
            $id=mysql_result($requete,$i,"id");
            $courriel=mysql_result($requete,$i,"courriel");
            $date=mysql_result($requete,$i,"date");
            $pseudo=mysql_result($requete,$i,"pseud");

/* on personnalise la newsletter */
$newslettermodif= '<p align="center">A l\'attention de '.$pseudo.' :</p>
<br />'.stripslashes($newsletter).'
<br />Pour vous désinscrire, merci de vous rendre à l\'adresse :
<br /><a href="'.$adresinscr.'?maildes='.$courriel.'&pseudes='.$pseudo.'">'.$adresinscr.'?maildes='.$courriel.'&pseudes='.$pseudo.'</a>.
';
$message = "\nThis is a multi-part message in MIME format.";
$message .="\n--$boundary\nContent-Type: text/html; charset=\"iso-8859-1\"\n\n";
$message .= $newslettermodif;
$message .="\n--$boundary--\n end of the multi-part";

            /* et hop, à la poste */

3/ Teste comme ça, pour moi ça marche ! ^_^

Sinon pour l'apperçu (sur la page pour envoyer ou modifier) je n'ai la bonne taille de police non-plus, les couleurs sont respectés par contre, mais bon le mail arrive tel que tu l'as tapé et non comment te le montre ce 2ème apperçu.
J'espère t'avoir aidé !

@++

Commentaire de stepibou le 06/01/2006 16:17:44

Merci, a chrixxx d'avoir pris le temps de repondre!
Et merci à vous d'utiliser cette source, je me rend compte que ca fait
déja plus d'un an que je l'ai posté et c'etait ma premiere source!!

Malheureusement je ne l'ai jamais vraiment utilisé,
donc je suis content qu'elle puisse vous etre utile.
Cependant, je ne compte pas revenir dessus... Manque de temps.
Donc voila , merci, et n'esitez pas à poster des améliorations...
a+

Commentaire de Armss le 07/01/2006 12:25:24

Hello !!
C'est Re moua !

Donc donc Chrixxx, j'ai mis ce que tu m'as dis !
Bon, je reçois maintenant dans incredimail le bon texte, bien que je sois obligé de l'écrire dans news2.php et non dans l'interface, paqu'il me le met pas...!
Sinon, y'a un autre truc d'étrange, c'est que la consultation depuis hotmail affiche un mail vide, alors qu'en récupération sur logiciel de messagerie, le texte s'affiche...

Je vois pas comment je peux faire... Si t'as une idée...!! Merrrciii d'avance en tout cas !!

Et Stepibou, vraiment bien ta source, dommage que t'aies plus le temps ! ;)

@ Bientôt,
Armss

Commentaire de sebyrollins le 03/05/2006 14:10:33

Très sympatique et simple à utiliser pour un novice? Je me suis penché un peu pour rajouter le bouton "propriété de page" (présent dans htmlarea plugin fullpage) pour pouvoir changer la couleur du fond par exemple. J'ai récupérer les sources, mais ils sembleraient qu'il me manque quelques notions de javascript, quand je clic sur le bouton j'ai une erreur javascript. Quelqu'un a t il déja fait la manip ?

Commentaire de sebyrollins le 06/05/2006 12:01:58

bon j'ai finalement intégré le htmlarea fullpage plutot que modifié celui existant et ca marche...

Commentaire de stepibou le 06/05/2006 12:07:55

Cool,
c'est quoi l'adresse du htmlarea que t'a utilisé?
je pourrai peut-etre faire evoluer la source...
merci.
a+

Commentaire de sebyrollins le 10/05/2006 14:51:11

salut, j'ai télécharger tout le pack et je l'ai mis sur mon serveur. Ensuite, j'ai juste intégré (à partir des pages d'exemples) le fullpage à ton script que j'ai pas mal modifié depuis;-) : création d'utilisateurs, moteur de recherche, gestion des inscrits avec suivi d'envoi et de lecture pour chaque newsletter, rapports sur les envois et renvoi au cas ou, barre de progression pendant l'envoi, création de l'apercu html en iframe, gestion des images (par téléchargement) puis accessible en liste de choix dans le htmlarea, et une partie configuration. Le tout reste super simple d'utilisation.*Le code est un peu brouillon pour l'instant.
Par contre, il semblerait que certaines messageries ne prennent pas en compte le <body bgcolor="#xxxxxx"> (genre gmail), d'autres ne prennent pas en compte le <body style="back-ground: #xxxxxx"> ou le <body style="back-ground: rgb(xx,xx,xx)">. Je me demandais si il existe une solution ? Ou alors le faire passer en brut dans le debut de la page entre une balise style css.
Pour l'instant je recupere la couleur avec une expression régulière directement dans le code html généré par htmlarea. N'y a t il pas un moyen de récupérer la couleur de fond du html area directement dans une variable php ?

Commentaire de deozyris le 02/06/2006 04:56:05

bonjour, lorsque j'entre les info dans le sql il m'indique une erreur
#1067 - Invalid default value for 'id'
adez-moi svp!!!! :) merci

CREATE TABLE newsletter2 (
   id int(10)  not null  default  '' auto_increment,
  pseud varchar(20) not null default '',
  courriel varchar(255) not null default '',
  date varchar(10)  not null default '',
  heure varchar(20)  not null default '',
  privilege varchar(50)  not null default '',
   PRIMARY KEY (`id`)
  )TYPE=MYISAM;

Commentaire de stepibou le 02/06/2006 11:07:08

essaye ca :

CREATE TABLE `newsletter2` (
  `id` int(10) NOT NULL auto_increment,
  `pseud` varchar(20) NOT NULL default '',
  `courriel` varchar(255) NOT NULL default '',
  `date` varchar(10) NOT NULL default '',
  `heure` varchar(20) NOT NULL default '',
  `privilege` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

sinon, tu crée tout à la main...
a+

Commentaire de sebing le 05/09/2006 11:04:49

Bonjour,

Je comprends pas comment et où créer la base de données (je ne trouve pas phpmyadmin).
J'arrive a m'incrire sur la newsletter, je reçois bien mon mail d'inscription et de confirmation, mais apres je pédale dans la semoule pour choisir admin  ou user.
Voulez vous bien m'aider car j'aimerais exploiter cette source dont je lis que du bien.
Merci
seb

Commentaire de stepibou le 05/09/2006 12:42:53

salut,

ouaif, la c'est dure si tu ne sais pas ou est phpmyadmin!
en local c'est http://127.0.0.1/mysql/ en general.
sinon, vois avec ton hebergeur.
ensuite modifie directement dans phpmyadmin tes enregistrements du privilège user a admin...
je me rapelle plus trop, c deja si ancien lol.

a+

Commentaire de sebing le 05/09/2006 12:57:29

Merci de ta réponse rapide, j'ai enfin trouvé, mais ou avais je la tete.
seb

Commentaire de yurispy le 05/09/2006 13:22:58

en local phpmyadmin c plustot http://127.0.0.1/phpmyadmin/

Commentaire de sebing le 06/09/2006 11:25:30

Bonjour,
Tout abord, merci pour ta source.
j'avance petit a petit, j'ai inlus la modification de chrixxx, mais je rencontre le meme probleme que armss, mon message sur hotmail est vide.
Comment faire pour y remedier?
Je vous en remercie par avance
seb

Commentaire de chrixxx le 06/09/2006 14:14:10

Re tlm,

J'ai dû oublier quelque chose, je vais essayer de me repencher dessus, car ça date un peu. Je posterai ici dès que je trouve les modifs qui manquent car pour moi ça marche impec maintenant (à part le double mail à l'inscription, mais bon) ! Si vous voulez tester inscrivez vous à la newsletter sur www.eaudela.org (lien en bas), la neswletter sera envoyé d'ici peu.

@++

Commentaire de sebing le 06/09/2006 14:32:29

re,
J'attends avec impatience ton code.
Je te remercie de perdre du temps pour aider.
@+seb
ps: ton site est super

Commentaire de sebing le 07/09/2006 09:03:18

Encore le casse c.....
j'ai envoyé un message(pas sur hotmail) que j'ai ouvert par outlook et la surprise, j'ai toutes les balises qui apparaissent (c'est pas evident de lire entre les <p>, <li>....), avez vous une solution.
Il va vraiement falloir que je m'y mette dans l'ecriture de code.
merci encore
seb

Commentaire de chrixxx le 07/09/2006 13:05:36

Re,

Merci Sebing, alors je vais essayer d'exposer mes modifs à ce script. Dans le fichier news2.php toujours j'ai rajouté ces 2 lignes à la ligne 9 juste avant le '?>' :
ini_set("memory_limit","128M");         // augmente le cache mémoire
ini_set("max_execution_time","40");     // passe la limite d'execution du code à 40 sec

Puis (comme je l'ai dit plus haut) à la ligne 213 (après '$nope="";') ajouter:
//debut de mise en forme du mail : tags des headers
srand((double)microtime()*1000000);
$boundary = md5(uniqid(rand()));

Puis remplacer les lignes 220 à 224 (la variable '$headers') :
$headers    = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html\n charset=iso-8859-1\r\n";
            
/* D'autres en-têtes : errors, From cc's, bcc's, etc */
$headers .= "From: $ma_messagerie_nom <$ma_messagerie_source>\r\n";
par:
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=$boundary\n";

/* D'autres en-têtes : errors, From cc's, bcc's, etc */
$headers .= "From: ".$ma_messagerie_source."\r\n";

Puis remplacer à la ligne 237 :
<br />'.$newsletter.'
par:
<br />'.stripslashes($newsletter).'

Puis à la ligne 241 (juste avant '/* et hop, à la poste */') ajouter:
$message = "\nThis is a multi-part message in MIME format.";
$message .="\n--$boundary\nContent-Type: text/html; charset=\"iso-8859-1\"\n\n";
$message .= $newslettermodif;
$message .="\n--$boundary--\n end of the multi-part";

Puis remplacer la ligne 243 :
if(@mail($courriel, $sujet, $newslettermodif, $headers)){
par:
if(@mail($courriel, $sujet, $message, $headers)){

Voilà, j'espère que j'ai rien oublié sur mes modifs, si ça marche toujours pas envoie-moi ton mail par MP et je t'enverrai le script modifié.

@++

Commentaire de sebing le 07/09/2006 13:37:56

ça a marché, merci beaucoup chrixxx.
Le seul hic c'est que on doit enlever "les pres ecritures" deux fois, lors de la creation du message et lors de l'envoie.
Peut on enlever ces ecritures en modifiant directement le code, sans que cela emmene un disfonctionnement du code.
Encore merci beaucoup.
@+ seb

Commentaire de chrixxx le 07/09/2006 14:15:18

Cool !
Oui bien sur tu peux enlever le message enlève tout ce qu'il y a entre <textarea  .... > et </textarea> (3 fois).
Tu peux aussi insérer un modèle en HTML dans la variable $newsletter (ligne 70 ou 72) comme ceci par ex:
$newsletter=isset($_POST['newsletter'])?$_POST['newsletter']:"<DIV align=center><TABLE width='80%' align=center bgColor=#cccccc border=0><h1>Ma page Newsletter</h1><p>Texte</p></TABLE></DIV>";

Faire un squelette ça t'évite de faire une mise en page à chaque fois.
++

Commentaire de chrixxx le 07/09/2006 14:17:17

Oops, rectification : enlève tout ce qu'il y a entre <textarea  .... > et </textarea> sauf <?php echo stripslashes($newsletter); ?> (3 fois).

@++

Commentaire de sebing le 07/09/2006 16:01:04

Encore merci
@+seb

Commentaire de Straw le 29/03/2007 11:42:38

Personne pour poster la modification finale du code? merci :-)

Commentaire de H4MZA le 12/09/2007 11:30:31

CREATE TABLE newsletter2 (
  `id` int(10) NOT NULL auto_increment,
  pseud varchar(20) not null default '',
  courriel varchar(255) not null default '',
  date varchar(10)  not null default '',
  heure varchar(20)  not null default '',
  privilege varchar(50)  not null default '',
   PRIMARY KEY (`id`)
  )TYPE=MYISAM;
--------------------------
Merci pour le module NL ;)

Commentaire de audreycormont le 04/02/2008 22:18:03

Bonjour,

Je n'arrive pas a faire ma newsletter sur news2 quand je me conect decu la page inscrption la remplace pouvez vous m'aider svp. merci

Commentaire de alfred40 le 14/02/2008 14:40:21

Bonjour,
complétement novice dans la programmation, je suis arrivé à intégrer dans mon site l'ensemble de la source, ai établi la connexion à l'inscription avec la BBD newsletter2, et les envoies de mail de confirmation et de remerciement fonctionnent...plutôt bien (merci à l'auteur).
Cependant, désireux d'entrer maintenant dans la création d'un test de création newsletter, je butte sur la façon d'accéder à la page news2.php . Je reste sur la page inscription qui me signifie :"Vous n'avez pas accès à cette page" et dans l'adresse me met : "http://www.monsite.com/newsletter/inscription.php?erreur=intru"
J'ai bien donner à mon pseudo la valeur "admin" dans le champ "privilege".. mais à aucun moment un mot de passe ou un login m'est demandé.
Est-ce qu'un savant dans ce domaine pourrait me donner un bout de piste.
Cordialement,
Merci

Commentaire de stepibou le 14/02/2008 20:36:56

Je ne connais pas ce problème...
Utilise tu easyphp 2?
Peut tu préciser l'adresse sur lequel tu click avant d'être déconneté?

Commentaire de oraptuga le 11/09/2008 16:47:59

bonjour a tous et déja merci bcp pour cette belle application.

J'ai essayer de l'intégrer sur mon site, mais j'aai quelque problèmes, quand je m'inscris, le mail est "envoyé" mais je ne recois rien. Dans la base de donnée l'heure ne s'enregistre pas comme il faut, et dans privilège au lieu de user ces marqué: c5fa53503ad2b042564d192362cd7114

qqun peut m'aider???

merci

Commentaire de oraptuga le 11/09/2008 17:14:35 7/10

Alfred40 j'ai la solution a ton problème, donc comme tu dis tu a un pseudo + un mail sous admin ok?

Donc pour te logger il te suffit de remplire les champs d'inscription de la newsletter  donc

-pseudo
-mail

sauf que cette fois tu coche aucun bouton (inscription/desinscription) tu laisse vide, ensuite tu envoi et tu sera redirectionner sur la page admin et tu pourras envoyer ta newsletter...

voila jespere que j'ai été clair si ta besoin de plus d'info ta qu'a demander

++

Commentaire de bendoc le 10/02/2009 14:47:24

Bonjour,ça marche bien chez moi sauf en ce qui concerne l'éditeur de texte html. En effet, quand je rédige une nouvelle newsletter, je n'ai aucune option visible (gras, souligné, insertion image..) à l'écran, donc tout ce que je peux faire c'est entrer du code... Quelqu'un aurait-il une idée pour corriger ce bug ?
Merci,
Bendoc.

Commentaire de tristancoindet le 10/07/2009 10:59:06

bonjour, quelqu'un sait-il comment gérer ce code avec l'hébergeur hostpapa, parce que ça ne fonctionne pas, je suis complètement perdu... Pourtant le php est permis, j'ai créé mes bases sql, j'ai donné les autorisation, renseigné les mots de passe, nom d'utilisateur etc... Mais rien ne fonctionne... Merci d'avance si quelqu'un à la gentillesse de m'éclairer un peu...

Commentaire de audreycormont le 14/07/2009 19:13:52

bonjour à tous et déja merci bcp cette source.
Chez moi tous marche bien sauf que quand j'envoie la newsletter à mes inscrits il reçoit plusieurs fois la newsletter j'ai remarqué que c'est le nombre de personne qui est inscrit. j'ai essayé de modifier la source mais rien ne marche quelle qu'un a une idée.
Merci d'avance.

Commentaire de ReMs3007 le 08/11/2009 00:53:02

Quand je souhaite envoyer ma newsletter j'ai le problème suivant:
Warning: Division by zero in C:\Program Files\EasyPHP 2.0b1\www\newsletter\news2.php on line 263

Warning: Division by zero in C:\Program Files\EasyPHP 2.0b1\www\newsletter\news2.php on line 264

En gros il n'arive pas a envoyé le mail :s

voici le contenu des lignes:

            if(@mail($courriel, $sujet, $message, $headers)){
            $succes .= $courriel."<br />";
            $succes_nb++;  
            }
            else{
            $nope .= $courriel."<br />";
            $nope_nb++;
            }

            
        }
        $succes_pourc= ($succes_nb / $i ) * 100;
        $echec_pourc= ($nope_nb / $i ) * 100;

Merci d'avance ;)

Commentaire de chrixxx le 08/11/2009 16:46:53

Salut,

Ca fait longtemps que je n'ai plus cette source en tête mais d'après l'erreur que tu as Rems il semblerait que dans ta table 'newsletter2' tu n'as pas d'utilisateur avec 'privilege' ayant la valeur 'user'. Essaie donc d'ajouter un abonné et reteste ça.

@+

Commentaire de ReMs3007 le 08/11/2009 21:54:10

Merci beaucoup CHRIXXX, c'était bien çà :)

Je n'ai plus qu'a trouvé un moyen de joindre une pièce jointe, en l'occurence un PDF et ce sera parfait.
Tu n'aurais pas une idée par hasard?

Commentaire de chrixxx le 09/11/2009 15:01:00

Salut,

Voilà une petite piste, à toi de l'adapter. Juste avant la ligne qui envoie:

/* et hop, à la poste */
if(@mail($courriel, $sujet, $message, $headers)){

Tu dois ajouter au corps du message la pièce jointe:

//PIECE JOINTE
     $message .= 'Content-Type: application/pdf; name="nom_du_fichier.pdf"'."\n";
     $message .= 'Content-Transfer-Encoding: base64'."\n";
     $message .= 'Content-Disposition:attachement; filename="nom_du_fichier.pdf"'."\n\n";
     $message .= chunk_split(base64_encode(file_get_contents('nom_du_fichier.pdf')))."\n";
     $message .= "\n--$boundary--\n end of the multi-part";

Voilà, pour joindre un pdf ça devrait suffire.

Sinon tu peux aussi utiliser un module PEAR qui contient tout ce qu'il faut: Mail_Mime::addAttachment(), si tu as PHP >= 4.3.0 le module PEAR est déjà installé en principe. Mais cette solution te ferait revoir une partie du code. Regarde dans la doc de PEAR.

A toi d'adapter une de ces 2 solutions, bon courage!

@+

Commentaire de ReMs3007 le 09/11/2009 17:08:30

Un grand Merci CHRIXXX,

Je vois çà et je te tiens au courant :)

Commentaire de ReMs3007 le 09/11/2009 20:58:24

J'ai fait ce que tu m'as conseillé mais je reçois un mail contenant pleins de caractères mais pas de PDF :(

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales