Sorunun nedeni şu; Header bilgilerini daha önceden göndermişsiniz ve tekrar değiştirmeye çalışıyorsunuz. Mesela Location komutunu göndermeden önce bir karakter dahi olsa yazı yazdırırsanız hata alabilirsiniz. Bu bazı sunucularda meydana gelir ki bunu yaşadım. Benim iki sunucumda da rahatlıkla çalışırken müşterimin sunucusunda kod çalışmamıştı. (Titiz sunucu :) )
ob_start(); komutlarını deneyin ve kodlar arasındaki yerlere dikkat edin.