Imagen relacionada
Los sitios web usan formularios para muchos propósitos. Con frecuencia, los programadores crean scripts CGI en Perl para manejar los datos creados por estos formularios, pero los mismos resultados se pueden lograr más fácilmente con PHP. Este artículo cubrirá los aspectos básicos de la creación de formularios HTML y cómo esos datos se transmiten a su script PHP.

Los sitios web usan formularios para registrarse e iniciar sesión en los usuarios, para recibir comentarios, para realizar compras en línea y para muchos otros propósitos. Incluso el sitio más básico encontrará razones lógicas para incorporarlos.

Con frecuencia, los programadores crean scripts CGI en Perl para manejar los datos creados por estos formularios, pero los mismos resultados se pueden lograr más fácilmente usando PHP. A diferencia de los scripts CGI, donde tiene que escribir un segmento de código que extraerá la información enviada por el formulario, PHP tiene un buen método de soporte integrado para recibir datos de un formulario HTML sin la necesidad de ningún análisis sintáctico.

Este artículo cubrirá los aspectos básicos de la creación de formularios HTML y cómo esos datos se transmiten a su script PHP. Aquellos que son nuevos en el tema de los formularios pueden querer referirse a un recurso HTML detallado, como HTML para la World Wide Web: Guía Visual QuickStart, para una cobertura más detallada del tema, considerando su importancia en el campo de la Web. diseño del sitio.


Creando un formulario simple

Para su formulario HTML, creará una página de comentarios que tome los nombres y apellidos, la dirección de correo electrónico y los comentarios del usuario. Tendrá que crear los campos necesarios con esto en mente.

Para crear un formulario HTML:

Abra su editor de texto y cree un nuevo documento:


<HTML>

<HEAD> <TITLE> Formulario HTML </ TITLE> </ HEAD>

<BODY> </ BODY>

</ HTML>

Entre las etiquetas de cuerpo, agregue las etiquetas de apertura y cierre de <FORM>:

<FORM ACTION = "HandleForm.php"> </ FORM>
(Guión 1).

Las etiquetas <FORM> dictan dónde comienza y termina una forma. Cada elemento del formulario debe ingresarse dentro de estas dos líneas. El atributo ACTION le dice al servidor qué página (o script) recibirá los datos del formulario.

Script 1 Cada formulario HTML comienza y termina con las etiquetas <FORM> </ FORM>. Cuando se formen formularios a mano, tenga cuidado de no olvidar ninguna etiqueta. También asegúrese de dirigir el formulario al script de manejo apropiado con el atributo ACTION.

Guarde la página como form.html.

Después de abrir la línea FORM (línea 6) pero antes de cerrar la etiqueta FORM, presione Return para crear una nueva línea.
Ahora comience a agregar sus campos de formulario escribiendo:

Nombre <TIPO DE ENTRADA = NOMBRE DE TEXTO = "Nombre" TAMAÑO = 20>

Siga una convención de nomenclatura consistente dentro de su formulario dando a cada campo un nombre lógico y descriptivo. Use letras, números y el guión bajo (_) al nombrar los campos. Mientras trabaja, haga un seguimiento de los nombres que usa para cada campo (Script 2).

Apellido <TIPO DE ENTRADA = NOMBRE DE TEXTO = "Apellido" TAMAÑO = 40> <BR>

Agregue las etiquetas <BR> para que el formulario se vea más limpio cuando se visualice en el navegador web.

Dirección de correo electrónico <TIPO DE ENTRADA = NOMBRE DE TEXTO = "Correo electrónico" TAMAÑO = 60>
Comentarios <TEXTAREA NAME = "Comments" ROWS = 5 COLS = 40> </ TEXTAREA> <BR>

Script 2 Cualquier combinación de tipos de entrada se puede agregar a su formulario; solo asegúrese de que todos estén dentro de las etiquetas <FORM> o de lo contrario esos elementos no aparecerán. Como sugerencia estilística, diseñar estos elementos de entrada dentro de una tabla puede darle a su forma una apariencia más profesional y más usable.

Un TEXTAREA le da al usuario más espacio para ingresar en sus comentarios que un campo de TEXTO. Sin embargo, con la entrada TEXT puede limitar la cantidad de información que el usuario puede ingresar, lo cual no se puede hacer con TEXTAREA. Al crear su formulario, elija los tipos de entrada apropiados para la información que desea recuperar del usuario.

En una línea separada, escriba

<INPUT TYPE = SUBMIT NAME = "SUBMIT" VALUE = "Submit!">

El VALOR de un tipo ENVIAR es lo que aparecerá en el botón en el navegador web. También puedes usar "¡Ir!" o "Enter", por ejemplo.

Guarde su script, cárguelo en su servidor y visualícelo en su navegador (Figura
1). (Dado que esta es una página HTML, no una secuencia de comandos PHP, puede ver esto en su navegador web directamente desde su computadora).

Figura 1 Si ha escrito correctamente su formulario, debería verse así en su navegador web. Asegúrese de cerrar el formulario e incluir el botón Enviar dentro de él. 
CONSEJOS

En este ejemplo, usted creó su formulario codificando manualmente el código HTML, pero puede hacerlo en una aplicación de página web (como Dreamweaver o GoLive) si es con lo que se siente más cómodo.

Tenga en cuenta que utilizó la extensión HTML (.html) aquí cuando creó una página HTML estándar (no necesariamente una página PHP). Podrías haber usado la extensión de PHP y haber obtenido los mismos resultados, aunque no se haya utilizado PHP. (Recuerde que en una página PHP, cualquier cosa que no esté dentro de los paréntesis de PHP - <? Php and?> Se trata como HTML.)

Aunque no lo hice aquí, recomendaría que la mayoría de los formularios, especialmente los más complicados, también tengan un botón Restablecer, creado con el código:

<INPUT TYPE = RESET NAME = RESET VALUE = "Reset">

Tenga cuidado de asegurarse de que su atributo ACTION apunte correctamente a un archivo existente en el servidor o de lo contrario su formulario no será procesado. En este caso, estamos indicando que el archivo HandleForm.php está dentro del mismo directorio que la página form.html.


Usando Get o Post

El lector experimentado notará que nos falta una cosa en nuestra etiqueta <FORM> inicial, es decir, agregar un atributo METHOD. Este atributo le dice al servidor cómo transmitir los datos del formulario al guión de manejo. Lo omití antes porque el tema merece su propia discusión.

Hay dos opciones que tiene con METHOD: GET o POST. Sospecho que la mayoría de los codificadores HTML no son del todo claros en cuanto a la distinción y cuándo usarla. En verdad, en su mayor parte no hará mucha diferencia (especialmente cuando comiences a usarlos) ya que generalmente obtendrás los resultados que necesitas.

La diferencia entre usar GET versus POST se encuentra directamente en la forma en que se pasa la información del formulario al script de procesamiento. El método GET enviará toda la información recopilada como parte de la URL. El método POST transmite la información de manera invisible al usuario. Por ejemplo, al enviar su formulario, si usa el método GET, la URL resultante será algo así como:
http://www.instintoprogramador.com.mx/php/
-> HandleForm.php? FirstName =
-> Larry & LastName = Ullman.

Mientras que usando el método POST, el usuario final solo vería

http://www.instintoprogramador.com.mx/php/HandleForm.php.

Al elegir qué método utilizar, es posible que desee tener en cuenta estos tres factores:

1) con el método GET está limitado en cuanto a la cantidad de información que se puede pasar; 2) el método GET envía públicamente la entrada al script de manejo (lo que significa que, por ejemplo, una contraseña ingresada en un formulario puede ser vista por cualquiera que esté a la vista del navegador web, creando un mayor riesgo de seguridad); y, 3) una página generada por un formulario que usó el método GET puede marcarse mientras que una basada en POST no puede ser.

En este texto, usaré POST para manejar formularios, principalmente para distinguirlo de una técnica que utilizaré cuando la teoría del método GET agregue capacidades a su sitio web. Cualquiera de los métodos transferirá con éxito los datos del formulario y la decisión final sobre qué método utilizará se basará en los factores atenuantes en su formulario y en si la página resultante debe marcarse o no.


Para agregar un método a su secuencia de comandos:

Abra form.html en su editor de texto.

Dentro de la etiqueta <FORM> inicial, agregue METHOD = POST (línea 6, Script
3).

Script 3 Depende de usted utilizar el método GET o POST siempre que recuerde usar uno de ellos. Con la experiencia, determinará cuándo tiene sentido usar uno en lugar de otro, pero es más un problema de finura que de funcionamiento.

Guarde el script y cárguelo en su servidor.

Vea la fuente de la página para asegurarse de que todos los elementos necesarios estén presentes


Al ver el origen de una página, puede ver por qué algo funcionará y por qué no. Al igual que con toda la programación, los cambios sutiles pueden marcar la diferencia.

Recibir datos de un formulario en PHP

Has creado tu formulario. Ahora debe escribir el script HandleForm.php, que recibirá y procesará los datos generados por la página form.html. Aquí es donde se demuestra la verdadera simplicidad de PHP.

Para crear el script HandleForm.php:

Abra su editor de texto y cree un nuevo documento.

<HTML> <HEAD> <TITLE> Resultados del formulario </ TITLE> <BODY> <? Php / * Esta página recibe y maneja los datos generados por "form.html". * /?> </ BODY> </ HTML>.

Este es el formato estándar para una página PHP (Script
4). Agregamos el comentario para decirnos el propósito del guión. Aunque la página form.html indica a dónde se envían los datos (a través del atributo ACCIÓN), debemos hacer un comentario aquí indicando el reverso.

Script 4 Al tomar el valor del elemento NAME = "Name" en su formulario HTML y agregar un signo de dólar, crea una variable que contiene el valor de lo que el usuario ingresó en ese campo de formulario correspondiente. Esto es cierto si el tipo de entrada HTML es TEXTO, TEXTAREA o SELECCIONAR un menú y es una de las razones por las que PHP es tan bueno para manejar formularios HTML (en comparación con, por ejemplo, scripts CGI, que requieren código de análisis).

Crea una nueva línea después del comentario, pero antes de cerrar la etiqueta PHP. Tipo

print "Su primer nombre es $ FirstName. <BR> \ n" ;.
imprimir "Su apellido es $ LastName. <BR> \ n";
imprime "Tu dirección de correo electrónico es $ Correo electrónico. <BR> \ n";
print "Esto es lo que tenía que decir: <BR> \ n $ Comments <BR> \ n";

Guarde su script como HandleForm.php.

Suba su script al servidor, asegurándose de que esté guardado en el mismo directorio que form.html.

Pruebe su script en su navegador web

Figura 3 Lo que ingrese el usuario en el formulario HTML se imprimirá en el navegador web mediante el script HandleForm.php


Figura 4 Esta es otra aplicación de la declaración de impresión, pero constituye su primera página web generada dinámicamente. Consulte el libro sobre cómo manipular los datos recibidos, así como cómo enviarlo en un correo electrónico o ingresarlo en una base de datos.

El objetivo de este ejercicio es demostrar con qué facilidad puede transferir datos de un formulario HTML a una página PHP. El script PHP almacenará los datos en las variables correspondientes, por lo que $ FirstName toma el valor de lo que el usuario ingresó en el campo etiquetado FirstName (toma el nombre del campo en el HTML, agrega un signo de dólar, y luego tiene el variable con el valor correspondiente). La transferencia es automática y, a diferencia de las secuencias de comandos CGI, no es necesario un análisis sintáctico.

CONSEJOS


Otro beneficio de usar PHP para manejar formularios HTML es que los datos se escapan automáticamente en tránsito. Por ejemplo, si pensé que "form.html" era demasiado simple. se ingresó como comentario, la variable $ Comments será igual a ¡Pensé que \ "form.html \" era demasiado simple! para que se pueda imprimir sin complicaciones (Figura 5).

Figura 5 PHP escapará automáticamente de los caracteres especiales ingresados en HTML. Esto es útil cuando se envían datos al navegador (como en este ejemplo donde las comillas interferirían con la declaración print () si no fuera porque se escaparon) y al ingresarla en las bases de datos.

Si quería pasar un valor preestablecido a su secuencia de comandos, use el tipo de entrada HIDDEN dentro de su formulario HTML. Por ejemplo, la línea

<INPUT TYPE = HIDDEN NAME = "ThisPage" VALUE = "form.html">

insertado entre las etiquetas FORM crearía una variable en su script de manejo llamado $ ThisPage con el valor de "form.html". Del mismo modo, al decirle a PHP que

print ("<INPUT TYPE = HIDDEN NAME = \" FirstName \ "VALOR = \" $ FirstName \ ">");

puede extender la vida de la variable $ FirstName pasando su valor a lo largo.

Aunque puede tener el mismo archivo, ambos muestran un formulario y manejan la salida del formulario usando PHP, sí hace que sus scripts sean innecesariamente complicados y difíciles de depurar. En aras de la simplicidad, utilizaremos un archivo separado, acertadamente llamado HandleForm.php.