No, no me colado al copiar, te has colado tu al hacerlo, me explico.
Utilizando tu código PHP de #1:
Línea 9: <BODY bgcolor="#ADD8E6">
Eso lo vemos ¿verdad? Ahora mira antes de la línea 9, todas las anteriores. ¿Ves algún código PHP? ¿Alguna condición?. Imagino que no, así que ahora sabrás que ese body de la línea 9 que tiene un color prefijado, va a salir siempre ¿cierto?
Ahora sigue bajando,
Línea 55: echo "<BODY bgcolor='$color'>";
¿Ves que tienes otro Body? también con color definido.
El resultado que te he enseñado, no me he pasado, es simplemente el resultado HTML de tu código PHP y en el se ven 2 BODY.
¿Solución rápida, chapucera y que si fuera profesor te supondría la práctica suspensa? eliminar el bgcolor del primer body, dejando la línea 9 solo con <BODY> (prueba a poner todas las etiquetas en minúsculas que en mayúsculas te va a dar errores en validadores).
¿Solución correcta?
Bastantes, la más fácil, antes de mostrar el body de la línea 9 comprobar si existe un $_POST para o bien mostrar el indicado en el formulario, o bien mostrar uno por defecto. ¿Pero poner dos BODY? nunca, porque eso te funcionará en algún navegador, en otro no ... y vamos, de correcto no tendría nada.
Un saludo.
EDIT: Las cookies petan en Firefox sobre Windows 7 (y te petará en más sitios) porque:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\ej01\codigo.php:19) in C:\AppServ\www\ej01\codigo.php on line 69