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 :

Warning: Header may not contain more than a single header !


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 6
    Par défaut Warning: Header may not contain more than a single header !
    Bonjour,

    cela fait plusieurs jours que je n'arrive pas à solutionner mon problème. En effet, il s'agit d'un site internet actuellement buggé conçu par un éditeur qui a fermé.

    Je tente de m'expliquer. Je suis dans l'interface administration et je souhaite éditer une fiche d'un bien immobilier contenant de nombreuses références.

    A la racine du répertoire /client1, j'ai ceci :

    • fpdf.php
    • generate.php
    • vitrine.php


    Contenu de generate.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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    <?
    include('../fonctions/fonctions.php');
    require('fpdf.php');
     
    class PDF extends FPDF
    {
    	function Footer()
    	{
    		$this->SetY(-25);
    		$this->SetFont('Arial','I',8);
    		$this->Cell(0, 5, "Agence Machin", 0, 1 ,'C');
    		$this->Cell(0, 5, "Tel. : - Fax : ", 0, 1 ,'C');
    		$this->Cell(0, 5, "www.site.com", 0, 1 ,'C');
    		$this->Cell(0, 5, "Document non contractuel.", 0, 1 ,'C');
    	}
    }
     
    $data = $_GET['data'];
    $data = unserialize(stripslashes($data));
    $ref = utf8_decode($data[0]);
    $prix = utf8_decode($data[1]);
    $texte = utf8_decode($data[3]);
    $secteur = utf8_decode($data[2]);
    $photo = $data[5];
     
    $db=connexion();
     
    //Instanciation de la classe dérivée
    $pdf=new PDF();
    $pdf->AliasNbPages();
    $pdf->AddPage();
     
    $pdf->SetFont('Arial', 'B', 24);
    $pdf->Cell(80);
    $pdf->Cell(30, 10, 'Agence', 0, 1,'C');
     
    $pdf->SetFont('Arial', '', 11);
    $pdf->Cell(50, 5, 'Ref.: '.$ref, 0, 0, 'L');
    $pdf->Cell(50, 5, $prix.' EUROS', 0, 0, 'R');
    $pdf->Cell(0, 5, $secteur, 0, 1, 'R');
     
    if($photo != "")
    	$pdf->Image('../photos/'.$photo.'.jpg', 55, 28, 90);
     
    $pdf->SetY(100);
    $pdf->Cell(0, 5, ' ', 0, 1);
    $pdf->MultiCell(0, 5, $texte, 0, 1);
    $pdf->Cell(0, 5, ' ', 0, 1);
    $pdf->Cell(0, 5, ' ', 0, 1);
     
    $sh = $data['8']['sh'].' m²';
    $sf_rec = $data['8']['sf_rec'].' m²';
    $sf_ter = $data['8']['sf_ter'].' m²';
    $sf_jard = $data['8']['sf_jard'].' m²';
     
    $pdf->Cell(0, 5, 'Surfaces (environ):', 1, 1, 'L');
    $pdf->Cell(50, 5, 'Habitable: '.utf8_decode($sh), 1, 0);
    $pdf->Cell(50, 5, 'Reception: '.utf8_decode($sf_rec), 1, 0);
    $pdf->Cell(45, 5, 'Terrain: '.utf8_decode($sf_ter), 1, 0);
    $pdf->Cell(45, 5, 'Jardin: '.utf8_decode($sf_jard), 1, 1);
    $pdf->Cell(50, 5, 'Nb de pieces: '.$data['8']['nbpiece'], 1, 0);
    $pdf->Cell(50, 5, 'Nb de chambre: '.$data['8']['nbch'], 1, 0);
    $pdf->Cell(45, 5, $data['13'], 1, 0);
    $pdf->Cell(45, 5, $data['14'], 1, 1);
    $pdf->Cell(50, 5, 'Style: '.utf8_decode($data['8']['style']), 1, 0);
    $pdf->Cell(50, 5, 'Annee: '.$data['8']['annee'], 1, 0);
    $pdf->Cell(45, 5, 'Mitoyennete: '.$data['7']['mitoy'], 1, 0);
    $pdf->Cell(45, 5, 'Toiture: '.$data['7']['toit'], 1, 1);
    $pdf->Cell(100, 5, 'Chauffage: '.utf8_decode($data['8']['chauf']), 1, 0);
    $pdf->Cell(45, 5, 'Taxe d\'habitation: '.$data['10']['tx_hab'], 1, 0);
    $pdf->Cell(45, 5, 'Taxe fonciere: '.$data['10']['tx_fon'], 1, 1);
    $pdf->Cell(0, 5, ' ', 0, 1);
    $pdf->Cell(0, 5, ' ', 0, 1);
     
    $pdf->MultiCell(0, 5, utf8_decode($data['9']), 0, 1, 'L');
    $pdf->Cell(0, 5, ' ', 0, 1);
    $pdf->MultiCell(0, 5, 'Commentaires: '.utf8_decode($data['11']), 0, 1);
     
    $pdf->AddPage();
     
    $pdf->SetFont('Arial', 'B', 24);
    $pdf->Cell(80);
    $pdf->Cell(30, 10, 'Agence Machin', 0, 1,'C');
     
    $pdf->SetFont('Arial', '', 11);
    $pdf->Cell(50, 5, 'Ref.: '.$ref, 0, 0, 'L');
    $pdf->Cell(50, 5, $prix.' EUROS', 0, 0, 'R');
    $pdf->Cell(0, 5, $secteur, 0, 1, 'R');
    $pdf->Cell(0, 5, ' ', 0, 1);
     
    $unit = utf8_decode('m²');
    $pdf->Cell(20, 5, 'Niv.', 1, 0);
    $pdf->Cell(25, 5, 'Intitule', 1, 0);
    $pdf->Cell(20, 5, 'Surf. ('.$unit.')', 1, 0);
    $pdf->Cell(35, 5, 'Revetement', 1, 0);
    $pdf->Cell(90, 5, 'Commentaires', 1, 1);
     
    for($i = 1; $i <= count($data['12']); $i++)
    {
    	$pdf->Cell(20, 5, $data['12'][$i]['0'], 1, 0);
    	$pdf->Cell(25, 5, utf8_decode($data['12'][$i]['1']), 1, 0);
    	$pdf->Cell(20, 5, utf8_decode($data['12'][$i]['2']), 1, 0);
    	$pdf->Cell(35, 5, utf8_decode($data['12'][$i]['3']), 1, 0);
    	$pdf->MultiCell(90, 5, utf8_decode($data['12'][$i]['4']), 1, 1);
    }
     
    $pdf->Output();
    ?>


    et aboutissant vers un 'vitrine.php".

    Contenu de vitrine.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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    <?php
    include('../fonctions/fonctions.php');
    // index.php
    $db=connexion();
    if (isset($_GET['bien']))
    {
    	$bien=$_GET['bien'];
    	$code=$bien;
    	include('../fonctions/donnees.php');
     
    	$ref=$biens['ref'];
    	$prix=$biens['pdv'];
    	$prix=number_format($prix, 0, ',', ' ');
     
    	$s = mysql_query("SELECT texte FROM secteur WHERE num = ".$biens['secteur']) or die(mysql_error());
    	$s = mysql_fetch_array($s);
    	$secteur = $s['texte'];
    	$secteur = $secteur." - ".$biens['secteur_libre'];
     
    	$texte=html_entity_decode($pub);
    	if ($appart['ap_etage']==0) $appart['ap_etage']="RDC";
    	if ($appart['asc']==1) $ap_asc="Ascenseur : oui";
    	else $ap_asc="";
    	if ($appart['inter']==1) $ap_inter="Interphone : oui";
    	else $ap_inter="";
     
    	if ($descriptif['gara']!=0) $garage="Garage : ".$descriptif['gara']." voiture(s)";
    	else $garage="";
    	if ($descriptif['parking']!=0) $parking="Parking : ".$descriptif['parking']." voiture(s)";
    	else $parking="";
     
    	$env="";
    	if ($environ['com']!="")
    	{
    		$env="Commerce : ".$environ['com'];
    		if ($environ['trans']!="") $env.=", Transport en commun : ".$environ['trans'];
    		if ($environ['ecole']!="") $env.=", Ecoles : ".$environ['ecole'];
    	}
    	else
    	{
    		if ($environ['trans']!="")
    		{
    			$env="Transport en commun : ".$environ['trans'];
    			if ($environ['ecole']!="") $env.=", Ecoles :".$environ['ecole'];
    		}
    		else
    		{
    			if ($environ['ecole']!="") $env="Ecoles : ".$environ['ecole'];
    		}
    	}
     
    	$environ=$env;
    	$divers=$environ['autres'];
    	if ($divers!="") $divers="Autres : ".$divers;
    	if ($appart['ap_cave']!="") $appart['ap_cave']="Cave : ".$appart['ap_cave'];
     
    	if ($appart['ap_balcon']!="") $appart['ap_balcon']="Balcon : ".$appart['ap_balcon'];
    	if ($maison['mitoy']==0 OR $maison['mitoy']==3) 
    	{
    		$maison['mitoy']="Non";
    	}
    	elseif ($maison['mitoy']==1) 
    	{
    		$maison['mitoy']="Oui - 1 coté";
    	}
    	elseif ($maison['mitoy']==2) 
    	{
    		$maison['mitoy']="Oui - 2 cotés";
    	}
    	$commentaire=$descriptif['comment'];
     
    	$commentaires=$descriptif['comment'];
    	$descriptif['chauf']=$descriptif['chauf']." / ".$financier['chauff']." euros/an";
    	$i=1;
    	$query="SELECT * FROM piece WHERE biens='".$code."' ORDER BY niv ASC";
    	$result=myexe($query,"erreur piece");
     
    	while($lig = mysql_fetch_array($result,MYSQL_ASSOC))
    	{
    		if ($lig['niv']==0) $niv[$i]="RDC";
    		if ($lig['niv']==1) $niv[$i]="1er étage";
    		if ($lig['niv']==2) $niv[$i]="2ème étage";
    		if ($lig['niv']>2) $niv[$i]=$lig['niv']."ème étage";
    		if ($lig['niv']=="-1") $niv[$i]="sous-sol";
    		if ($lig['niv']<"-1") $niv[$i]=$lig['niv'];
    		$inti[$i]=$lig['intitule'];
    		$sf[$i]=$lig['sh'];
    		$revet[$i]=$lig['revet'];
    		$comment[$i]=$lig['descriptif'];
     
    		$det[$i] = array($niv[$i], $inti[$i], $sf[$i], $revet[$i], $comment[$i]);
     
    		$i=$i+1;
    	}
    	while($i<=35)
    	{
    		$niv[$i]="";
    		$inti[$i]="";
    		$sf[$i]="";
    		$revet[$i]="";
    		$comment[$i]="";
    		$i=$i+1;
    	}
     
    	$photo = str_replace('.jpg', '', str_replace('photos/', '', $_POST['imp']));
    	$data = array($ref, $prix, $secteur, $texte, $code, $photo, $appart, $maison, $descriptif, $environ, $financier, $commentaires, $det, $garage, $parking);
    	$dest = "generate.php?data=".serialize($data);
    	header("Location: $dest");
    	exit;
    }
    ?>

    La collecte des données fonctionne via donnees.php



    J'obtiens très souvent cette erreur dans l'interface d'administration et il est donc impossible d'atteindre la page générée et d'en imprimer le contenu. J'ai compris que fpdf.php servait à mettre en forme un pdf.

    L'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Header may not contain more than a single header, new line detected. in /srv/d_ncc2014/www/www.site.com.fr/htdocs/admin/client1/vitrine.php on line 108

    La line 108 fait référence à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: $dest");
    N'étant pas une spécialiste de php, je fais appel à la communauté pour me filer un coup de pouce.

    merci.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fait un

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 6
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    fait un
    Bonjour

    j'obtiens ceci

    string(2886) "generate.php?data=a:15:{i:0;s:4:"1431";i:1;s:7:"385 000";i:2;s:19:"Ville - St Germain";i:3;s:160:"Maison récente. Grande entrée avec dress ind et wc, sal/séj traversant, donnant sur véranda, cuis meublée/équipée, 4 CH, SDD. Jardin, Garage et cave !!";i:4;s:10:"1318844561";i:5;s:10:"1318857726";i:6;a:1:{s:8:"ap_etage";s:3:"RDC";}i:7;a:11:{s:4:"code";s:10:"1318844561";s:7:"nbetage";s:1:"1";s:5:"mitoy";s:12:"Oui - 1 coté";s:6:"sf_ter";s:1:"0";s:7:"sf_jard";s:1:"0";s:4:"toit";s:6:"tuiles";s:1:"a";s:0:"";s:10:"evacuation";s:1:"2";s:6:"depend";s:1:"0";s:7:"ldepend";s:0:"";s:7:"terrain";s:0:"";}i:8;a:20:{s:4:"code";s:10:"1318844561";s:2:"sh";s:3:"130";s:7:"nbpiece";s:1:"7";s:4:"nbch";s:1:"4";s:6:"sf_rec";s:2:"28";s:4:"expo";s:0:"";s:5:"chauf";s:19:"Gaz / 1000 euros/an";s:4:"gara";s:1:"1";s:7:"parking";s:1:"0";s:5:"style";s:7:"récent";s:5:"annee";s:0:"";s:9:"sf_carrez";s:1:"0";s:3:"vue";s:0:"";s:1:"a";s:0:"";s:7:"comment";s:0:"";s:5:"chaud";s:0:"";s:6:"ballon";s:0:"";s:4:"cuve";s:0:"";s:3:"dpe";s:0:"";s:3:"ges";s:0:"";}i:9;s:0:"";i:10;a:6:{s:4:"code";s:10:"1318844561";s:6:"tx_fon";s:4:"1400";s:6:"tx_hab";s:1:"0";s:1:"a";s:0:"";s:7:"edf_gdf";s:6:"500/an";s:6:"chauff";s:4:"1000";}i:11;s:0:"";i:12;a:14:{i:1;a:5:{i:0;s:8:"sous-sol";i:1;s:4:"cave";i:2;s:1:"0";i:3;s:5:"beton";i:4;s:0:"";}i:2;a:5:{i:0;s:3:"RDC";i:1;s:8:"Entrée ";i:2;s:1:"6";i:3;s:9:"carrelage";i:4;s:13:"oeil de boeuf";}i:3;a:5:{i:0;s:3:"RDC";i:1;s:9:"vestiaire";i:2;s:1:"3";i:3;s:9:"carrelage";i:4;s:14:"avec rangement";}i:4;a:5:{i:0;s:3:"RDC";i:1;s:2:"wc";i:2;s:1:"3";i:3;s:9:"carrelage";i:4;s:22:"lave main ave placards";}i:5;a:5:{i:0;s:3:"RDC";i:1;s:13:"Salon-séjour";i:2;s:2:"28";i:3;s:9:"carrelage";i:4;s:54:"1 baie vitrée, 1 pf sur veranda grd vitre sur veranda";}i:6;a:5:{i:0;s:3:"RDC";i:1;s:8:"véranda";i:2;s:2:"13";i:3;s:9:"carrelage";i:4;s:52:"2 grd fenetres +pf sur jardin, 2 velux tres lumineux";}i:7;a:5:{i:0;s:3:"RDC";i:1;s:7:"Cuisine";i:2;s:1:"9";i:3;s:9:"Carrelage";i:4;s:44:"meublée équipé, rencent 1 pf sur véranda";}i:8;a:5:{i:0;s:3:"RDC";i:1;s:14:"palier couloir";i:2;s:1:"5";i:3;s:16:"Parquet flottant";i:4;s:20:"1 wc , grand placard";}i:9;a:5:{i:0;s:3:"RDC";i:1;s:3:"SDD";i:2;s:3:"6.5";i:3;s:9:"Carrelage";i:4;s:100:"4 petites fenetres, grde cabine de douche, meuble 1 vasque avec rangement, brancmt Mach+ seche Linge";}i:10;a:5:{i:0;s:3:"RDC";i:1;s:9:"Chambre 1";i:2;s:2:"12";i:3;s:16:"parquet flottant";i:4;s:2:"1f";}i:11;a:5:{i:0;s:3:"RDC";i:1;s:9:"Chambre 2";i:2;s:2:"12";i:3;s:16:"Parquet flottant";i:4;s:14:"1f + 1 placard";}i:12;a:5:{i:0;s:3:"RDC";i:1;s:9:"Chambre 3";i:2;s:2:"10";i:3;s:17:"Parquet flottant";i:4;s:11:"1 pf balcon";}i:13;a:5:{i:0;s:3:"RDC";i:1;s:9:"chambre 4";i:2;s:2:"14";i:3;s:16:"Parquet flottant";i:4;s:3:"1 f";}i:14;a:5:{i:0;s:3:"RDC";i:1;s:6:"garage";i:2;s:1:"0";i:3;s:5:"beton";i:4;s:0:"";}}i:13;s:21:"Garage : 1 voiture(s)";i:14;s:0:"";}"
    Warning: Cannot modify header information - headers already sent by (output started at htdocs/admin/client1/vitrine.php:108) in /srv/d_ncc2014/www/htdocs/admin/client1/vitrine.php on line 109

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    je te conseil de mettre ton serialize en base64 tu feras un base64_decode a l'arrivé

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 6
    Par défaut
    Mon problème se situe au niveau des $data qui ajoutent des zone de textes libres et qui posent problème dans l'url générée. Je ne sais pas quoi faire

    $texte=html_entity_decode($pub);

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par M.I.A Voir le message
    Mon problème se situe au niveau des $data qui ajoutent des zone de textes libres et qui posent problème dans l'url générée. Je ne sais pas quoi faire
    fait comme j'ai dis et le problème est reglé

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/10/2012, 20h07
  2. Réponses: 4
    Dernier message: 25/05/2012, 19h31
  3. Réponses: 3
    Dernier message: 03/05/2010, 18h12
  4. Subquery returns more than 1 row
    Par Mathelec dans le forum Requêtes
    Réponses: 12
    Dernier message: 03/08/2006, 14h25
  5. [XSLT] not contains
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 25/02/2006, 10h18

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