hai disabilitato la visualizzazione degli errori ???
Prima di header hai print $password... la funzione header('Location: ecc ecc') non funziona se prima hai inviato un output....dovrebbe visualizzare un errore di header gia' inviato, ma non lo fa, per questo dico che potresti aver soppreeso la visualizzazione degli errori.

Prova a togliere quel print... non dico che funzioni, ma quello e' di sicuro un errore.

Un consiglio e' di abilitare la visualizzazione almeno di errori e warning, altrimenti non ti passa piu' a fare il debug in questi casi.

ciao ciao