Probleme header php

Fermé
july - 7 mai 2009 à 15:06
 le père - 7 mai 2009 à 17:00
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

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

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