Un consejo .. despues de cada redirección que haces con header() de tipo "Location" .. es recomendable que terminases la ejecución del script en ese punto y no esperar a que se cumplan tus "if() .. else" que definan el flujo del código de ese script.
Código PHP:
header(sprintf("Location: %s", $updateGoTo));
exit;
Así el resto de códgio que puedas tener a continuación no se ejecutará .. pues tampoco es su objetivo ya que ahí dices "cambia la ejecución de esa página por otra" .... incluso antes de que llegue el contenido de esta al navegador (cliente) pues lo haces por cabeceras HTTP.
Sobre tu solución adoptada ... supongo que tenías problemas con caché? y lo solucionastes con el control del mismo que haces en esos "header()" que lanzas al principio del script .. no?
Un saludo,