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
A voir également:

15 réponses

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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
july
 
nan en fait c'est la meme chose j'ai cru que mais fausse choix tj le mm soucis.
0
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
july
 
3C 3F 70 68 70 0D 0A 68 65 61 64 65 72 20 28 22

voila
0
le père
 
Donc, pas de caractères mystérieux. ça commence bien par <?php
Peux-tu montrer le script alors ?
0
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
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
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
le père
 
si je l'enleve ca marche tres bien
Ben alors pourquoi tu le mets ????
0
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
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