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 :

pb avec entête header


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut pb avec entête header
    Bonjour,
    je rencontre une erreur de ce type lorsque je demande d'afficher ma page aperçu

    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\blob\apercu.php:1) in c:\program files\easyphp1-8\www\blob\apercu.php on line 22
    je n'arrive pas a comprendre pourquoi, quelqu'un aurait_il une idée. merci

  2. #2
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut
    du code a été envoyé au client avant l'instruction header
    vu que c'est à la ligne 1, t'aurais pas un saut de ligne avant ton <?php par hasard ?
    Dia [ Page DVP ] [ Site pro ]

  3. #3
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    j'ai verifier mon fichier et je n'ai aucun espace ou retour chariot.

    Ma question
    : doit on activer quelque chose pour utiliser la fonction "header" dans php car j'ai l'impression qu'il n'iterprete pas le contenu binaire pour l'affichage de ma requete.

  5. #5
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, il ne faut rien activer de spécial pour utiliser header.

    Tu n'inclus pas cette page dans une autre par hasard ?

    Sinon, tu pourrais nous montrer un peu de code ?

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    ok voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    	include("connexion.php");
    	$req = "SELECT img_nom, img_id ".
    			"FROM images ORDER BY img_nom";
     
    	$ret = mysql_query ($req) or die (mysql_error ());
    	while ($col = mysql_fetch_row($ret))
    	{
    		echo "<a href=\"apercu.php?id=".$col[1]. 
    					"\">".$col[0]."</a><br />";
    	}
    ?>

    apercu.php

    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
    <?php
    /*  SCRIPT QUI AFFICHE CHAQUE APERCU DES IMAGES*/
    //Si variable non vide
    if(isset($_GET['id']))
    	{
    	//Affectation de la variable 
    	$id = intval($_GET['id']);
     
    	//Connexion a la base
    	include("connexion.php");
     
    	//Requete qui renvoie des param suivant $id  
    	$req = "SELECT img_id, img_type, img_blob ".
    			"FROM images WHERE img_id = ".$id;
     
    	//Retourne la requete ou renvoie une erreur
    	$ret = mysql_query ($req) or die (mysql_error());
    	$col = mysql_fetch_row ($ret);
     
    	//Test si enregistrement different de l'id retourné
    	if (!$col[0]){
    		echo "Id image inconnu";
    	}
    	else {
    		header("Content-type: ".$col[1]);
    		echo $col[2];
    		}
    	}
    else
    {
    	echo "mauvaise id";
    }
    ?>

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut
    dans ton fichier connexion.php, tu fais des echo()... et ensuite dans ton fichier apercu.php, tu essaie de faire un header(), mais ton echo a déja retourné quelquechose au navigateur, donc le header a déja été envoyé au navigateur. Tu ne peux donc pas faire de header().

    Enleves les echo() de ton fichier connexion.php et ca devrait fonctionner.

  8. #8
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    Comme l'on rappelé les autres, il ne faut aucun output avant les call à header() (sauf si on utilise l'output buffering). Pas même de carriage return qui ont tendance à trainer dans les scripts après la partie fermante "?>". Donc attention aux include! Une solution c'est de ne jamais mettre le "?>" si tu n'en as pas besoins

  9. #9
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    le premier fichier est liste.php et non pas connexion.php
    iun fichier "include" dans mon fichier liste.php pour la connexion, je suis obligé de faire un echo pour pouvoir affiché ce qui est retourné par ma requete car après ce lien appel le fichier apercu.php qui utilise un header!!!

  10. #10
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut
    Citation Envoyé par loopsy
    le premier fichier est liste.php et non pas connexion.php
    iun fichier "include" dans mon fichier liste.php pour la connexion, je suis obligé de faire un echo pour pouvoir affiché ce qui est retourné par ma requete car après ce lien appel le fichier apercu.php qui utilise un header!!!
    C'est exactement ce qu'on te dit, tu ne peux pas faire de echo() avant de faire un redirect avec la fonction header()... enleves ton echo() dans ton fichier connexion.php et ça va fonctionner.

  11. #11
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    desole mais il n'y a pas de echo dans mon fichier de connexion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    // Variable pour connexion vers la base
    $hote = 'localhost';
    $base = 'blob';
    $user = 'root';
    $pass = '';
    //Connexion
    $cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error());
    // selection de la base ou arret en cas d'erreur
    $ret = mysql_select_db($base) or die (mysql_error());
    ?>

  12. #12
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 702
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 702
    Par défaut
    d'après le message d'erreur, tu as un retour à la ligne ou un espace dans le fichier accueil.php sur la 1re ligne avant le "<?php"

  13. #13
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Bonjour,

    J'ai déjà eu ce problème lorsque j'ai modifié un même fichier sur plusieurs machines, une Linux et une Windows.
    Le problème venait d'un encodage différent de mes éditeurs de texte.
    Tu peux donc regarder ton fichier en mode hexa, si ça se trouve, tu à un caractère pourri qui peut même se trouver AVANT "<?php".

  14. #14
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    merci pour toute ces infos mais je rencontre tj le pb.
    D'ailleurs je viens de tester sur un autre script que je viens de faire et le pb est identique à l'appel d'un header j'ai tj une erreur. Après verif, mon fichier est encodé en UTF_8 et je ne vois rien ni blanc ou autre.
    Je ne sais comment resoudre mon pb please help me
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\traitement-formulaire\traitement_pret.php:1) in c:\program files\easyphp1-8\www\traitement-formulaire\traitement_pret.php on line 30

  15. #15
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Perso, avec mon problème UTF8 vs ASCII, j'avais été obligé de procéder de façon artisanale :

    - création d'un nouveau fichier vierge
    - ré écriture de la première ligne à la main
    - copier du code sans prendre la première ligne
    - coller dans un éditeur super basique qui ne gère pas l'encodage comme le bloc-note de windows
    - copier - coller de ce code dans mon nouveau fichier

    et ça l'avait fait.
    Mais une petite galère quand même...

    Bon courage

  16. #16
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    merci a tous j'ai enfin solutionné mon pb oufff!!!
    J'ai du modifier mon type d'encodage qui etait UTF_8 en ANSI et ça fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] pb avec un header
    Par joselito dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 14/01/2006, 20h08
  2. Problemes avec les header informations
    Par BernardT dans le forum Langage
    Réponses: 1
    Dernier message: 15/11/2005, 14h10
  3. Problème avec un HEADER
    Par Zebulonn dans le forum Langage
    Réponses: 4
    Dernier message: 19/10/2005, 14h56
  4. [HTML]Tableau avec entête fixe
    Par LE NEINDRE dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 18/08/2005, 12h40
  5. Réponses: 7
    Dernier message: 20/06/2005, 18h00

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