[PHP] erreur dans le header

Bonjour,

j essaie de rediriger une page via un header

je suis sur une feuille TEXT.php et j envoie des donnees vers date.php
dans date.php, j ai mis en en tete
<? include "fonction.php";
if ($bouton == "voir")
{
header("location :/voir.php");
}
?>
dans fonction.php est decrit le test de la valeur envoyée par la variable $bouton. Cf

if ($_POST['destination']== "Visualiser")
{
$bouton="voir";

} else if ($_POST['destination']== "Saisir"){
$bouton="date";
} else {
$bouton="NADA";
}

quelle que soit ma syntaxe, j ai soit rien (et rien ne fonctionne) soit le message ci dessous :
Warning: Cannot modify header information - headers already sent by (output started at d:\program files\easyphp1-8\www\donati\fonction.php:3) in d:\program files\easyphp1-8\www\donati\date.php on line 4

Qui peut m aider ... ca fait qq jours que je suis sur ce pb
merci
Configuration: Windows XP
Firefox 2.0.0.11

8 réponses

  1. tu ne peut modifier les informations du header QUE et uniquement si aucune autre donnée n'a été envoyée.
    En pratique, uniquement si tu n'es pas entré dans le "body".
    1. Bonjour

      Première remarque : la balise de début de php est <?php et non pas <?
      <? marche marchera ou ne marchera pas selon la configuration du serveur, <?php marchera toujours

      Il ne doit y avoir aucun envoi de caractère avant le header. D'après le message d'erreur, tu envoies des caractères ligne 3 de fonction.php. Tu as peut-être un simple espace ou ligne vide avant le <?php du fichier fonction.php, ou une erreur à cette ligne 3 qui fait que php envoie un message d'erreur. Tu as peut-être carrément oublié le <?php dans ce fichier ?
      1. effectivement, y avait un condensé des 2 ;o)
        d abord de la balise body et html dans la feuille fonction
        puis des lignes blanches dans fonction.
        ca c est corrigé, je n ai plus le message d erreur mais le header fonctionne pas car je ne suis pas redirigé.
        Bien que je touche le fond, je vais continuer a creuser :o) et a chercher tout azimut
        @+
        1. affiche $_POST['destination'] et rappelle-toi que Visualiser n'est pas la même chose que visualiser ...
          1. j ai bien vérufié la casse, j ai meme pensé a placer le exit; apres le header pour sortir proprement.
            quand je mets le exit; la feuille se bloque (plus d'affichage de ce qui suit: j en deduis que la syntaxe est bonne, mon if ... Visualiser est lu, ca rentre dans la condition puis ca se bloque. mais la redirection n a pas fonctionné.
            quand je leve exit, ca m affiche tous mes echo de mes variables (de mes $_POST) puis la page 'date.php' continue a s afficher.
            il me semble que j avais deja eu ce pb lorsque je travaillais encore, mais je ne me souviens plus comment je m en etais sorti.
            je continue a creuser ;o))))
            merci encore
            1. header("Location: /voir.php");
              pas d'espace entre Location et :
              espace entre : et la suite
              1. Super ! j ai aussi ajouté 1 parenthese dans les conditions if (($_POST etc ...
                et ca a marché du 1er coup.

                je te dois une potion de todd (ou 1 ti punch si tu preferes ;o)))