Tutoriales Varios

HTML y PHP – Formularios

Fulanito quiere colocar en su página un formulario de entrada escrito en HTML que recoja los datos del usuario y pasar esos datos a una página escrita en PHP que dé una bienvenida personalizada al visitante.

El problema se le presenta a la hora de pasar los datos que el visitante introduce a la página en PHP.

bienvenida.html

 
<form action="saludo.php" method="post">
<html>
<head>
<title>Bienvenida</title>
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<p> </p>
<p><b>Bienvenido a mi página web</b></p>
<form name="form1">
<p>Nombre: <input type="text" name="nombre"></p>
<p>Apellido: <input type="text" name="apellido"></p>
<p>Año en que naciste: <input type="text" name="nacimiento"></p>
<input type="submit" value="enviar"></p>
</form>
</div>
</body>
</html>

saludo.php

 
<html>
<head>
<title> Saludo </title>
</head>
<body>
<?php
echo "¡Bienvenido ".$nombre." ".$apellido." a mi página web!. ";
 
$año = 2004;
$edad = $año - $nacimiento;
 
echo " Tienes ".$edad." años. ¡Una edad estupenda!";
 
?>
</body>
</html>

Probemos el funcionamiento de estos dos programas. El visitante introduce su nombre, apellido y ano de nacimiento en el formulario bienvenida.html. Esto crea tres variables distintas: Nombre, que es donde(lógicamente) va almacenado el nombre de nuestro visitante; Apellido, donde se almacena el apellido(quien lo hubiera dicho!); y Nacimento, que almacena al año del nacimiento de la persona.

Miremos más detenidamente la primera línea del código:

 
<form action="saludo.php" method=post>

Para el ordenador del usuario, esta línea vendría a decir algo asi: "Cuando pulse Enviar, debo abrir el script llamado saludo.php, y enviarle las variables Nombre, Apellido y Nacimento".

Todo ello viene indicado por form action="saludo.php". La mitad de la otra frase method="post", viene a decir la manera en que estas variables son enviadas al script saludo.php.

POST viene a significar que se debe mandar mediante un paquete independiente, en contraposición a GET, que indica que se deben mandar como un añadido al final de la URL.

¿Cómo se interpreta "saludo.php" esta información? Como hemos visto, en PHP todas las variables deber ir precedidas por el signo $. Dado que el valor de estas variables(el contenido de la caja) viene definido via POST desde el script anterior, lo único que tenemos que hacer es mostrarlo en pantalla(usando echo) , junto con un pequeño mensaje de bienvenida.