El error se origina por qué el uso por defecto de sesiones "dispara" una cabecera de "no caché" al navegador para que la página que supuestamente es "segura" no quede en cachés de navegadores ni proxy's .. etc.
Puedes cambier el tipo de "limitador" del caché a "public" (por defecto lo usa en "private" si mal no recuerdo la configuración standard de PHP) usando la función:
www.php.net/session_cache_limiter
Realmente deberías dejar el "limitador" del control del chacé como "private" .. Y gestionar el flujo de tus scripts .. Sobre todo entre formulario y script o código de proceso. A veces simplemente cambiando el método de POST a GET en formularios solventas el problema de que tu navegador te pida enviar nuevamente los datos ...
Un saludo,