Problème script php (newsletter)
Résolu
Jew
-
NEZA -
NEZA -
Bonjour,
Sa fait plusieurs heure que j'éssaye d'installer une newsletter sur mon site web et mon seul problème est dans ce script ,
celui-ci doit envoyé le message que j'ai écrit sur la page précédente aux e-mails de ceux qui se sont inscrits (dans ma base de donnée)..
L'envoi du mail fonctionne, je reçois l'objet, nom, l'e-mail,.. MAIS je ne reçois pas le message.
Voici le script:
<?php
$message = ($_POST['mess']);
include("parametres.php");
$connexion = mysql_connect("$chemin_db" , "$login" , "$pass");
$sql = "SELECT * FROM newsletter";
$result = mysql_db_query($database , $sql , $connexion);
while($resultat = mysql_fetch_array($result))
{ $objet = "NewsLetter";
$message = "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: $nom_du_site <$votreemail>\n";
$headers .= "X-Sender: <$votreemail>\n";
$headers .= "X-Mailer: PHP\n";
$headers .= "Return-Path: <$votreemail>\n";
mail("$resultat[email]", $objet, "$message", $headers);
}
?>
Merci d'avance pour votre aide!
Sa fait plusieurs heure que j'éssaye d'installer une newsletter sur mon site web et mon seul problème est dans ce script ,
celui-ci doit envoyé le message que j'ai écrit sur la page précédente aux e-mails de ceux qui se sont inscrits (dans ma base de donnée)..
L'envoi du mail fonctionne, je reçois l'objet, nom, l'e-mail,.. MAIS je ne reçois pas le message.
Voici le script:
<?php
$message = ($_POST['mess']);
include("parametres.php");
$connexion = mysql_connect("$chemin_db" , "$login" , "$pass");
$sql = "SELECT * FROM newsletter";
$result = mysql_db_query($database , $sql , $connexion);
while($resultat = mysql_fetch_array($result))
{ $objet = "NewsLetter";
$message = "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: $nom_du_site <$votreemail>\n";
$headers .= "X-Sender: <$votreemail>\n";
$headers .= "X-Mailer: PHP\n";
$headers .= "Return-Path: <$votreemail>\n";
mail("$resultat[email]", $objet, "$message", $headers);
}
?>
Merci d'avance pour votre aide!
A voir également:
- Problème script php (newsletter)
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Expert php pinterest - Télécharger - Langages
14 réponses
Salut.
Es-tu sûr de ta valeur $_POST['mess'] ? Est-elle bien récupérée ?
D'autre part, tu fais
Et fais plutôt ceci (ça ne devrait rien changer, mais c'est plus clair à mon sens):
T'as testé un envoi tout bête (non paramétré) avec la fonction mail() pour voir si tu recevais tout ? Genre
Es-tu sûr de ta valeur $_POST['mess'] ? Est-elle bien récupérée ?
D'autre part, tu fais
$message = ($_POST['mess']);et ensuite
$message = "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>";La valeur de $message sera donc cette dernière.... Mets .= si tu veux concaténer.
Et fais plutôt ceci (ça ne devrait rien changer, mais c'est plus clair à mon sens):
mail($resultat['email'], $objet, $message, $headers);M'enfin c'est bizarre tout de même...
T'as testé un envoi tout bête (non paramétré) avec la fonction mail() pour voir si tu recevais tout ? Genre
<?php $dest="toto@toto.com"; $objet = "NewsLetter"; $message = "ton message"; $headers ='From: "nom"<adresse@fai.fr>'."\n"; mail($dest,$objet,$message,$headers); ?>@+
De mon côté, j'ai testé ceci :
Conclusion : vérifie bien la récupération des valeurs dans tes variables php...
<?php $message = "message"; $objet = "Teest"; $message .= "<br><br><br><a href=http://www.site.com/desabonnement.php?email=mail@mail.com>Cliquer ici pour se désabonner</a>"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; $headers .= "From: moi<mon_mail>\n"; $headers .= "X-Sender: <mon_mail>\n"; $headers .= "X-Mailer: PHP\n"; $headers .= "Return-Path: <mon_mail>\n"; mail("mon_mail", $objet, $message, $headers); ?>L'envoi s'est bien passé, et j'ai tout reçu.
Conclusion : vérifie bien la récupération des valeurs dans tes variables php...
oui j'ai testé aussi et j'ai bien reçu.. Enfin c'est peut-être moi qui comprend pas..
Voila la page précédente avec le formulaire qui contient le message du mail:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>nw</title>
</head>
<body>
<form method="post" action="envoixxx.php" name="newsletter"><b>Votre message en HTML ou en texte
brut :<br>
<textarea cols="40" rows="25" name="mess"></textarea><br>
<input name="Submit" value="Envoyer" type="submit"></b></form>
</body>
</html>
Voila la page précédente avec le formulaire qui contient le message du mail:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>nw</title>
</head>
<body>
<form method="post" action="envoixxx.php" name="newsletter"><b>Votre message en HTML ou en texte
brut :<br>
<textarea cols="40" rows="25" name="mess"></textarea><br>
<input name="Submit" value="Envoyer" type="submit"></b></form>
</body>
</html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si dans le message il y a quand mm le liens><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>";
tu peu me dire comment tu mets $message = ($_POST['mess']); dans le while
jsuis pas sure
while($resultat = mysql_fetch_array($result), $message = ($_POST['mess']))
merci
tu peu me dire comment tu mets $message = ($_POST['mess']); dans le while
jsuis pas sure
while($resultat = mysql_fetch_array($result), $message = ($_POST['mess']))
merci
Ah oui nan, ce que je veux dire, c'est $message = ($_POST['mess']); dans ta boucle while (après l'accolade quoi).
Mais avant ça, as-tu bien essayé de faire avec .=
@+
Mais avant ça, as-tu bien essayé de faire avec .=
| V $message .= "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>";Ta valeur $_POST['mess'] est-elle bien récupérée ?
@+
Bonjour,
pourquoi mets tu tout ça dans la boucle while
pourquoi mets tu tout ça dans la boucle while
<?php $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; $headers .= "From: $nom_du_site <$votreemail>\n"; $headers .= "X-Sender: <$votreemail>\n"; $headers .= "X-Mailer: PHP\n"; $headers .= "Return-Path: <$votreemail>\n"; $objet = "NewsLetter"; include("parametres.php"); $connexion = mysql_connect("$chemin_db" , "$login" , "$pass"); $sql = "SELECT * FROM newsletter"; $result = mysql_db_query($database , $sql , $connexion); $n=0 while($resultat = mysql_fetch_array($result)){ $message = ($_POST['mess']); $message .= "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>"; $env_mail=mail("$resultat[email]", $objet, "$message", $headers); if($env_mail){$n++} // si env ok on incremente le compteur } if($n>0){ echo "Newletter envoyée a $n correspondants"; }else{ echo "Newletter non envoyée"; } ?>
Bonjour,
voila j'ai éssayé ce script mais le problème maintenant, c'est quand j'envoie sa me met sa:
Parse error: syntax error, unexpected T_WHILE in /home/web/clients/jerew.org/www/envoixxx.php on line 16
Que faire?
<?php
include("parametres.php");
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: $nom_du_site <$votreemail>\n";
$headers .= "X-Sender: <$votreemail>\n";
$headers .= "X-Mailer: PHP\n";
$headers .= "Return-Path: <$votreemail>\n";
$objet = "NewsLetter";
$connexion = mysql_connect("$chemin_db" , "$login" , "$pass");
$sql = "SELECT * FROM newsletter";
$result = mysql_db_query($database , $sql , $connexion);
$n=0
while($resultat = mysql_fetch_array($result)){
$message = ($_POST['mess']);
$message .= "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>";
$env_mail=mail("$resultat[email]", $objet, "$message", $headers);
if($env_mail){$n++} // si env ok on incremente le compteur
}
if($n>0){
echo "Newletter envoyée a $n correspondants";
}else{
echo "Newletter non envoyée";
}
?>
voila j'ai éssayé ce script mais le problème maintenant, c'est quand j'envoie sa me met sa:
Parse error: syntax error, unexpected T_WHILE in /home/web/clients/jerew.org/www/envoixxx.php on line 16
Que faire?
<?php
include("parametres.php");
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: $nom_du_site <$votreemail>\n";
$headers .= "X-Sender: <$votreemail>\n";
$headers .= "X-Mailer: PHP\n";
$headers .= "Return-Path: <$votreemail>\n";
$objet = "NewsLetter";
$connexion = mysql_connect("$chemin_db" , "$login" , "$pass");
$sql = "SELECT * FROM newsletter";
$result = mysql_db_query($database , $sql , $connexion);
$n=0
while($resultat = mysql_fetch_array($result)){
$message = ($_POST['mess']);
$message .= "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>";
$env_mail=mail("$resultat[email]", $objet, "$message", $headers);
if($env_mail){$n++} // si env ok on incremente le compteur
}
if($n>0){
echo "Newletter envoyée a $n correspondants";
}else{
echo "Newletter non envoyée";
}
?>
Pour le include, pas de pb tu peux le mettre au début, pourvu qu'il soit avant l'utilisation des variables qu'il initialise
as tu bien remplacé les <$votreemail> par ton adresse mail sans les < > ?
essayes comme ça:
as tu bien remplacé les <$votreemail> par ton adresse mail sans les < > ?
essayes comme ça:
<?php include("parametres.php"); $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; $headers .= "From: $nom_du_site <$votreemail>\n"; $headers .= "X-Sender: <$votreemail>\n"; $headers .= "X-Mailer: PHP\n"; $headers .= "Return-Path: <$votreemail>\n"; $objet = "NewsLetter"; $connexion = mysql_connect("$chemin_db" , "$login" , "$pass"); $sql = "SELECT * FROM newsletter"; $result = mysql_db_query($database , $sql , $connexion); $n=0 while($resultat = mysql_fetch_array($result)){ $message = $_POST['mess']; $message .= "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>"; $env_mail=mail($resultat[email], $objet, $message, $headers); if($env_mail){// si env ok on incremente le compteur $n++ } } //partie que tu pourras enlever quand ça marchera, si tu veux ? if($n>0){ echo "Newletter envoyée a $n correspondants"; }else{ echo "Newletter non envoyée"; } ?>
voila j'ai rééssayé et maintenant sa me met ..
Parse error: syntax error, unexpected '}' in /home/web/clients/jew.org/www/envoixxx.php on line 20
Parse error: syntax error, unexpected '}' in /home/web/clients/jew.org/www/envoixxx.php on line 20
Je crois que e problème viens de cette line..
if($env_mail){$n++} // si env ok on incremente le compteur
if($env_mail){$n++} // si env ok on incremente le compteur
voila sa marche, j'ai juste mi sa:
<?php
include("parametres.php");
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: $nom_du_site <$votreemail>\n";
$headers .= "X-Sender: <$votreemail>\n";
$headers .= "X-Mailer: PHP\n";
$headers .= "Return-Path: <$votreemail>\n";
$objet = "NewsLetter";
$connexion = mysql_connect("$chemin_db" , "$login" , "$pass");
$sql = "SELECT * FROM newsletter";
$result = mysql_db_query($database , $sql , $connexion);
$n=0;
while($resultat = mysql_fetch_array($result)){
$message = $_POST['mess'];
$message .= "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>";
$env_mail=mail($resultat[email], $objet, $message, $headers);
}
?>
Evidament j'ai pas l'echo et le nmbre d'envoi mais tant que sa fonctionne!
Merci pour votre aide :)
<?php
include("parametres.php");
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: $nom_du_site <$votreemail>\n";
$headers .= "X-Sender: <$votreemail>\n";
$headers .= "X-Mailer: PHP\n";
$headers .= "Return-Path: <$votreemail>\n";
$objet = "NewsLetter";
$connexion = mysql_connect("$chemin_db" , "$login" , "$pass");
$sql = "SELECT * FROM newsletter";
$result = mysql_db_query($database , $sql , $connexion);
$n=0;
while($resultat = mysql_fetch_array($result)){
$message = $_POST['mess'];
$message .= "<br><br><br><a href=$site/desabonnement.php?email=$resultat[email]>Cliquer ici pour se désabonner</a>";
$env_mail=mail($resultat[email], $objet, $message, $headers);
}
?>
Evidament j'ai pas l'echo et le nmbre d'envoi mais tant que sa fonctionne!
Merci pour votre aide :)
Désolé, une petite faute de frappe, il manquait le ; après $n++
Si tu veux essayer, tu le remet et tu auras le résultat de tes envois;
// si env ok on incremente le compteur if($env_mail){ $n++; }
Si tu veux essayer, tu le remet et tu auras le résultat de tes envois;
rebonjour et bonne année!
j'ai encore un petit problème avec cette newsletter.. ceci est le script de désinscription, alors voila, j'aimerais que lorque l'on tape par exmple l'url suivante:
http://xxxxxxx.org/desabonnement.php?email=jere@web.com
que l'adresse e-mail soit supprimé de ma base.
<?
include("parametres.php");
$connexion = mysql_connect("$chemin_db" , "$login" , "$pass");
mysql_select_db($database , $connexion);
$sql = "DELETE FROM newsletter WHERE email='$email'";
mysql_query($sql);
mysql_close($connexion);
?>
L'adresse e-mail <?echo $email?> a été supprimée.
quelqu'un peu me dire l'erreur de ce script svp?
j'ai encore un petit problème avec cette newsletter.. ceci est le script de désinscription, alors voila, j'aimerais que lorque l'on tape par exmple l'url suivante:
http://xxxxxxx.org/desabonnement.php?email=jere@web.com
que l'adresse e-mail soit supprimé de ma base.
<?
include("parametres.php");
$connexion = mysql_connect("$chemin_db" , "$login" , "$pass");
mysql_select_db($database , $connexion);
$sql = "DELETE FROM newsletter WHERE email='$email'";
mysql_query($sql);
mysql_close($connexion);
?>
L'adresse e-mail <?echo $email?> a été supprimée.
quelqu'un peu me dire l'erreur de ce script svp?
A la place de $email, utilise $_GET['email'] et mets un ; pour finir ton echo à la fin.
De plus, il est préférable d'utiliser <?php ?> plutôt que <? ?>, la deuxième méthode n'étant plus celle utilisée par défaut dans les versions les plus récentes de php.
@+
$sql = "DELETE FROM newsletter WHERE email=" . $_GET['email']; L'adresse e-mail <?php echo $_GET['email']; ?> a été supprimée.
De plus, il est préférable d'utiliser <?php ?> plutôt que <? ?>, la deuxième méthode n'étant plus celle utilisée par défaut dans les versions les plus récentes de php.
@+