Besoin d'aide pour envoi d'email depuis mon site SVP

Fermé
surfeur10 Messages postés 2 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 30 décembre 2012 - Modifié par surfeur10 le 30/12/2012 à 16:20
 surfeur10 - 30 déc. 2012 à 21:07
Bonjour,

Je suis actuellement étudiant à la fac et nous avons pour projet de créer un site, seulement j'ai peu de notions, donc j'ai essayer d'apprendre par moi même en essayant et en me cultivant sur le net (pas toujours très bon ^^)

Je parvient donc à crée mon site mais nous avons pour commande de mettre la possibilité d'envoyer un email depuis notre site.

Du coup un peu en galère je cherche sur le net et voila sur quoi je tombe :
http://wiki.lws-hosting.com/doku.php/comment_inserer_un_formulaire_mail_a_mon_site_web#rateanker_54202350e0375e845503.76028428

Du coupe je me sert de cela et de la méthode simple (la 2e)
Jusque la tout va bien.

Je remplace mon email et mon domaine et met le tout en ligne.
Mais au moment d'envoyer un email, cela se complique.

Je réussi à aller sur la page du formulaire d'email, à le remplir et clique sur "envoyer". et la... miracle le mail s'envoie et je le reçoit sur mon adresse mail, mail un message d'erreur s'affiche sur l'écran de mon ordi :
--Warning: Cannot modify header information - headers already sent by (output started at /mnt/169/sda/7/6/grimperensecurite/formmail2.php:3) in /mnt/169/sda/7/6/grimperensecurite/formmail2.php on line 29--

Alors que d'après ce que j'ai compris, il devrai s'afficher le message du fichier formail2_ok, à savoir : --Merci pour votre message nous allons vous répondre au plus vite--


Bizare car je reçoit tout de même l'email.
Je pense donc qu'il y à une erreur dans le html au niveau du lien; je vous copie mon script (je crois que cela s'appel comme ça) pour que vous puissiez m'aider :

----------
<?php /* Remplacer votre_adresse@mail.net par votre adresse mail
Remplacer www.votre_domaine.net par votre nom de domaine */

$adresse = "Jai remplacer ici comme demandé au dessus ";
$site = "Jai remplacer ici comme demandé au dessus ( mais sans le www. car quand je tape l'adresse de mon site avec le www. cela ne fonctionne pas sur le net)";

$TO = $adresse;

$head = "From: ".$adresse."\n";
$head .= "X-Sender: <".$adresse.">\n";
$head .= "X-Mailer: PHP\n";
$head .= "Return-Path: <".$adresse.">\n";
$head .= "Content-Type: text/plain; charset=iso-8859-1\n";

$sujet = "Formulaire de contact";

$informations = "
Nom: ".$_POST['realname']." \r\n
Email du formulaire: ".$_POST['email']." \r\n
Sujet du formulaire: ".$_POST['title']."\r\n
Message: ".$_POST['comments']." \r\n
";

$res = mail($TO, $sujet ,$informations, $head);

if (true == $res) {
Header("Location: [http://]".$site."/formail2_pok.html" );
} else {
Header("Location: [http://]".$site."/formail2_pasok.html" );
}
?>
</head>
<body>
<br>
<br>
</body>
</html>
----------

Je pense que c'est cela qui ne va pas : Header("Location: [http://]".$site."/formail2_pok.html" );
J'espère que quelqu'un pourra m'aider.
J'ai essayer plusieurs choses mais sans résultat.
tout mes fichiers sont bien en ligne et comporte exactement le même nom

Merci d'avance
Valentin


<config>Windows Vista / Firefox 17.0</onfig>
A voir également:

3 réponses

Utilisateur anonyme
30 déc. 2012 à 16:27
As-tu regardé dans tes mails indésirables?
Sinon phpmailer est vraiment pas mal.

See U
0
surfeur10 Messages postés 2 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 30 décembre 2012
30 déc. 2012 à 16:32
je reçoit bien les email envoyés, seulement quand on envoi un email de mon site, après avoir cliqué sur le bouton envoyer il s'affiche un message d'erreur :
--Warning: Cannot modify header information - headers already sent by (output started at /mnt/169/sda/7/6/grimperensecurite/formmail2.php:3) in /mnt/169/sda/7/6/grimperensecurite/formmail2.php on line 29--

Alors que d'après ce que j'ai compris, il devrai s'afficher le message du fichier formail2_pok, à savoir : --Merci pour votre message nous allons vous répondre au plus vite--


donc en gros je reçoit l'email mais les personnes qui me l'envoient ne sont pas averties que leur email est parti car un message d'erreur s'affiche.
0
Quelqu'un pour m'aider svp??
0
Bonsoir,
Comportement normal de PHP qui t'avertit très clairement que tu envoies des données au navigateur AVANT l'utilisation de header() car je vois dans ton code un </head> juste après ton code PHP donc j'en déduit qu'AVANT ton script PHP il y a un <html><head> etc...
Tu n'as pas besoin de code HTML dans ce fichier puisque quoiqu'il arrive, ton script va rediriger sur formail2_pok.html ou bien sur formail2_pasok.html en fonction de la condition if
Donc il te suffit de placer ton code PHP dans un fichier (exemple traitement.php) sur lequel pointera l'attribut action de ton formulaire :
<form method="post" action="traitement.php">

D'autre part, supprime les crochets (inutiles) dans les header() comme ceci :
header("Location: http://".$site."/formail2_pok.html");
header("Location: http://".$site."/formail2_pasok.html");
0
le top; tout fonctionne.
Merci pour l'aide !!!
0