En HTML tienes propiedades para tal fin: Disable o Readonly .. Ojo con la que usas por qué "aparentemente" o visualmente dán el mismo resultado, pero una de ellas "pasa" el valor junto con el formulario que lo contiene o no (ahora no recuerdo cual es ..haz tus pruebas).
http://www.htmlhelp.com/reference/ht...rms/input.html
Pero .. la pregunta o el tema va mas al fondo. No deberías hacer lo que quieres hacer, sino NO propagar más esa variable que no se ha de alterar por un campo "hidden" con propiedad de "no modificar". Deberías mostrar dicho dato simplemente con un "echo $dato" e ir propagando ese dato a formularios subsiguientes en una cookie o mejor bajo una sesion (
www.php.net/session) para que -realmente- ese valor no pueda ser alterado.
De hecho fijate si por ejemplo yo "ataco" directamente tu 2° formulario con otro formulario HTML -sin- la opción "no modificar" .. te introduciré ese dato "alterado" si no validas el proceso por otro lado (sesiones?, cookies? .. etc).
Un saludo,