Enviar y recibir datos en PHP


Páginas que se llaman a si mismas pasando datos por POST o GET, formularios reentrantes y variables pasadas por URL a la misma página. Al incluir un formulario en una página se debe indicar, a través del atributo action, el nombre del archivo PHP al que enviaremos los datos escritos en el formulario. De este modo, para un esquema de envío de datos por formulario, pueden participar dos páginas: una que contiene el formulario y otra que recibe los datos de dicho formulario. Lo mismo ocurre cuando enviamos variables por una URL. Tenemos una página que contendrá el enlace y otra página que recibirá y tratará esos datos para mostrar unos resultados.
En ambos casos, para formularios o envío de datos por la URL, se debe seguir un esquema como este:
  • Comprobar si recibo datos por URL o por formulario
  • Si no recibo datos
    • Muestro el formulario o los enlaces que pasan variables
  • Si recibo dato
    • Entonces tengo que procesar el formulario o las variables de la URL
Para un formulario
Veamos a continuación como sería el código de un formulario reentrante.
<html>
<head>
<title>Me llamo a mi mismo…</title>
</head>
<body>
<?php
if (!$_POST){
?>
<form action=”auto-llamada.php” method=”post>
Nombre: <input type=”text” name=”nombre” size=”30″>
<br>
Empresa: <input type=”text” name=”empresa” size=”30″>
<br>
Telefono: <input type=”text” name=”telefono” size=14 value=”+34 ” >
<br>
<input type=”submit” value=”Enviar”>
</form>
<?php
}else{
echo “<br>Su nombre: ” . $_POST["nombre"];
echo “<br>Su empresa: ” . $_POST["empresa"];
echo “<br>Su Teléfono: ” . $_POST["telefono"];
}
?>
</body>
</html>
En el ejemplo, el primer paso es conocer si se están recibiendo o no datos por un formulario. Para ello se comprueba con un enunciado if si existe o no una variable $_POST.
En concreto if (!$_POST) querría decir algo como “Si no existen datos venidos de un formulario”. En caso de que no existan, muestro el formulario. En caso de que sí existan, recojo los datos y los imprimo en la página.
Se puede ver el ejemplo en funcionamiento en una página aparte.