Ok, .. ahora parece que lo entendí .. (o eso creo).
Tanto en la explicaciòn de Livin como en la mia (que copiè sin mirar mucho el código) hay un gran error:
El valor por defecto de un input de HTML se coloca bajo la propiedad "value" .. no en Type ...
Código PHP:
<input type="text" name="nombre" value="<? echo $_SESSION['nombre'] ?>">
(esto lo escribí antes .. pero ahí queda el comentario):
Si en función de una variable de sesión que has definido (con su valor) en algún otro script (momento) .. lo usas para hacer una consulta a tu BD para poder presentar un formulario con esos datos pre-cargados en ella ... ¿para que necesitas almacenar esos datos en una sesión? .. En parte .. te ahorras una conexión a tu BD y consulta consiguiente a la misma .. Pero, también arrastras en la sesión (que igual consume recurso de acceso/interpretación de esos datos por parte del servidor) en cada página/script que mueves en el servidor (que solicitas) que use sesiones (todas en tu caso: donde uses session_start())
Personalmente no hago eso, sólo con el nombre de ese usuario o mejor del ID de ese registro (para acelerar consultas SQL posteriores) es lo que propagaría en la sesión .. junto con algún otro dato realmente relavente y que siempre se use en todos los scripts. La opción de "editar" los datos de ese cliente lo haría haciendo una consulta SQL a ese usuario en el script "mostrarregistros.php" del tipo:
SELECT * FROM usuarios WHERE id=$_SESSION['id'] .. suponiendo que en tu sesión guardes el ID del usuario que está autentificado en tu sesión actual.
Ahí obtengo los campos pertinentes $row['nombre'], etc . .y los uso en los value de los input:
<input type="text" name="nombre" value="<? echo $row['nombre'] ?>">
Un saludo