Formulario HTML
Un formulario web, un formulario web o un formulario HTML en una página web permite al usuario introducir datos que se envían a un servidor para su procesamiento. . Los formularios pueden parecerse a formularios en papel o de bases de datos porque los usuarios web los completan utilizando casillas de verificación, botones de opción o campos de texto. Por ejemplo, los formularios se pueden utilizar para introducir datos de envío o de tarjeta de crédito para pedir un producto, o se pueden utilizar para recuperar resultados de búsqueda de un motor de búsqueda.
Descripción

Los formularios están encerrados en el elemento HTML <form>
. Este elemento HTML especifica el punto final de comunicación al que se deben enviar los datos ingresados en el formulario y el método de envío de los datos, GET
o POST
.
Elementos
Los formularios pueden estar compuestos por elementos estándar de la interfaz gráfica de usuario:
— un simple cuadro de texto que permite la entrada de una sola línea de texto.
- un tipo de
que requiere una dirección de correo electrónico validada parcialmente
- un tipo de
que requiere un número
- similar a
, se utiliza para fines de seguridad, en los que los caracteres inscritos son invisibles o reemplazados por símbolos como *
- un botón de radio
— un control selecto de archivos para subir un archivo
— un botón de reset que, cuando se activa, le dice al navegador que restablezca los valores de la forma actual, a sus valores iniciales.
— un botón que le dice al navegador que tome acción en el formulario (típicamente para enviarlo a un servidor)- mucho como el
campo de entrada excepto unpermite que se muestren y introduzcan múltiples filas de datos
— una lista desplegable que muestra una lista de elementos que un usuario puede seleccionar
La imagen muestral de la derecha muestra la mayoría de estos elementos:
- una caja de texto pidiendo su nombre
- un par de botones de radio pidiéndole que elija entre los valores de género
- una caja selecta que le da una lista de colores de los ojos para elegir
- un par de casillas de verificación para hacer clic en si se aplican a usted
- un área de texto para describir su habilidad atlética
- un botón de envío para enviar valores de formularios actuales al servidor
Estos elementos básicos proporcionan los elementos de interfaz gráfica de usuario (GUI) más comunes, pero no todos. Por ejemplo, no existen equivalentes a una vista de árbol o de cuadrícula.
Sin embargo, se puede imitar una vista de cuadrícula utilizando una tabla HTML estándar en la que cada celda contenga un elemento de entrada de texto. Una vista de árbol también podría imitarse mediante tablas anidadas o, más apropiadamente semánticamente, listas anidadas. En ambos casos, un proceso del lado del servidor es responsable de procesar la información, mientras que JavaScript maneja la interacción del usuario. Las implementaciones de estos elementos de la interfaz están disponibles a través de bibliotecas de JavaScript como jQuery.
HTML 4 introdujo la etiqueta <label>
, que pretende representar un título en una interfaz de usuario y puede asociarse con un control de formulario específico especificando el id del control en el atributo
for
de la etiqueta de etiqueta. Esto permite que las etiquetas permanezcan con sus elementos cuando se cambia el tamaño de una ventana y permitir una funcionalidad más similar a la de un escritorio (por ejemplo, al hacer clic en un botón de opción o en la etiqueta de una casilla de verificación se activará el elemento de entrada asociado).
HTML 5 introduce una serie de etiquetas de entrada que pueden representarse mediante otros elementos de la interfaz. Algunos se basan en campos de entrada de texto y están destinados a introducir y validar datos comunes específicos. Estos incluyen <email>
para ingresar direcciones de correo electrónico, <tel>
para números de teléfono, <number>
para valores numéricos. Hay atributos adicionales para especificar campos obligatorios, campos que deben tener el foco del teclado cuando se carga la página web que contiene el formulario y texto de marcador de posición que se muestra dentro del campo pero que no es entrada del usuario (como el botón 'Buscar'). ; texto que se muestra en muchos campos de entrada de búsqueda antes de ingresar un término de búsqueda). Estas tareas solían manejarse con JavaScript, pero se habían vuelto tan comunes que se agregó soporte al estándar. El tipo de entrada <date>
muestra un calendario desde el cual el usuario puede seleccionar una fecha o un rango de fechas. Y el tipo de entrada color
se puede representar como un texto de entrada simplemente verificando que el valor ingresado sea una representación hexadecimal correcta de un color, según la especificación, o un widget de selección de color (siendo esta última la solución utilizada en la mayoría de los navegadores que admiten este atributo).
Presentación
Cuando se envían datos ingresados en formularios HTML, los nombres y valores de los elementos del formulario se codifican y se envían al servidor en un mensaje de solicitud HTTP mediante GET o POST. Históricamente también se utilizaba un transporte de correo electrónico. El tipo MIME predeterminado (tipo de medio de Internet), application/x-www-form-urlencoded, se basa en una versión muy temprana de las reglas generales de codificación porcentual de URI, con una serie de modificaciones, como la normalización de nueva línea y el reemplazo de espacios con & #34;%20
". Otra codificación posible, tipo de medio de Internet multipart/form-data, también está disponible y es común para envíos de archivos basados en POST.
Uso con lenguajes de programación
Los formularios generalmente se combinan con programas escritos en varios lenguajes de programación para permitir a los desarrolladores crear sitios web dinámicos. Los lenguajes más populares incluyen lenguajes del lado del cliente y/o del lado del servidor.
Aunque se puede utilizar cualquier lenguaje de programación en el servidor para procesar los datos de un formulario, los lenguajes más utilizados son los lenguajes de secuencias de comandos, que tienden a tener una funcionalidad de manejo de cadenas más potente que los lenguajes de programación como C, y también tienen Gestión automática de la memoria que ayuda a prevenir ataques de desbordamiento del búfer.
Lado del cliente
El lenguaje de programación del lado del cliente de facto para sitios web es JavaScript. El uso de JavaScript en el modelo de objetos de documento (DOM) conduce al método de HTML dinámico que permite la creación y modificación dinámica de una página web dentro del navegador.
Si bien los lenguajes del lado del cliente utilizados junto con los formularios son limitados, a menudo pueden servir para realizar una validación previa de los datos del formulario y/o preparar los datos del formulario para enviarlos a un programa del lado del servidor. Sin embargo, este uso está siendo reemplazado por los nuevos tipos de campo input
y el atributo required
de HTML5.
Ejecución del lado del servidor
El código del lado del servidor puede realizar una amplia variedad de tareas para crear sitios web dinámicos que, por razones técnicas o de seguridad, el código del lado del cliente no puede realizar, desde autenticar un inicio de sesión hasta recuperar y almacenar datos en una base de datos y revisar la ortografía. , para enviar correo electrónico. Una ventaja significativa de la ejecución del lado del servidor sobre la del lado del cliente es la concentración de la funcionalidad en el servidor en lugar de depender de diferentes navegadores web para implementar varias funciones de manera consistente y estandarizada. Además, el procesamiento de formularios en un servidor a menudo resulta en una mayor seguridad si la ejecución del lado del servidor está diseñada para no confiar en los datos proporcionados por el cliente e incluye técnicas como la desinfección de HTML. Una desventaja del código del lado del servidor es la escalabilidad: el procesamiento del lado del servidor para todos los usuarios ocurre en el servidor, mientras que el procesamiento del lado del cliente ocurre en computadoras cliente individuales.

Idiomas interpretados
Algunos de los lenguajes interpretados comúnmente utilizados para diseñar formularios interactivos en el desarrollo web son PHP, Python, Ruby, Perl, JSP, Adobe ColdFusion y algunos de los lenguajes compilados comúnmente utilizados son Java y C# con ASP.NET.
PHP
PHP es un lenguaje muy común utilizado para el lado del servidor y#34;programación " y es uno de los pocos lenguajes creados específicamente para la programación web.
Para usar PHP con un formulario HTML, la URL del script PHP se especifica en el atributo action
de la etiqueta del formulario. El archivo PHP de destino luego accede a los datos pasados por el formulario a través del $_POST
o $ _GET
variables, dependiendo del valor del atributo method
utilizado en el formulario. Aquí hay un script PHP de controlador de formulario básico que mostrará el contenido de campo de entrada first_name en la página:
form.html
¡Seguido! DOCTYPE htmlc)html lang="en"■c)cabeza■ c)Título■Formulario.Título■.cabeza■c)cuerpo■ c)forma acción="form_handler.php"■ c)p■ c)etiqueta■Nombre: c)entrada Nombre="primer nombre" /etiqueta"p■ c)p■ c)botón Tipo="Enviar"■Submit.botón"p■ .forma■.cuerpo■.html■
form_handler.php
¡Seguido! DOCTYPE htmlIdentificado?php// solicitar el valor de la variable externa "primer nombre" y filtrarla.Primero Nombre = filter_input()INPUT_GET, "primer nombre", FILTER_SANITIZE_STRING);?c)html lang="en"■c)cabeza■ c)Título■Producto.Título■.cabeza■c)cuerpo■ c)p■ Identificado?php eco "Hola, ${primero Nombre}!"; /* imprimir el valor */? .p■.cuerpo■.html■
El código de muestra anterior utiliza PHP filter_input< /span>()
función para desinfectar la entrada del usuario antes de insertarla en la página. Simplemente imprimir (hacer eco) de la entrada del usuario en el navegador sin verificarla primero es algo que debe evitarse en los procesadores de formularios seguros: si un usuario ingresó el código JavaScript <script> alerta(1)< /script>
en firstname campo, el navegador ejecutaría el script en el campo form_handler.php página, como si hubiera sido codificada por el desarrollador; El código malicioso podría ejecutarse de esta manera. filter_input()
se introdujo en PHP 5.2. Los usuarios de versiones anteriores de PHP podían utilizar htmlspecialchars()
o expresiones regulares para desinfectar la entrada del usuario antes de hacer algo con ella.
Lenguaje de programación Perl
Perl es otro lenguaje que se utiliza a menudo para el desarrollo web. Los scripts Perl se utilizan tradicionalmente como aplicaciones de interfaz de puerta de enlace común (CGI). De hecho, Perl es una forma tan común de escribir CGI que a menudo se confunden. Los CGI pueden escribirse en otros lenguajes además de Perl (la compatibilidad con múltiples idiomas es un objetivo de diseño del protocolo CGI) y existen otras formas de hacer que los scripts Perl interoperen con un servidor web además de usar CGI (como FastCGI, Plack o Apache). ;s mod_perl).
Los CGI de Perl alguna vez fueron una forma muy común de escribir aplicaciones web. Sin embargo, hoy en día muchos servidores web solo admiten PHP, y los desarrolladores de aplicaciones web a menudo buscan compatibilidad con ellos.
Un CGI de Perl 5 moderno que utilice el módulo CGI con un formulario similar al anterior podría verse así:
form_handler.pl
#/usr/bin/env perluso estricto;uso CGI qw(:standard);# Nombre = param()"primer nombre");impresión header;impresión html() cuerpo() p()"¡Hola, nombre de $!"), ),);
scripts de formulario a correo electrónico
Entre los tipos más simples y más comúnmente necesarios de script lado servidor es aquello que simplemente envía un correo electrónico al contenido de un formulario enviado. Este tipo de script es explotado frecuentemente por spammers, sin embargo, y muchos de los scripts de forma a correo más populares en uso son vulnerables al secuestro con el propósito de enviar correos electrónicos basura. Uno de los scripts más populares de este tipo fue "FormMail.pl" hecho por el Archivo de Script de Matt. Hoy en día, este script ya no se utiliza ampliamente en el nuevo desarrollo debido a la falta de actualizaciones, preocupaciones de seguridad y dificultad de configuración.
Creadores de formularios
Algunas empresas ofrecen formularios como servicio alojado. Por lo general, estas empresas ofrecen algún tipo de editor visual, herramientas de generación de informes e infraestructura para crear y alojar los formularios, que pueden integrarse en las páginas web. Las empresas de alojamiento web proporcionan plantillas a sus clientes como servicio complementario. Otros servicios de alojamiento de formularios ofrecen formularios de contacto gratuitos que un usuario puede instalar en su propio sitio web pegando el código del servicio en el HTML del sitio.
Historia
Los formularios HTML fueron implementados por primera vez por el navegador Viola.