7. Formularios
Forms y procesamiento de envíos
Otra de las características más potentes de PHP es la forma de gestionar formularios HTML. El concepto básico que es importante entender es que cualquier elemento de un formulario estará disponible automáticamente en sus scripts de PHP.
Al diseñar un formulario debemos indicar la página PHP que procesará el formulario, así como el método por el que se le pasará la información a la página.
<form action="accion.php" method="post">
<p>Su nombre: <input type="text" name="name" /></p>
<p>Su edad: <input type="text" name="edad" /></p>
<p><input type="submit" /></p>
</form>
Al presionar el botón “Enviar”, el contenido del cuadro de texto se envía a la página que indicamos en el atributo ACCIÓN de la etiqueta FORM.
PHP tiene una serie de variables predefinidas de tal forma que cuando la página PHP recibe los datos del formulario automáticamente crea una variable para cada elemento del FORMULARIO, esta variable creada tiene el mismo nombre que el cuadro de texto de la página anterior y el valor que ingresamos. En este ejemplo, se creó una variable llamada $name con el valor ingresado por el navegador.
Estas variables están dispoñibles nas matrices PHP predefinidas. Polo tanto teremos que usar $_GET[‘variable’] para acceder ó contido da variable que nos chega polo método GET, ou ben $_POST[‘variable’] si estamos accedendo a unha variable que nos chega polo método POST.
Métodos GET y POST
A diferenza entre estes dous métodos radica na forma de enviar os datos á páxina, mentres que o método GET envía os datos usando a URL, o método POST envíaos pola entrada estándar STDIO.
El resultado final es el mismo, solo que con el método GET podemos ver los parámetros pasados tal como están codificados en la URL.
MÉTODO | CONCEPTO | OBSERVACIONES |
---|---|---|
GET | GET lleva los datos de forma “visible” al cliente (navegador web). El medio de envío es la URL. Los datos los puede ver cualquiera. | Los datos son visibles por la URL, por ejemplo: www.aprenderaprogramar.com/action.php?nombre=pedro&apellidos1= gomez |
POST | POST consiste en datos “ocultos” (porque el cliente no los ve) enviados por un formulario cuyo método de envío es post. Es adecuado para formularios. Los datos no son visibles. | La ventaja de usar POST es que estos datos no son visibles al usuario de la web. En el caso de usar get, el propio usuario podría modificar la URL escribiendo diferentes parámetros a los reales en su navegador, dando lugar a que la información tratada no sea la prevista. |
Es recomendable elegir GET para aquellas solicitudes en las que se soliciten pocos datos y POST para aquellas en las que sea necesario enviar información que pueda superar los 512 bytes en total, ya que el método GET no podría recibir todos los datos. También es recomendable utilizar el método POST para enviar datos con mayor seguridad (contraseñas, códigos especiales, etc.) ya que en el método GET podrían verse en la URL del navegador.
Otros aspectos
-
Tener precaución con vulnerabilidades típicas como la inyección de código.
htmlspecialchars()
garantiza que cualquier carácter que sea especial en html se codifique adecuadamente, de manera que nadie pueda inyectar etiquetas HTML o Javascript en la página. -
En PHP, también puedes tratar con entradas de
XForms
; aunque probablemente al principio te sientas cómodo con los formularios de HTML, los cuales están ampliamente respaldados.