Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

petter

Erro no header usando FPDF.

Recommended Posts

Pessoal estou construindo um arquivo PHP que gera um PDF, tudo estava indo bem nos testes até que começou a aparecer a seguinte mensagem:

Warning _linenums:0'><strong class='bbc'>Warning</strong>: Cannot modify header information - headers already sent by  (output started at  /var/www/html/home/awilson/Aprovado/curriculum/i_rh_mostra_curriculo_pdf.php:14)  in <strong class='bbc'>/var/www/html/home/awilson/Aprovado/pdf/fpdf.php</strong> on line  <strong class='bbc'>1022</strong><strong class='bbc'>FPDF error: </strong>Some data has already been output to browser,  can't send PDF file
Os arquivos do FPDF estão em: ../pdf/fpdf.php

Olha o meu código:


session_start();

//pes_codigo de testes

$_SESSION['pes_codigo'] = 90;

 

define('FPDF_FONTPATH','font/');

include("../pdf/fpdf.php");

include("../conexao/opg1450.php");

include("../funcoes/fun.php");

include("../funcoes/functions.php");

include("i_rh_cur_help.php");

 

echo "teste de localização.";

 

/* Consultas para retornar dados gravados no Oracle */

//---------- DADOS PESSOAIS --------------

$consulta1 = "select p.pes_nome, to_char(p.pes_dt_nasc_fundacao,'dd/mm/yyyy')dt_nasc, e.eci_descricao,

decode(ps.pse_sexo,'M','Masculino','Feminino') sexo ,e.ede_logradouro, e.ede_numero,

e.ede_complemento, e.ede_cep, c.nome cidade, c.uf, c*.cur_perfil, c*.cur_objetivo, c*.cur_dados_adicional,

ps.psa_descricao from pessoa p, estado_civil e, pessoa_estado_civil pe, pessoa_sexo ps, endereco e,

cidades c, curriculo c*, pretensao_salarial ps

where p.pes_codigo = '$_SESSION[pes_codigo]'

and p.pes_codigo = pe.pes_codigo

and pe.eci_codigo = e.eci_codigo

and p.pes_codigo = ps.pes_codigo

and p.pes_codigo = e.pes_codigo

and e.cod_cid = c.cod_cid

and p.pes_codigo = c*.pes_codigo

and c*.psa_codigo = ps.psa_codigo";

 

//--------TELEFONES------------

$consulta10 = "select tef_ddd, tef_telefone, ten_descricao

from telefone t, tipo_endereco te where

pes_codigo = '$_SESSION[pes_codigo]' and t.ten_codigo = te.ten_codigo";

 

//--------E-MAILS-------------

$consulta3 = "select trim(ema_email) ema_email

from e_mail where pes_codigo = '$_SESSION[pes_codigo]'";

 

//---------CARREIRA E FUNÇÃO--------------

$consulta4 = "select f.fun_nome, c.cra_nome

from curriculo_carreira_funcao ccf, carreira c, funcao f

where ccf.pes_codigo = '$_SESSION[pes_codigo]'

and ccf.fun_codigo = f.fun_codigo

and ccf.cra_codigo = c.cra_codigo";

 

//---------HISTÓRICO ACADEMICO----------

$consulta5 = "select h.hac_instituicao, h.hac_nome_curso, e.esc_descricao, h.hac_duracao, td.tdu_descricao, to_char(h.hac_data_conclusao,'dd/mm/yyyy') hac_data_conclusao

from historico_academico h, escolaridade e, tipo_duracao td

where pes_codigo = '$_SESSION[pes_codigo]'

and h.esc_codigo = e.esc_codigo

and h.tdu_codigo = td.tdu_codigo

order by hac_data_conclusao desc";

 

//-------CURSOS E IDIOMA------------

$consulta6 = "select c.cur_descricao, nc.nco_descricao

from curriculo_curso_nivel ccn, curso c, nivel_conhecimento nc, tipo_curso tc

where ccn.pes_codigo = '$_SESSION[pes_codigo]'

and ccn.cur_codigo = c.cur_codigo

and ccn.nco_codigo = nc.nco_codigo

and c.tcu_codigo = tc.tcu_codigo

and c.tcu_codigo = 1 -- idioma";

 

//-------CURSOS E TECNOLOGIA---------

$consulta7 = "select c.cur_descricao, nc.nco_descricao

from curriculo_curso_nivel ccn, curso c, nivel_conhecimento nc, tipo_curso tc

where ccn.pes_codigo = '$_SESSION[pes_codigo]'

and ccn.cur_codigo = c.cur_codigo

and ccn.nco_codigo = nc.nco_codigo

and c.tcu_codigo = tc.tcu_codigo

and c.tcu_codigo = 2 -- tecnologia";

 

//----------HISTORICO PROFISSIONAL-------------

$consulta8 = "select hp.hpr_empresa, to_char(hp.hpr_data_admissao,'dd/mm/yyyy') dt_admissao, to_char(hp.hpr_data_recisao,'dd/mm/yyyy') dt_recisao, hp.hpr_ultimo_salario, hp.hpr_descricao,

s.sme_descricao, p.descricao porte, f.fun_nome

from historico_profissional hp, segmento_mercado s, portes p, funcao f

where pes_codigo = '$_SESSION[pes_codigo]'

and hp.sme_codigo = s.sme_codigo

and hp.cod_por = p.cod_por

and hp.fun_codigo = f.fun_codigo

order by hpr_data_admissao desc";

 

//--------------ESCOLARIDADE MAXIMA----------

$consulta9 = "select e.esc_descricao

from escolaridade e

where e.esc_grau = ( select max(e.esc_grau)

from escolaridade e

where esc_codigo in (select esc_codigo from historico_academico where pes_codigo = $_SESSION[pes_codigo])

)";

 

$resultado1 = OCIParse($conn, $consulta1);

$resultado10 = OCIParse($conn, $consulta10);

$resultado2 = OCIParse($conn, $consulta2);

$resultado3 = OCIParse($conn, $consulta3);

$resultado4 = OCIParse($conn, $consulta4);

$resultado5 = OCIParse($conn, $consulta5);

$resultado6 = OCIParse($conn, $consulta6);

$resultado7 = OCIParse($conn, $consulta7);

$resultado8 = OCIParse($conn, $consulta8);

$resultado9 = OCIParse($conn, $consulta9);

 

//Define a subclasse para escrever o rodapé do documento

class PDF extends FPDF{

function Footer(){

//Vai para 1.5 cm da borda inferior

$this -> SetY(-15);

$this -> SetFont('Arial','I',8);

$this -> Cell(0,10,'Página '.$this -> PageNo(),0,0,'R');

}

}

 

$pdf = new FPDF(P, mm, A4);

$pdf -> Open();

$pdf -> AddPage();

$pdf -> SetTitle('Currículo gerado pelo Sistema de Currículos Alimentos Wilson');

$pdf -> SetAuthor('Sistema de Currículos Alimentos Wilson');

$pdf -> SetCreator('Sistema de Currículos Alimentos Wilson v.1');

$pdf -> SetMargins(2, 2, 2);

$pdf -> SetFont('Arial','',10);

$pdf -> SetFillColor(227, 227, 227);

$pdf -> SetTextColor(0, 0, 0);

$pdf -> SetDrawColor(0, 0, 0);

$pdf -> SetLineWidth(.2);

 

if(OCIExecute($resultado1)){

while(OCIFetchInto($resultado1, $linha1, OCI_ASSOC)){

$dados = $linha1['SEXO'].", ".idade($linha1['DT_NASC'])." anos".", ".$linha1['ECI_DESCRICAO'];

$dados2 = $linha1['EDE_LOGRADOURO'].", ".$linha1['EDE_NUMERO']." - ".$linha1['EDE_COMPLEMENTO'];

$dados3 = $linha1['EDE_CEP']." ".$linha1['CIDADE']." - ".$linha1['UF'];

 

//Define fonte negrito para destaque

$pdf -> SetFont('Arial','B',11);

$pdf -> Cell(150, 5, $linha1['PES_NOME'], 0, 0, 'L', 0);

$pdf -> SetFont('Arial','',10);

$pdf -> MultiCell(47, 5, $dados, 0, 'R', 0);

$pdf -> Cell(100, 5, '', 0, 0, 'L', 0);

$pdf -> MultiCell(105, 5, $dados2, 0, 'R', 0);

$pdf -> Cell(100, 5, '', 0, 0, 'L', 0);

$pdf -> MultiCell(105, 5, $dados3, 0, 'R', 0);

if(OCIExecute($resultado10)){

while(OCIFetchInto($resultado10, $linha10, OCI_ASSOC)){

$dados4 = $linha10['TEN_DESCRICAO']." linenums:0'>session_name('pes_codigo');session_start();//pes_codigo de testes$_SESSION['pes_codigo'] = 90;define('FPDF_FONTPATH','font/');include("../pdf/fpdf.php");include("../conexao/opg1450.php"); include("../funcoes/fun.php");include("../funcoes/functions.php"); include("i_rh_cur_help.php");echo "teste de localização.";/* Consultas para retornar dados gravados no Oracle *///---------- DADOS PESSOAIS --------------$consulta1 = "select p.pes_nome, to_char(p.pes_dt_nasc_fundacao,'dd/mm/yyyy')dt_nasc, e.eci_descricao, decode(ps.pse_sexo,'M','Masculino','Feminino') sexo ,e.ede_logradouro, e.ede_numero, e.ede_complemento, e.ede_cep, c.nome cidade, c.uf, c*.cur_perfil, c*.cur_objetivo, c*.cur_dados_adicional, ps.psa_descricao from pessoa p, estado_civil e, pessoa_estado_civil pe, pessoa_sexo ps, endereco e, cidades c, curriculo c*, pretensao_salarial ps where p.pes_codigo = '$_SESSION[pes_codigo]' and p.pes_codigo = pe.pes_codigo and pe.eci_codigo = e.eci_codigo and p.pes_codigo = ps.pes_codigo and p.pes_codigo = e.pes_codigo and e.cod_cid = c.cod_cid and p.pes_codigo = c*.pes_codigo and c*.psa_codigo = ps.psa_codigo";//--------TELEFONES------------ $consulta10 = "select tef_ddd, tef_telefone, ten_descricao from telefone t, tipo_endereco te where pes_codigo = '$_SESSION[pes_codigo]' and t.ten_codigo = te.ten_codigo";//--------E-MAILS-------------$consulta3 = "select trim(ema_email) ema_email from e_mail where pes_codigo = '$_SESSION[pes_codigo]'";//---------CARREIRA E FUNÇÃO--------------$consulta4 = "select f.fun_nome, c.cra_nome from curriculo_carreira_funcao ccf, carreira c, funcao f where ccf.pes_codigo = '$_SESSION[pes_codigo]' and ccf.fun_codigo = f.fun_codigo and ccf.cra_codigo = c.cra_codigo"; //---------HISTÓRICO ACADEMICO----------$consulta5 = "select h.hac_instituicao, h.hac_nome_curso, e.esc_descricao, h.hac_duracao, td.tdu_descricao, to_char(h.hac_data_conclusao,'dd/mm/yyyy') hac_data_conclusao from historico_academico h, escolaridade e, tipo_duracao td where pes_codigo = '$_SESSION[pes_codigo]' and h.esc_codigo = e.esc_codigo and h.tdu_codigo = td.tdu_codigo order by hac_data_conclusao desc"; //-------CURSOS E IDIOMA------------$consulta6 = "select c.cur_descricao, nc.nco_descricao from curriculo_curso_nivel ccn, curso c, nivel_conhecimento nc, tipo_curso tc where ccn.pes_codigo = '$_SESSION[pes_codigo]' and ccn.cur_codigo = c.cur_codigo and ccn.nco_codigo = nc.nco_codigo and c.tcu_codigo = tc.tcu_codigo and c.tcu_codigo = 1 -- idioma";//-------CURSOS E TECNOLOGIA---------$consulta7 = "select c.cur_descricao, nc.nco_descricao from curriculo_curso_nivel ccn, curso c, nivel_conhecimento nc, tipo_curso tc where ccn.pes_codigo = '$_SESSION[pes_codigo]' and ccn.cur_codigo = c.cur_codigo and ccn.nco_codigo = nc.nco_codigo and c.tcu_codigo = tc.tcu_codigo and c.tcu_codigo = 2 -- tecnologia"; //----------HISTORICO PROFISSIONAL-------------$consulta8 = "select hp.hpr_empresa, to_char(hp.hpr_data_admissao,'dd/mm/yyyy') dt_admissao, to_char(hp.hpr_data_recisao,'dd/mm/yyyy') dt_recisao, hp.hpr_ultimo_salario, hp.hpr_descricao, s.sme_descricao, p.descricao porte, f.fun_nome from historico_profissional hp, segmento_mercado s, portes p, funcao f where pes_codigo = '$_SESSION[pes_codigo]' and hp.sme_codigo = s.sme_codigo and hp.cod_por = p.cod_por and hp.fun_codigo = f.fun_codigo order by hpr_data_admissao desc"; //--------------ESCOLARIDADE MAXIMA----------$consulta9 = "select e.esc_descricao from escolaridade e where e.esc_grau = ( select max(e.esc_grau) from escolaridade e where esc_codigo in (select esc_codigo from historico_academico where pes_codigo = $_SESSION[pes_codigo]) )";$resultado1 = OCIParse($conn, $consulta1);$resultado10 = OCIParse($conn, $consulta10);$resultado2 = OCIParse($conn, $consulta2);$resultado3 = OCIParse($conn, $consulta3);$resultado4 = OCIParse($conn, $consulta4);$resultado5 = OCIParse($conn, $consulta5);$resultado6 = OCIParse($conn, $consulta6);$resultado7 = OCIParse($conn, $consulta7);$resultado8 = OCIParse($conn, $consulta8);$resultado9 = OCIParse($conn, $consulta9);//Define a subclasse para escrever o rodapé do documentoclass PDF extends FPDF{ function Footer(){ //Vai para 1.5 cm da borda inferior $this -> SetY(-15); $this -> SetFont('Arial','I',8); $this -> Cell(0,10,'Página '.$this -> PageNo(),0,0,'R'); }} $pdf = new FPDF(P, mm, A4);$pdf -> Open();$pdf -> AddPage();$pdf -> SetTitle('Currículo gerado pelo Sistema de Currículos Alimentos Wilson');$pdf -> SetAuthor('Sistema de Currículos Alimentos Wilson');$pdf -> SetCreator('Sistema de Currículos Alimentos Wilson v.1');$pdf -> SetMargins(2, 2, 2);$pdf -> SetFont('Arial','',10);$pdf -> SetFillColor(227, 227, 227);$pdf -> SetTextColor(0, 0, 0);$pdf -> SetDrawColor(0, 0, 0);$pdf -> SetLineWidth(.2);if(OCIExecute($resultado1)){ while(OCIFetchInto($resultado1, $linha1, OCI_ASSOC)){ $dados = $linha1['SEXO'].", ".idade($linha1['DT_NASC'])." anos".", ".$linha1['ECI_DESCRICAO']; $dados2 = $linha1['EDE_LOGRADOURO'].", ".$linha1['EDE_NUMERO']." - ".$linha1['EDE_COMPLEMENTO']; $dados3 = $linha1['EDE_CEP']." ".$linha1['CIDADE']." - ".$linha1['UF']; //Define fonte negrito para destaque $pdf -> SetFont('Arial','B',11); $pdf -> Cell(150, 5, $linha1['PES_NOME'], 0, 0, 'L', 0); $pdf -> SetFont('Arial','',10); $pdf -> MultiCell(47, 5, $dados, 0, 'R', 0); $pdf -> Cell(100, 5, '', 0, 0, 'L', 0); $pdf -> MultiCell(105, 5, $dados2, 0, 'R', 0); $pdf -> Cell(100, 5, '', 0, 0, 'L', 0); $pdf -> MultiCell(105, 5, $dados3, 0, 'R', 0); if(OCIExecute($resultado10)){ while(OCIFetchInto($resultado10, $linha10, OCI_ASSOC)){ $dados4 = $linha10['TEN_DESCRICAO'].": "."(".$linha10['TEF_DDD'].") ".$linha10['TEF_TELEFONE']; $pdf -> Cell(100, 5, '', 0, 0, 'L', 0); $pdf -> MultiCell(105, 5, $dados4, 0, 'R', 0); } }else{ echo "<div id=\"div_erro\" align=\"center\">Seus dados NÃO foram inseridos com sucesso! Por favor tente novamente.<br>"; echo "Erro 10!<br>"; echo "<a href=\"java script:history.back()\">Voltar</a></div>"; exit; } if(OCIExecute($resultado3)){ while(OCIFetchInto($resultado3, $linha3, OCI_ASSOC)){ $pdf -> Cell(100, 5, '', 0, 0, 'L', 0); $pdf -> MultiCell(105, 5, $linha3['EMA_EMAIL'], 0, 'R', 0); } }else{ echo "<div id=\"div_erro\" align=\"center\">Seus dados NÃO foram inseridos com sucesso! Por favor tente novamente.<br>"; echo "Erro 3!<br>"; echo "<a href=\"java script:history.back()\">Voltar</a></div>"; exit; } }}else{ echo "<div id=\"div_erro\" align=\"center\">Seus dados NÃO foram inseridos com sucesso! Por favor tente novamente.<br>"; echo "Erro 1!<br>"; echo "<a href=\"java script:history.back()\">Voltar</a></div>"; exit;}$pdf -> Cell(0, 2, '', 'B', 0, 'L', 0);$pdf -> Output();?>

Será problema no include? Já tentei várias possibilidades e nada adiantou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É cara agora está funcionando, só que ao invés de abrir uma página do navegador, ele só abre uma janela com a opção de salvar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro voltou a acontecer. To achando que tem alguma coisa zuada em algum lugar. Chequei os caminhos e estão todos certos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara era conflito com o session. Modifiquei aqui e agora está tudo OK.Porém no FF o PDF é exibido na janela corretamente, quando abro no IE ele pede para salvar o arquivo. De acordo com a documentação do FPDF estou fazendo certo.você sabe se é algum bug?Olhe o código:

$pdf -> Output('curriculo.pdf', 'I');

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.