Te faltó ese "detallazo" .. que usas sesiones ..
Por qué dentro del uso de sesiones, PHP define un "control del caché" própio que puedes ajustar con la función:
session_cache_limiter()
www.php.net/session_cache_limiter
Y así no usar esos "header()" dejando el código algo más "limpio" tal vez.
Un saludo,