IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Warning: Cannot modify header information


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut Warning: Cannot modify header information
    Salut tout le monde

    Enfin Big problème C pe être un grand mot mais ce genre d'erreur ma tjs donné du fils a retordre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\site acupuncteur\sympexe.php:3) in C:\wamp\www\site acupuncteur\sympexe.php on line 38
    La page sympexe.php sert a faire une recherche dans la BDD, la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <html>
    <head>
    <style>a:hover {color:#FFFFFF}</style>
    </head>
    <body bgcolor="#F3E0B4" link="#000000" alink="#000000" vlink="#000000">
    <br>
    <br>
    <center>
    <?php
    	$connect=mysql_connect("***","***","***");
    	$choix_db=mysql_select_db("***");
     
    	$select="SELECT num_sym FROM symptome WHERE nom_sym='$_POST[nom]'";
    	$res=mysql_query($select);
    	$row=mysql_fetch_row($res);
    	$nb=mysql_num_rows($res);
     
    	if ($nb==0)
    	{
    		echo "L'état <b>$_POST[nom]</b> n'existe pas<br>";
    		if (isset($_GET["cons"]))
    		{
    			echo "Cliquez <a href=\"consultation.php\" target=\"main\">ici</a> pour retourner à la page de consultation.";
    		}
    		else
    		{
    			echo "Cliquez <a href=\"searchsympt.php\" target=\"_self\">ici</a> pour effectuer une nouvelle recherche.";
    		}
    	}
    	else
    	{
    		if (isset($_GET["cons"]))
    		{
    			header("location:consultation.php?num=$row[0]");
    		}
    		else
    		{
    			header("location:searchsympt.php?num=$row[0]");
    		}
    	}
    ?>
    </center>
    </body>
    </html>
    Comme vous pouvez le voir ce n'est pas une page très compliquer, mais je sèche sur ce message d'erreur, vous voulez bien me filer un coup de main s'il vous plait

    MERCI

    PS : Avant je travaillais sur PHP4 avec easy PHP 1.7 et maintenant je bosse sur PHP5 avec WAMP5. Ca peut pe être vous aider

  2. #2
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    A big PB little solution -> Lire la doc sur la fonction header(), notament l'envoi de code avant de faire une redirection...

  3. #3
    Membre très actif
    Avatar de Wormus
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Par défaut
    J'utilise jamais header pour redirigé ma page
    D'abord je connais pas le vrai rôle de header mais je crois pas que ce soit ça
    et ensuite ça marche jamais (même erreur que toi)

    Si tu veux un conseil !! tu fais ta redirection avec du javaScript et ça marchera du 1er coup ^^

  4. #4
    Membre très actif
    Avatar de Wormus
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
          if (isset($_GET["cons"])) 
          { 
             <script language='javascript'>
             window.location.replace("consultation.php?num=<?print $row[0];?>");
            </script>
     
          } 
          else 
          { 
             <script language='javascript'>
             window.location.replace("searchsympt.php?num=<?print $row[0];?>");
            </script>
          }
    Maintenant si tu l'y arrive avec le header n'hésite pas à mettre ton résultat, ça pourra aussi m'aider

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Je ne suis pas d'accord, Wormus. Js n'est pas la bonne solution pour une redirection tant que tu n'as pas envoyé de données au navigateur. Ca oblige à un double envoi de page, et cela suppose que le client a activé js... Que des inconvénients.
    A mon avis, header doit être systématiquement préféré, sauf si la redirection dépend du client (action de l'utilisateur, détection du navigateur...).

  6. #6
    Membre très actif
    Avatar de Wormus
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Par défaut
    Ok je vais donc me renseigner sur le header

  7. #7
    Membre chevronné Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Par défaut
    Je confirme que le js pour faire ça, berk.

    Le seul point à faire attention avec le header est de ne pas envoyer de code html au navigateur avant, c'est tout.

    Bon courage.

  8. #8
    Invité
    Invité(e)
    Par défaut
    la bonne reponse au thread créé par neXistPa est la suivante : cette question est fréquemment posée
    donc de chercher dans la avant de poster...

    http://php.developpez.com/faq/?page=...s_already_sent

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    En dehors de la meilleure méthode (ou plutôt, en amont), est-ce que le fait d'envoyer du code HTML (donc de la présentation, un truc visuel) au navigateur alors qu'il sera redirigé ailleurs de toute manière (il n'aura donc pas trop l'occasion de voir votre superbe page) ne vous étonne pas ?
    Bien sûr, avec une redirection en JS ou en meta refresh, ça aurait pu se comprendre.

    L'intérêt de la fonction header() est de forcer le client à appeler une page différente de celle demandée, ce qui envoie très peu de données par le réseau (et donc va plus vite) et ne demande pas de présupposer (notamment) de la présence de JS sur le poste client.

    Comme le dit vg33 : que des avantages.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut
    Merci pour tous vos conseils, mais comment expliquez vous le faite que je ne rencontre pas ce problème avec :
    easyPHP 1.7 (apache 1.3.27, PHP 4.3.3) et
    MySQL 4.1

    C quand même curieux En plus j'ai très souvent utilisé cette méthode qui consiste a rediriger le client avec un HEADER() suivant certain choix qu'il aurait fait précédement ??? là je sèche carrément

    En tout cas je garde précieusement dans mes favoris le FAQ sur les HEADER()

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/02/2010, 20h32
  2. Warning: Cannot modify header information
    Par info3licen dans le forum Langage
    Réponses: 8
    Dernier message: 13/05/2009, 16h00
  3. [Système] Warning: Cannot modify header information
    Par white_tiger dans le forum Langage
    Réponses: 14
    Dernier message: 20/02/2008, 17h16
  4. Réponses: 1
    Dernier message: 17/07/2007, 11h49
  5. Réponses: 4
    Dernier message: 16/07/2007, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo