En ocasiones necesitamos recibir información de los clientes que desean contactarnos. Gracias a PHP y su método de envió y recepción de información a través de las Variables POST, esto puede ser posible.
Este tipo de transferencia es de gran utilidad ya que nos permite interactuar directamente con el usuario y el proceso es sencillo el cual explicaremos a continuación. Primeramente, presentamos una primera página con el formulario clásico a rellenar y las variables son recogidas en una segunda página que las procesa:
Nota: No siempre se definen automáticamente las variables recibidas por el formulario en las páginas web, depende de una variable de configuración de PHP: register_globals, que tiene que estar activada para que así sea. Ver comentarios del artículo al final de la página para más información.
Formulario HTML:
Archivo PHP para recibir datos del formulario (Variables POST):
$HTTP_POST_VARS
Recordamos que es posible recopilar en una variable tipo array el conjunto de variables que han sido enviadas al script por este método a partir de la variable de sistema $HTTP_POST_VARS.
echo «Variable \$nombre: » . $HTTP_POST_VARS[«nombre»] . «<br>\n»;
Nota: Aunque podamos recoger variables con este array asociativo o utilizar directamente las variables que se definen en nuestra página, resulta más seguro utilizar $HTTP_POST_VARS por dos razones, la primera que así nos aseguramos que esa varible viene realmente de un formulario y la segunda, que así nuestro código será más claro cuando lo volvamos a leer, porque quedará especificado que esa variable estamos recibiéndola por un formulario.
$_POSTA partir de PHP 4.1.0 se pueden recoger las variables de formulario utilizando también el array asociativo $_POST, que es el mismo que $HTTP_POST_VARS, pero más corto de escribir.
Ejemplo de restricción de acceso por edad
Para continuar aportando ejemplos al uso de formularios vamos a realizar una página que muestra solicita la edad del visitante y, dependiendo de dicha edad, permita o no visualizar el contenido de la web. A los mayores de 18 años se les permite ver la página y a los menores no.
El ejemplo es muy sencillo y no valdría tal cual está para utilizarlo a modo de una verdadera restricción de acceso. Únicamente nos sirve para saber cómo obtener datos de un formulario y como tratarlos para realizar una u otra acción, dependiendo de su valor.
La página del formulario, que hemos llamado edad.php tendría esta forma:
<html>
<head>
<title>Restringir por edad</title>
</head>
<body>
<form action=»edad2.php» method=»post»>
Escribe tu edad: <input type=»text» name=»edad» size=»2″>
<input type=»submit» value=»Entrar»>
</form>
</body>
</html>
Esta es una página sin ningún código PHP, simplemente tiene un formulario. Fijémonos en el action del formulario, que está dirigido hacia una página llamada edad2.php, que es la que recibirá el dato de la edad y mostrará un contenido u otro dependiendo de ese valor. Su código es el siguiente:
<html>
<head>
<title>Restringir por edad</title>
</head>
<body>
<?
$edad = $_POST[«edad»];
echo «Tu edad: $edad<p>»;
if ($edad < 18) {
echo «No puedes entrar»;
}else{
echo «Bienvenido»;
}
?>
</body>
</html>
Campo oculto en formulario
<form name=»form1″ method=»post» action=»»>
<input type=»hidden» name=»nombre»>
</form>
Esperamos que este otro código tampoco resulte extraño. Simplemente se recibe la edad, utilizando el array $_POST. Luego se muestra la edad y se ejecuta una expresión condicional en función de que la edad sea menor que 18. En caso positivo (edad menor que 18), se muestra un mensaje que informa de que no se deja acceder al página. En caso negativo (mayor o igual a 18) se muestra un mensaje de bienvenida.