Veo varias cosas mejorables.
1 - No filtras/validas tus variables $_POST
2 - En los if comparas con ="" pero puede ser 0 o otros valores, mejor usar empty()
3 - Cuando validas el email, hay mas proveedores que los que pones, mas bien infinitos, porque
cualquiera puede hacerse una cuenta de su correo en su dominio, luego no es buena forma de validar. Te recomiendo usar filter_var de php y checkdomain()
4 - El charset mejor en utf-8:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
5- Crea clases, no pongas css inline para esto y demas:
style="border: solid 1px #000000"
6- Los formularios contra menos campos mejor, repetir la contraseña el algo viejuno ya, la gente sabe lo pone, es como tambien tuvieras que poner otro para el email
7 - Identa mas el codigo html (sobre todo la zona de head)
8 - No es buena practica conectar a mysql con un usuario root, crea uno especifico
9 - llamando a rand sin parametros, te generara un numero aleatorio suficiente.
Para lo de accion podrias poner
Código PHP:
Ver originalswitch($_REQUEST['accion'])
{
case 'confirmar':
# Codigo aqui
break;
case 'procesar':
# Codigo aqui
break;
}
PD: lo de poner el tamaño de letra en mayor tambien igual xD