Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

redirection

2 réponses
Avatar
remy
bonjour

je cherche une solution plus élégante que le truc que j'ai fait

<?php
$signature=" Msg envoier par ....";


$exp = $_POST['nom'];
$exp .= " add mail ";
$exp .= $_POST['add_email'];
/*on formate les chaine d'objet et de corps du mail */
$objet = ".......";
$objet .= stripslashes($_POST['titre']);
$msg ="msg de ";
$msg .= $exp;
$msg .= "\n\r\n\r\n\r";
$msg .= stripslashes($_POST['msg']);
$msg .= "\n\r\n\r\n\r";
$msg .= $signature;
/* envoi du mail a proprement parlé */
$entetes = "From: remy.aumeunier@libertysurf.fr\n\r ";
mail("remy.aumeunier@libertysurf.fr",$objet,$msg,$entetes);


?>
<script type="text/javascript">
<!--
window.location = "index.html"
//-->
</script>
<?

?>


en gros je voudrais sortir le javascript
mais

Header ("Location:index.html");
ou
Header ("Location:http://....chez.com/index.html");
exit();

ne marche pas tout plein de warning avec le
php5 de http://www.chez.com/


même chose avec

session_start();
session_unset();
session_destroy();

bon bref je ne suis pas doué et ne cherche pas vraiment a le devenir
mais le javascript dans du code php je trouve cela limite

merci pour tout solution ou explication même partiel
remy





--
http://remyaumeunier.chez-alice.fr/

2 réponses

Avatar
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

<?php
$signature=" Msg envoier par ....";



:-D

$exp = $_POST['nom'];
$exp .= " add mail ";
$exp .= $_POST['add_email'];



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 .= stripslashes($_POST['msg']);
$msg .= "nrnrnr";



Idem.

$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 ! ;-)

même chose avec

session_start();
session_unset();
session_destroy();



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
Avatar
remy
Olivier Miakinen a écrit :

Cordialement,



merci pour les lien commentaire problème règle

remy

--
http://remyaumeunier.chez-alice.fr/