Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Bureautique
Bureautique Forum d'entraide sur la gestion dynamique de documents de bureautique (Word, Excel, OpenOffice...) avec PHP. Avant de poster -> Cours Excel, FAQ OpenXML, FAQ OpenDocument
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2011, 15h00   #1
Invité de passage
 
Femme Anne
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Anne
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
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 :
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 :
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 :
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 :
header("Location: $dest");
N'étant pas une spécialiste de php, je fais appel à la communauté pour me filer un coup de pouce.

merci.
M.I.A est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 17h09   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
fait un
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 17h40   #3
Invité de passage
 
Femme Anne
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Anne
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
Citation:
Envoyé par stealth35 Voir le message
fait un
Bonjour

j'obtiens ceci

Citation:
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
M.I.A est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 17h41   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
je te conseil de mettre ton serialize en base64 tu feras un base64_decode a l'arrivé
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 14h07   #5
Invité de passage
 
Femme Anne
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Anne
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
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

Citation:
$texte=html_entity_decode($pub);
M.I.A est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 14h15   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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é
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 14h29   #7
Invité de passage
 
Femme Anne
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Anne
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
oui j'aimerais bien mais je ne sais pas comment faire
M.I.A est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 14h36   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par M.I.A Voir le message
oui j'aimerais bien mais je ne sais pas comment faire
juste :
Code :
header("Location: " . base64_encode($dest));
et de l'autre coté
Code :
$data = base64_decodd($_GET['data']);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 14h44   #9
Invité de passage
 
Femme Anne
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Anne
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
merci de ton aide.

Dans vitrine.php

en remplaçant ceci

Citation:
$dest = "generate.php?data=".serialize($data);
par ce que tu as dit :

Citation:
header("Location: " . base64_encode($dest));

Puis dans generate.php

remplacement de

Citation:
$data = unserialize(stripslashes($data));
par

Citation:
$data = base64_decode($_GET['data']);
-> j'obtiens une page blanche, c'est à dire que j'ai bien le début de l'url mais pas ce qui doit suivre des datas.

Je me demande si
Citation:
$texte=html_entity_decode($pub)
; ne vient pas foutre le bazar du coup
M.I.A est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 14h49   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
plutôt

Code :
$dest = "generate.php?data=".base64_encode(serialize($data));
Code :
$data = unserialize(base64_decode($_GET['data']));
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 14h52   #11
Invité de passage
 
Femme Anne
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Anne
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
Youpiiiiiiiiii, merci à toi, tu m'ôtes une grosse épine du pied, c'est vraiment gentil.



merci merci.
M.I.A est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h40.


 
 
 
 
Partenaires

Hébergement Web