Probleme header php

july -  
 le père -
Bonjour,
voila j'ai un petit soucis.
je fais un upload d'image, je l stocke dans ma base (type blob)
mais au moment de l'afficher je dois faire un header:
header ("Content-type: ".$reponse['extension']);
evidement si je le met au niveau de mes variables il n'est plus en haute de la page et internet explorer rale
et si je le met en haut il ne connais pas les variables donc rale...
comment m'en sortir...

merci d'avance
Configuration: Windows XP Internet Explorer 8.0

15 réponses

  1. le père
     
    On ne se serait pas déjà croisés quelque part ?
    header ("Content-type: ".$reponse['extension']);
    evidement si je le met au niveau de mes variables il n'est plus en haute de la page et internet explorer rale

    Aucun rapport. Il faut que le header soit avant l'envoi des données à l'utilisateur, peu importe où il est par rapport aux variables PHP. il ne faut pas d'echo - ni même de ligne vide avant <?php
    0
  2. le père
     
    Ecris-tu ton texte en UTF-8 ou en iso-8859-1 ? Avec quel logiciel ?
    Cas de figure classique : Quand on écrit avec notepad++ en UTF8, il y a un caractère invisible ('BOM') en début de fichier. Il est envoyé avant les headers du PHP -> les headers ne marchent pas -> pas les cookies ni les sessions ni les Content-Type...
    0
  3. july
     
    possible je passe mon temps sur les tuto et les forom en ce moment.

    merci pour le cout de main ca marche jusqua un peu plus bas lol ca ne bloque plus au meme endroit dans l'interface mais plus loin
    0
  4. july
     
    je compren mieux pourquoi tu as dit ca j'ai vu l'autre post
    je code avec note pad ++ mais je suis en utf-8 sans bom
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. le père
     
    ca ne bloque plus au meme endroit dans l'interface mais plus loin
    On peut en déduire que ce problème-là est résolu mais que tu en as un autre ? C'est quoi le "plus loin" où tu bloques maintenant ?
    0
  7. july
     
    nan en fait c'est la meme chose j'ai cru que mais fausse choix tj le mm soucis.
    0
  8. le père
     
    Avec notepad++, tu dois pouvoir visualiser ton fichier en hexadécimal. Peux-tu donner les 5 premiers octets ?
    Et si tu ne peux pas avec notepad++ (je ne l'ai pas, je ne suis pas sûr qu'il le fasse) télécharge un quelconque outil sur internet, il y en a des tas.
    0
  9. july
     
    3C 3F 70 68 70 0D 0A 68 65 61 64 65 72 20 28 22

    voila
    0
  10. le père
     
    Donc, pas de caractères mystérieux. ça commence bien par <?php
    Peux-tu montrer le script alors ?
    0
  11. july
     
    il fait plus de 200 lignes donc je zappe un peu:

    <?php
    header ("Content-type:".$reponse['extension']); ?>
    <?php
    session_start();?>
    <?php require_once('../Connections/VISUM.php'); ?>
    <?php
    mysql_select_db($database_VISUM, $VISUM);
    ....
    /*--------------------------traitement vignette-----------------------*/
    //connexion a la base de donnees
    mysql_select_db($database_VISUM, $VISUM);

    //la requete qui recupere l'image a partir de l'identifiant
    $apercu = mysql_query("SELECT extension, vignette FROM pov WHERE id = ".$row_pov['id']) or exit (mysql_error());

    //si le resultat est different de 1
    if(mysql_num_rows($apercu) != 1) {
    $vignette= '<img src="../images/NO_pov.jpg"width="244" height="140">';}
    else {
    //on stocke les donnees dans un tableau
    $reponse = mysql_fetch_assoc($apercu);} ?>

    <!-----------------affichage-------------------------->

    <html>
    <head>
    <title>NUBES Info Frame</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link href="../interface/styleNUBES.css" rel="stylesheet" type="text/css">
    ....

    la partie traitement n'est pas fini car ca c'est mis a planter donc j'ai tout enllevez et je rajouter au fur a mesure pour voir ou ca n'allait pas.
    mon champ extensione st remplic orrectement sauf que mes jpeg sont des p-jpeg
    et mon champ longblob est rempli aussi
    0
  12. le père
     
    ce
    <?php
    header ("Content-type:".$reponse['extension']); ?>

    en début de programme est absurde. $reponse['extension'] n'est pas défini.
    Vire-le et dis ce qui se passe
    Remarque : ça n'est pas parce qu'il te pose des problèmes ailleurs qu'il est intelligent de le mettre ici.
    0
  13. july
     
    mais justement c'est ca qui me pose soucis
    si je l'enleve ca marche tres bien mais ou que je le mette ca plante
    0
  14. le père
     
    si je l'enleve ca marche tres bien
    Ben alors pourquoi tu le mets ????
    0
  15. july
     
    ben pour afficher mon image sinon ca marchera pas non
    quand je dis:
    si je l'enleve ca marche tres bien

    ca veut dire que ca plante pas
    0
  16. le père
     
    Ça serait quand même plus pratique si tu disais "ça marche bien" quand ça marche bien et "ça ne plante pas" pour dire que ça ne plante pas....

    Ça n'a aucune raison de planter si appelles la fonction header avant d'avoir envoyé quoi que ce soit au client. Mais pour ça, il ne faut pas plusieurs blocs <?php ..?> séparés par des sauts à la ligne, car ces sauts à la ligne n'étant pas entre les balises PHP, ils sont envoyés au client -> plus de headers possible. Et a fortiori, pas de <!---- etc ni de <HTML
    0