Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/09/2012, 18:37
Avatar de Adrii952
Adrii952
 
Fecha de Ingreso: diciembre-2011
Ubicación: Madrid
Mensajes: 116
Antigüedad: 12 años, 4 meses
Puntos: 7
Respuesta: session_start y otros headers

Ok mañana pruebo y te cuento pero dudo que ese sea el problema, lo he mirado mucho. He llegado a la conclusión de que el causante es session_start() porque hice un script aparte para ver cual era el problema y fui quitando comandos hasta que funcionaba correctamente y resulta que sólo al quitar el de session_start funcionaba correctamente, si lo pongo deja de funcionar, no sé por qué, tendré qe investigar más.

Las funciones para cachear la imagen son las siguientes:

Código PHP:
function displayGraphicFile ($graphicFileName,$fileType) {
  
$fileModTime filemtime($graphicFileName);
  
$headers getRequestHeaders();
  if (isset(
$headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == $fileModTime)) {
    
header('Last-Modified: '.gmdate('D, d M Y H:i:s'$fileModTime).' GMT'true304);
  } else {
    
header('Last-Modified: '.gmdate('D, d M Y H:i:s'$fileModTime).' GMT'true200);
    
header('Content-type: '.$fileType);
    
header('Content-transfer-encoding: binary');
    
readfile($graphicFileName);
  }
}

function 
getRequestHeaders() {
  if (
function_exists("apache_request_headers")) {
    if(
$headers apache_request_headers()) {
      return 
$headers;
    }
  }
  
$headers = array();
  if (isset(
$_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
    
$headers['If-Modified-Since'] = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
  }
  return 
$headers;

Gracias por su ayuda