Почему не работает header Location?
Потому что 
Cannot modify header information - headers already sent by....
До header нельзя ничего посылать, никаких там html и всего такого. Они должны стоять в самом верху кода чтобы ничего не было типа print или того же характера