Problème script php (newsletter)
Résolu/Fermé
A voir également:
- Problème script php (newsletter)
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ghost script - Télécharger - Polices de caractères
- Script bat - Guide
- Microsoft activation script - Accueil - Windows
14 réponses
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
31 déc. 2007 à 00:27
31 déc. 2007 à 00:27
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); ?>@+
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
31 déc. 2007 à 00:43
31 déc. 2007 à 00:43
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>
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
31 déc. 2007 à 01:19
31 déc. 2007 à 01:19
Mais tu n'as rien du tout qui s'affiche dans le message ?
Et en mettant $message = ($_POST['mess']); dans le while ? ...
@+
Et en mettant $message = ($_POST['mess']); dans le while ? ...
@+
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
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
31 déc. 2007 à 10:51
31 déc. 2007 à 10:51
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 ?
@+
NEZA
>
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
3 mars 2010 à 02:26
3 mars 2010 à 02:26
bjr
je suis stagiare jé du mal à m'on sortir de php
mon titeur de stage ma demandé de faire un désabonement de emailing!!!
auriez vs la gentillesse de m'aider a construire mon code ou a me corigé mon code
codialement
je suis stagiare jé du mal à m'on sortir de php
mon titeur de stage ma demandé de faire un désabonement de emailing!!!
auriez vs la gentillesse de m'aider a construire mon code ou a me corigé mon code
codialement
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"; } ?>
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
31 déc. 2007 à 11:44
31 déc. 2007 à 11:44
Oui, effectivement...
Mettre l'include au début tout de même... J'imagine que $nom_du_site et $votreemail sont dans parametres.php.
@+
Mettre l'include au début tout de même... J'imagine que $nom_du_site et $votreemail sont dans parametres.php.
@+
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";
}
?>
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
31 déc. 2007 à 13:27
31 déc. 2007 à 13:27
Mets un ; après $n=0 ! ;-)
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?
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
1 janv. 2008 à 04:27
1 janv. 2008 à 04:27
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.
@+
ok merci .. sa fonctionne parfaitement :D
a +
a +
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
1 janv. 2008 à 13:06
1 janv. 2008 à 13:06
Pas d'quoi.
Enjoy!
Enjoy!