petter 0 Denunciar post Postado Janeiro 15, 2007 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 fileOs arquivos do FPDF estão em: ../pdf/fpdf.phpOlha 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
entchucs 0 Denunciar post Postado Janeiro 15, 2007 Usa isso: <?phpob_start();//codigoob_end_flush();?> Compartilhar este post Link para o post Compartilhar em outros sites
petter 0 Denunciar post Postado Janeiro 16, 2007 É 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
petter 0 Denunciar post Postado Janeiro 16, 2007 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
petter 0 Denunciar post Postado Janeiro 17, 2007 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
petter 0 Denunciar post Postado Janeiro 17, 2007 Bele.Vou fazer isso. Valeu mesmo pela força. Compartilhar este post Link para o post Compartilhar em outros sites