Las cabeceras HTTP para "no-cache" que estás usando .. debes de ponerlas en la página que según tú no se ha de guardar en la caché del navegador (la que no se actualiza) ..
El uso del "location" y despues esas otras cabeceras .. No tiene sentido .. Osese, estás diciendo "redirecciona y luego esperate que te envio tal cabecera para que no me cachee´s no sé que pagina .." (eso al navegador)
Por supuesto .. si usas esas cabeceras HTTP (del no-caché) y luego tu "location" PHP te va a mandar un error de "cabeceras ya han sido enviadas ...
Las cabeceras HTTP (las de no caché y otras salvo la de redirección) se usan sólo en los scripts que den salida HTML (echo "algo" .. o <html> directo ..)
Usa las cabeceras siguietetes al principio del script que presente esos datos que según tu no se actualizan ..
Código PHP:
<?
// No almacenar en el cache del navegador esta página.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Expira en fecha pasada
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Siempre página modificada
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
?>
Un saludo,