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

Bibliothèques et frameworks PHP Discussion :

[FPDF] Pourquoi : FPDF error: Some data has already been output, can't send PDF file ?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut [FPDF] Pourquoi : FPDF error: Some data has already been output, can't send PDF file ?
    Bonjour,

    Voici le code qui génère mon fichier PDF :
    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
    46
    47
    <?php
    	include('configuration.php');
    	include(PATH_FPDF.'fpdf.php');
     
    	$largeur 	= 143;
    	$hauteur 	= 92;
    	$espace 	= 37;
    	$titre 		= 'JANVIER 2010';
    	$type 		= '201001';
     
    	class PDF extends FPDF
    	{
    		function Header()
    		{
     
    		}
    		function Footer()
    		{
    			$this->SetY(-15);
    			$this->SetFont('Arial','',8);
    			$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
    		}
    	}
     
    	$pdf = new PDF('P','mm','A4');
    	$pdf->AliasNbPages();
     
    	$pdf->AddPage();
    	$pdf->SetFont('Arial','B',15);
    	$pdf->Cell(80);
    	$pdf->Cell(30,10,utf8_decode($titre),0,0,'C');
    	$pdf->Image('../images/graphiques/'.$type.'-temperature.png',(210-$largeur)/2,$espace,$largeur,$hauteur);
    	$pdf->Image('../images/graphiques/'.$type.'-pointderosee.png',(210-$largeur)/2,$espace*2+$hauteur,$largeur,$hauteur);
     
    	$pdf->AddPage();
    	$pdf->Image('../images/graphiques/'.$type.'-humidite.png',(210-$largeur)/2,$espace,$largeur,$hauteur);
    	$pdf->Image('../images/graphiques/'.$type.'-pression.png',(210-$largeur)/2,$espace*2+$hauteur,$largeur,$hauteur);
     
    	$pdf->AddPage();
    	$pdf->Image('../images/graphiques/'.$type.'-ventvitesse.png',(210-$largeur)/2,$espace,$largeur,$hauteur);
    	$pdf->Image('../images/graphiques/'.$type.'-ventdirection.png',(210-$largeur)/2,$espace*2+$hauteur,$largeur,$hauteur);
     
    	$pdf->AddPage();
    	$pdf->Image('../images/graphiques/'.$type.'-precipitation.png',(210-$largeur)/2,$espace,$largeur,$hauteur);
     
    	$pdf->Output();
    ?>
    J'ai l'erreur suivante :
    FPDF error: Some data has already been output, can't send PDF file
    C'est depuis que j'ai convertis mon fichier en UTF-8, étrange...

    A priori, c'est à cause du include :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include('configuration.php');
    Car quand je place en début de fichier ça :
    J'ai le warning suivant :
    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\site\php\configuration.php:1) in C:\wamp\www\site\php\FPDF v1.6\fpdf.php on line 1017
    Voici mon fichier inclus :
    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
    <?php
    	define('DB_HOST',					'localhost');
    	define('DB_USER',					'root');
    	define('DB_PASSWORD',				'');
    	define('DB_NAME',					'base');
     
    	define('ALTITUDE',					'127');
    	define('COPYRIGHT',					'(C) 2008-2010 site');
     
    	define('GRAPHIQUE_HAUTEUR',			'350');
    	define('GRAPHIQUE_LARGEUR',			'540');
    	define('GRAPHIQUE_TITRE',			'TITRE DU GRAPHIQUE');
    	define('GRAPHIQUE_COULEUR_CLAIR',	'darkolivegreen3@0.4');
    	define('GRAPHIQUE_COULEUR_FONCE',	'#458B00');
     
    	define('PATH_GRAPHIQUES',			'C:\\wamp\\www\\site\\images\\graphiques\\');
    	define('PATH_WEBCAM',				'C:\\wamp\\www\\site\\images\\webcam\\');
    	define('PATH_CSV',					'C:\\wamp\\www\\site\\csv\\');
    	define('PATH_PHP',					'C:\\wamp\\www\\site\\php\\');
    	define('PATH_JPGRAPH',				'JPGraph v2.3.3/src/');
    	define('PATH_FPDF',					'FPDF v1.6/');
    ?>
    Pourriez-vous m'aider à trouver ce qui provoque ce problème ?

    EDIT du 01/03/2010 à 13h03 :
    J'ai essayé avec un fichier configuration2.php créé pour l'occasion avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    	define('PATH_FPDF','FPDF v1.6/');
    ?>
    Ça ne fonctionne pas mieux! J'ai exactement la même erreur...

    EDIT du 01/03/2010 à 14h33 :
    Voici un code simplifié qui marche seulement si je mets ob_end_clean() :
    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
    46
    47
    48
    49
    50
    <?php
    	ob_end_clean();
     
    	//include('configuration.php');
    	//include(PATH_FPDF.'fpdf.php');
    	include('FPDF v1.6/fpdf.php');
     
    	$largeur 	= 143;
    	$hauteur 	= 92;
    	$espace 	= 37;
    	$titre 		= 'JANVIER 2010';
    	$type 		= '201001';
     
    	class PDF extends FPDF
    	{
    		function Header()
    		{
     
    		}
    		function Footer()
    		{
    			$this->SetY(-15);
    			$this->SetFont('Arial','',8);
    			$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
    		}
    	}
     
    	$pdf = new PDF('P','mm','A4');
    	$pdf->AliasNbPages();
     
    	$pdf->AddPage();
    	$pdf->SetFont('Arial','B',15);
    	$pdf->Cell(80);
    	$pdf->Cell(30,10,utf8_decode('MÉTÉO DE BEAUVAL - '.$titre),0,0,'C');
    	$pdf->Image('../images/graphiques/'.$type.'-temperature.png',(210-$largeur)/2,$espace,$largeur,$hauteur);
    	$pdf->Image('../images/graphiques/'.$type.'-pointderosee.png',(210-$largeur)/2,$espace*2+$hauteur,$largeur,$hauteur);
     
    	$pdf->AddPage();
    	$pdf->Image('../images/graphiques/'.$type.'-humidite.png',(210-$largeur)/2,$espace,$largeur,$hauteur);
    	$pdf->Image('../images/graphiques/'.$type.'-pression.png',(210-$largeur)/2,$espace*2+$hauteur,$largeur,$hauteur);
     
    	$pdf->AddPage();
    	$pdf->Image('../images/graphiques/'.$type.'-ventvitesse.png',(210-$largeur)/2,$espace,$largeur,$hauteur);
    	$pdf->Image('../images/graphiques/'.$type.'-ventdirection.png',(210-$largeur)/2,$espace*2+$hauteur,$largeur,$hauteur);
     
    	$pdf->AddPage();
    	$pdf->Image('../images/graphiques/'.$type.'-precipitation.png',(210-$largeur)/2,$espace,$largeur,$hauteur);
     
    	$pdf->Output();
    ?>
    Pourquoi suis-je obligé de mettre ce ob_end_clean() et que ça ne marche pas sans ?
    Je précise que ça marche uniquement en local avec WAMP mais pas en ligne... En ligne, il m'affiche le warning et l'erreur FPDF.

    EDIT du 01/03/2010 à 14h58 :
    Voci le code du fichier : meteo-archives-201001-pdf.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    	include('/home/moi/sites/site/php/FPDF v1.6/fpdf.php');
    	$pdf = new FPDF('P','mm','A4');
    	$pdf->AddPage();
    	$pdf->Output();
    ?>
    Et l'erreur :
    Warning: Cannot modify header information - headers already sent by (output started at /home/moi/sites/site/php/meteo-archives-201001-pdf.php:1) in /home/moi/sites/site/php/FPDF v1.6/fpdf.php on line 1017
    FPDF error: Some data has already been output, can't send PDF file
    Pourquoi cette erreur, dans un seul fichier, je ne comprends pas...

    Merci,
    ZiP

  2. #2
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    J'ai résolu mon problème en convertissant à nouveau mon fichier en ANSI.

    Le fichier au format UTF-8 provoquait des erreurs...

    ZiP

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

Discussions similaires

  1. [PDF] Erreur lib HTML2PDF : Some data has already been output, can't send PDF file
    Par sooprano dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 15/06/2015, 04h48
  2. [FPDF] FPDF error: Some data has already been output, can't send PDF file
    Par jmnicolas dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 12/07/2010, 19h30
  3. Réponses: 5
    Dernier message: 01/02/2010, 16h43
  4. [FPDF] FPDF error: Some data has already been output, can't send PDF file
    Par dolfy dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/10/2008, 15h37
  5. [phpToPDF] Erreur d'affichage:Some data has already been output, can't send PDF file
    Par agbere dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 12/08/2008, 08h19

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