Foros del Web » Programando para Internet » PHP »

Fpdf

Estas en el tema de Fpdf en el foro de PHP en Foros del Web. Hola a todos Tengo un problema al utilizar FPDF. Tengo un script que crea un pdf que muestra el contenido de una tabla de una ...
  #1 (permalink)  
Antiguo 02/09/2004, 06:13
 
Fecha de Ingreso: julio-2004
Mensajes: 18
Antigüedad: 13 años, 4 meses
Puntos: 0
Fpdf

Hola a todos

Tengo un problema al utilizar FPDF. Tengo un script que crea un pdf que muestra el contenido de una tabla de una base de datos. El problema es que la primera vez que lo utilizo funciona bien, pero si la base de datos cambia y vuelvo a generar el pdf, me muestra el de la vez anterior (sin mostrar los cambios). Para que se refresce tengo que "Borrar los archivos temporales de internet". Alguien sabe porque sucede esto?

Por favor ayuda!

Este es el codigo
Código PHP:

<?php
session_cache_limiter
('private');
include(
"seguridad.php");
include(
"../includes/globales.php");
include(
"../includes/fechas.php");

define('FPDF_FONTPATH',$FDPF_FONTPATH);
require(
$FDPF_FILE);

class 
PDF extends FPDF
{
//Cabecera de página
function Header()
{

    
//Arial bold 15
    
$this->SetFont('Arial','B',15);
    
//Movernos a la derecha
    
$this->SetX(0);
    
$this->Cell(70);
    
//Título
    
$this->Cell(60,10,'Documentos recibidos',1,0,'C');
    
//Salto de línea
    
$this->Ln(20);
}

//Pie de página
function Footer()
{
    
//Posición: a 1,5 cm del final
    
$this->SetY(-15);
    
//Arial italic 8
    
$this->SetFont('Arial','I',8);
    
//Número de página
    
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}

//Creación del objeto de la clase heredada
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial','',12);
$pdf->SetLeftMargin(25);
$pdf->SetRightMargin(20);

$link mysql_connect($SERVIDOR,$USUARIO_BD,$PASSWORD);
mysql_select_db($BASE_DATOS$link);
$select "SELECT * FROM documento ORDER BY doc_tit,doc_aut";
$result mysql_db_query($BASE_DATOS,$select);
$i=1;


  
$pdf->SetFont('','B',12);
  
$pdf->Write(5,$i++);
  
$pdf->SetX(25);$pdf->Cell(13);
  
$pdf->MultiCell(0,5,$fila["doc_tit"]);
  
$pdf->SetFont('','','11');
  
$pdf->Ln();

  
$pdf->Write(5,"Tipo : ");
  
$pdf->SetX(25);$pdf->Cell(30);
  
$pdf->Write(5,$fila["doc_tipo"]);
  
$pdf->Ln();

  
$pdf->Write(5,"Autor(es) :");
  
$pdf->SetX(25);$pdf->Cell(30);
  
$pdf->MultiCell(0,5,$fila["doc_aut"]);
 }
mysql_free_result($result);
mysql_close($link);

$pdf->Output();
?>
  #2 (permalink)  
Antiguo 02/09/2004, 06:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Mas que un problema de FPDF, es un problema de cache. Si miras en www.php.net/session_cache_limiter veras que al pasarle como parametro private le estas diciendo al navegador que guarde el fichero en su cache. En ese caso, cada vez que pidas al navegador esa URL (ese fichero), primero lo buscara en su cache, y si esta (y no ha caducado en la cache del navegador), muestra esa version cacheada.

Prueba a pasarle nocache en lugar de private.

Saludos.

PD: Esto tambien se puede aplicar a las descargas de ficheros.

PD2: En caso de no usar sesiones, se puede usar header() (www.php.net/header) para mandar las cabeceras de control de cache adecuadas.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 02/09/2004, 07:48
 
Fecha de Ingreso: julio-2004
Mensajes: 18
Antigüedad: 13 años, 4 meses
Puntos: 0
Gracias por la ayuda me diste una buena pista.

Si utilizas sesiones como es mi caso , lo que hay que poner es:

'private, must-revalidate'

Muchas gracias por contestar tan rápido
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:47.