salida no necesariamente es
echo ... sino
HTML también....
si lo puedes notar, tu función
login() es la que usa el
header ....
pero tu, en el
index ... escribes HTML antes de hacer el login() ... y eso, genera un salida !!
(eso en la linea que indica el error, la 7 del index.php ... y se ejecuto en la 31 del admin.php)
¿¿sera por eso???