Formulaire PHP

titeyes -  
 titeyes -
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
Configuration: Windows Vista / Internet Explorer 7.0

4 réponses

  1. bloodchecker Messages postés 361 Statut Membre 35
     
    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
    1. titeyes
       
      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
  2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Tu ne peux pas avoir de caractère avant le "<?php" et tu ne dois faire aucun echo/print(f)
    0
    1. titeyes
       
      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
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  4. titeyes
     
    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