Tu devrais vérifier les paramètres que tu reçois de l'extérieur, mais bon, là ça ne va pas dans les entêtes alors il n'y a pas trop de risques (sinon que tu peux recevoir un courriel un peu bizarre).
/*on formate les chaine d'objet et de corps du mail */ $objet = "......."; $objet .= stripslashes($_POST['titre']);
AAAAARGHHH !!! SURTOUT PAS !!! Ceci va dans les entêtes, et donc un spammeur pourrait très bien détourner ce champ pour spammer la terre entière en y ajoutant quelques milliers d'adresses de victimes.
Tu vires donc : $objet .= stripslashes($_POST['titre']); et tu ajouteras plus bas : $msg .= "Le titre est " . stripslashes($_POST['titre']) . "rn";
$msg ="msg de "; $msg .= $exp; $msg .= "nrnrnr";
Attention, il y a une erreur ici : la fin de ligne standard est CR LF, c'est-à-dire "rn", et pas le contraire.
$msg .= $signature; /* envoi du mail a proprement parlé */
Zarathoustra a proprement parlé ! ;-)
$entetes = "From: ";
Je ne suis pas sûr que le CR LF soit nécessaire ici, mais en tout cas ce n'est pas LF CR. Cela dit, tu fais bien d'y mettre une adresse en dur car cela va aussi dans les entêtes.
mail("",$objet,$msg,$entetes);
Idem pour l'adresse en dur : ici c'est bon.
Header ("Location:index.html");
Attention, ceci est interdit par la norme définissant HTTP : l'URL doit être absolue et non relative.
ou Header ("Location:http://....chez.com/index.html");
À tout hasard, lire <http://faqfclphp.free.fr/#rub2.11> pour voir si un require() ne serait pas plus indiqué.
ne marche pas tout plein de warning avec le php5 de http://www.chez.com/
Tu as bien fait de copier-coller les warnings en question pour qu'on puisse te dire ce qui ne va pas, hein ! ;-)
Ah ! Les warnings, ce ne serait pas par hasard quelque chose comme « les entêtes ont déjà été envoyés » ?
Dans ce cas, voir <http://faqfclphp.free.fr/#rub2.12>.
P.-S. : ton adresse n'est pas valide, et elle n'est même pas bien formée. Dans ce cas, il est très vivement recommandée qu'elle soit terminée par « .invalid » (et bien formée, cela va de soi). Donc : .
Cordialement, -- Olivier Miakinen
Bonjour,
Le 17/03/2009 22:52, remy a écrit :
je cherche une solution plus élégante que le truc que j'ai fait
Tu devrais vérifier les paramètres que tu reçois de l'extérieur, mais
bon, là ça ne va pas dans les entêtes alors il n'y a pas trop de risques
(sinon que tu peux recevoir un courriel un peu bizarre).
/*on formate les chaine d'objet et de corps du mail */
$objet = ".......";
$objet .= stripslashes($_POST['titre']);
AAAAARGHHH !!! SURTOUT PAS !!! Ceci va dans les entêtes, et donc un
spammeur pourrait très bien détourner ce champ pour spammer la terre
entière en y ajoutant quelques milliers d'adresses de victimes.
Tu vires donc :
$objet .= stripslashes($_POST['titre']);
et tu ajouteras plus bas :
$msg .= "Le titre est " . stripslashes($_POST['titre']) . "rn";
$msg ="msg de ";
$msg .= $exp;
$msg .= "nrnrnr";
Attention, il y a une erreur ici : la fin de ligne standard est CR LF,
c'est-à-dire "rn", et pas le contraire.
Je ne suis pas sûr que le CR LF soit nécessaire ici, mais en tout cas ce
n'est pas LF CR. Cela dit, tu fais bien d'y mettre une adresse en dur
car cela va aussi dans les entêtes.
Ah ! Les warnings, ce ne serait pas par hasard quelque chose comme « les
entêtes ont déjà été envoyés » ?
Dans ce cas, voir <http://faqfclphp.free.fr/#rub2.12>.
P.-S. : ton adresse n'est pas valide, et elle n'est même pas bien
formée. Dans ce cas, il est très vivement recommandée qu'elle soit
terminée par « .invalid » (et bien formée, cela va de soi). Donc :
<remy@fctpas.fr.invalid>.
Tu devrais vérifier les paramètres que tu reçois de l'extérieur, mais bon, là ça ne va pas dans les entêtes alors il n'y a pas trop de risques (sinon que tu peux recevoir un courriel un peu bizarre).
/*on formate les chaine d'objet et de corps du mail */ $objet = "......."; $objet .= stripslashes($_POST['titre']);
AAAAARGHHH !!! SURTOUT PAS !!! Ceci va dans les entêtes, et donc un spammeur pourrait très bien détourner ce champ pour spammer la terre entière en y ajoutant quelques milliers d'adresses de victimes.
Tu vires donc : $objet .= stripslashes($_POST['titre']); et tu ajouteras plus bas : $msg .= "Le titre est " . stripslashes($_POST['titre']) . "rn";
$msg ="msg de "; $msg .= $exp; $msg .= "nrnrnr";
Attention, il y a une erreur ici : la fin de ligne standard est CR LF, c'est-à-dire "rn", et pas le contraire.
$msg .= $signature; /* envoi du mail a proprement parlé */
Zarathoustra a proprement parlé ! ;-)
$entetes = "From: ";
Je ne suis pas sûr que le CR LF soit nécessaire ici, mais en tout cas ce n'est pas LF CR. Cela dit, tu fais bien d'y mettre une adresse en dur car cela va aussi dans les entêtes.
mail("",$objet,$msg,$entetes);
Idem pour l'adresse en dur : ici c'est bon.
Header ("Location:index.html");
Attention, ceci est interdit par la norme définissant HTTP : l'URL doit être absolue et non relative.
ou Header ("Location:http://....chez.com/index.html");
À tout hasard, lire <http://faqfclphp.free.fr/#rub2.11> pour voir si un require() ne serait pas plus indiqué.
ne marche pas tout plein de warning avec le php5 de http://www.chez.com/
Tu as bien fait de copier-coller les warnings en question pour qu'on puisse te dire ce qui ne va pas, hein ! ;-)
Ah ! Les warnings, ce ne serait pas par hasard quelque chose comme « les entêtes ont déjà été envoyés » ?
Dans ce cas, voir <http://faqfclphp.free.fr/#rub2.12>.
P.-S. : ton adresse n'est pas valide, et elle n'est même pas bien formée. Dans ce cas, il est très vivement recommandée qu'elle soit terminée par « .invalid » (et bien formée, cela va de soi). Donc : .