Formulaire PHP

Fermé
titeyes - 25 févr. 2010 à 17:10
 titeyes - 25 févr. 2010 à 18:44
Bonjour,

J'ai enfin réussi à réaliser un formulaire en php, il y a juste un ptit problème à la fin!

J'aimerais que losque l'utilisateur click sur le bouton "envoyer" cela l'emène sur une autre page,
J'ai donc utiliser le code
Header("Location: http://www.crealye.fr/merci.html");

Mais quand je fais un teste, une autre page s'ouvre en disant :
"Warning: Cannot modify header information - headers already sent by (output started at /homez.337/crealye/www/traitement1.php:2) in /homez.337/crealye/www/traitement1.php on line 15
".

Quel est le problème?
Merci

4 réponses

bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
25 févr. 2010 à 17:12
en fait tu choisit la page ou ton utilisateur est envoyé dans la déclaration du formulaire:
<form method="get" action="TA_PAGE.php" >
0
Oui, ma page PHP fonctionne.
Mais ce que j'aimerais ce que lorsque l'utilisateur click sur envoyer cela le remène au site. Tandis que là, lorsqu'on click sur envoyer on a une page d'erreur qui s'affiche.
Sinon j'ai bien mon formulaire qui s'envoie!
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
25 févr. 2010 à 17:45
Tu ne peux pas avoir de caractère avant le "<?php" et tu ne dois faire aucun echo/print(f)
0
Je pense q'on ne se comprends pas bien!
Donc je reprends.
J'ai réaliser un formulaire en PHP.

Avec ma pages HTML:
<form method=POST action=traitement1.php >
<input type=hidden name=subject value=formulaire>
<font face="century gothic" size="2" color="#ffffff">Votre email :<br>
<input type="text" name="email" value=""><br><br></font>
<font face="century gothic" size="2" color="#ffffff">Votre sujet :<br>
<input type="text" name="sujet" value=""><br><br></font>
<font face="century gothic" size="2" color="#ffffff">Votre message :<br>
<textarea name="texte" id="zone de texte" cols="45" rows="5"></textarea></font>
<div id="bouton">
<INPUT type="reset" name="Effacer" value="Effacer">
<INPUT type="submit" name="envoyer" value="Envoyer">
</div>
</form>

Et ma page PHP:
<?php
$TO = "titeyes@hotmail.fr";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://www.crealye.fr/merci.html");
?>

J'aimerais lorsque l'utilisateur click sur envoyer, cela l'amène à la page http://www.crealye.fr/merci.html.
J'ai donc utiliser Header("Location: http://www.crealye.fr/merci.html"); mais cela ne fonctionne pas.

Merci pour votre aide
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
25 févr. 2010 à 17:56
C'est toi qui ne comprends pas.
"headers already sent" : les entêtes HTTP ont déjà été envoyées, alors tu ne peux plus les modifier avec la fonction header(). Et les entêtes sont envoyées avant le premier caractère (extérieur à "<?php" ou via un echo) ou à la fin de l'exécution de la page.
Comme tu ne fais aucun echo, il y a sans doute un caractère avant "<?php" (les espaces comptent).
Regarde si tu es en UTF-8 sans ou avec BOM.
0
C'est bon ça marche!
Il fallait que je déplace mon Header sur le première ligne, pour rediriger l'internaute!

Code : PHP
<?php
header("Location: http://www.crealye.fr/merci.html");
$TO = "titeyes@hotmail.fr";
$h = "From: " . $TO;
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
?>


Merci beaucoup!!!!
0