La forma más sencilla de enviar datos por correo electrónico utilizando HTML y PHP. Cómo crear un formulario de comentarios con la capacidad de descargar y enviar un archivo por correo electrónico PHP

En este artículo, aprenderá cómo crear un formulario de comentarios (recibiremos el correo electrónico del usuario), que le brinda la oportunidad de adjuntar y enviar su archivo al servidor. También en este artículo aprenderá cómo verificar el tipo y tamaño del archivo descargado.

Formulario HTML con campo de envío de archivos

El formulario HTML con el campo de envío de archivos se presenta a continuación. Al hacer clic en el botón "examinar", el usuario puede seleccionar un archivo en su máquina local.

El formulario se verá así:

Tenga en cuenta que en los atributos del formulario especificamos enctype="multipart/form-data" . Esto le indicará al navegador que el formulario se puede utilizar para enviar archivos. También agregamos los campos "nombre" y "correo electrónico" para recopilar la mayor cantidad de información posible sobre el usuario. Luego viene el campo de envío de archivos.

Cuando hace clic en el botón Enviar, los datos, incluidos los datos sobre el archivo que se envía, se enviarán al archivo del controlador, cuya ruta especificamos en el atributo de acción del formulario.

Obtener información sobre el archivo descargado

Primero comprobaremos los datos recibidos y luego, si la verificación es exitosa, los enviaremos por correo electrónico.

Toda la información sobre los archivos descargados se puede obtener utilizando la matriz $_FILES.

El contenido de la matriz $_FILES para nuestro ejemplo se muestra a continuación. Tenga en cuenta que el valor del atributo de nombre (para nosotros es archivo_cargado) en el campo de selección de archivo puede ser cualquier cosa.

  • $_FILES["archivo_cargado"]["nombre"]
    El nombre original del archivo en la computadora del usuario.
  • $_FILES["archivo_cargado"]["tipo"]
    Tipo de archivo Mime, si el navegador proporcionó dicha información. Ejemplo: "imagen/gif". Este tipo mime no está verificado en PHP, así que no confíe en su valor sin verificarlo.
  • $_FILES["archivo_cargado"]["tamaño"]
    Tamaño en bytes del archivo recibido.
  • $_FILES["archivo_cargado"]["tmp_name"]
    El nombre temporal con el que se guardó el archivo recibido en el servidor.
  • $_FILES["archivo_cargado"]["error"]
    Código de error que puede ocurrir al descargar un archivo. Este elemento fue agregado en PHP 4.2.0

Obtenemos el nombre, tipo y tamaño del archivo descargado:

//Obtiene el último componente del nombre del archivo cargado $name_of_uploaded_file = basename($_FILES["uploaded_file"]["name"]);

// por ejemplo, index.php //obtiene la extensión del archivo (sin el punto) $type_of_uploaded_file = substr($name_of_uploaded_file, // posición del punto + 1 strrpos($name_of_uploaded_file, ".") + 1); $tamaño_del_archivo_cargado = $_FILES["archivo_cargado"]["tamaño"]/1024;

//tamaño en KB

Como puede ver, la información sobre el archivo cargado está disponible a través de la matriz $_FILES.

Comprobar el tamaño y el tipo de extensión del archivo descargado

Supongamos que el archivo resultante debe ser una imagen ("jpg", "jpeg", "gif", "bmp") y no debe exceder los 100 Kb. Entonces nuestro código se verá así:

//Configuraciones $max_allowed_file_size = 100; // tamaño en KB $allowed_extensions = array("jpg", "jpeg", "gif", "bmp"); //Comprueba if($size_of_uploaded_file > $max_allowed_file_size) ( $errors .= "\n El tamaño del archivo debe ser menor que $max_allowed_file_size"; ) //------ Verifica la extensión del archivo ----- $allowed_ext = FALSO; para($i=0; $i

En el código anterior estamos verificando el tamaño y tipo del archivo. El tamaño de archivo máximo permitido es 100 KB ($max_allowed_file_size). La matriz $allowed_extensions contiene los nombres de todas las extensiones de archivo permitidas. Por lo tanto, la extensión del archivo se compara con los valores de la matriz $allowed_extensions.

Cuando se detectan errores, a la variable $error se le asigna la entrada adecuada.

Copia el archivo descargado

Es hora de enviar el archivo descargado al correo electrónico del administrador.

//copia el archivo temporal a la carpeta de cargas $path_of_uploaded_file = $upload_folder. $nombre_del_archivo_cargado; $tmp_path = $_FILES["uploaded_file"]["tmp_name"]; // se cargó el archivo mediante HTTP POST if(is_uploaded_file($tmp_path)) ( // si el archivo no se copió, crea un error if(!copy($tmp_path,$path_of_uploaded_file)) ( $errors .= "\n error al copiar el archivo subido"; ) )

Primero debemos copiar el archivo a una carpeta del servidor. (Al final del script, si el archivo recibido no fue renombrado o copiado a una nueva carpeta, se eliminará automáticamente de la carpeta temporal).

Redactaremos y enviaremos un correo electrónico al administrador del sitio (o a quien usted desee). Para enviar y redactar la carta usaremos la biblioteca pear (consulte las instrucciones de instalación a continuación). Las clases de Pear PEAR::Mail y PEAR::Mail_Mime se utilizan para enviar correos electrónicos con archivos adjuntos.

Primero necesitamos incluir los archivos de la biblioteca de Pear para estas clases:

Incluir_once("Mail.php"); include_once("Mail_Mime/mime.php");

A continuación se muestra el código para redactar y enviar la carta:

$mensaje = nuevo Mail_mime(); $mensaje->setTXTBody($texto); $mensaje->addAttachment($ruta_del_archivo_uploaded); $cuerpo = $mensaje->get(); $extraheaders = array("De"=>$de, "Asunto"=>$asunto,"Responder a"=>$visitor_email); $encabezados = $mensaje->encabezados($extraencabezados); $correo = Correo::factory("correo"); $correo->enviar($a, $encabezados, $cuerpo);

La clase Mail_mime() te ayudará a crear un mensaje MIME. En el código anterior, creamos un objeto Mail_mime, actualizamos el cuerpo del mensaje ($message->setTXTBody($text);) y agregamos el archivo adjunto ($message->addAttachment(file)).

Antes de poder utilizar las clases PEAR, debe instalar PEAR en su servidor. Aquí hay una forma rápida de instalar PEAR:
Descarga el instalador de PEAR

Guarde el archivo como "pear-installer.php". Sube este archivo a tu servidor en cualquier directorio. Luego escribe la ruta al archivo en tu navegador:
http://www.tudominio.com/pear-installer.php
Aparecerá una interfaz web para instalar PEAR en su sitio. Siga las instrucciones de instalación. Después de instalar Pear, busque e instale los paquetes "mail" y "mail_mime".

Formulario simple con descarga, descarga.

El archivo contiene un formulario sencillo para enviar el archivo descargado por correo electrónico.

Una de las tareas más comunes en la práctica es la implementación de un formulario de comentarios. Te refieres a escribir su código HTML, diseñarlo en CSS, crear un script PHP que procesaría los datos recibidos del usuario y enviarlos a nuestro correo, escribir un script JS que verificaría el formulario para comprobar la idoneidad de los datos ingresados, protegiendo nuestra creación del spam para que nuestro buzón no colapse por los ataques de bots.

Todos los puntos anteriores serán discutidos en nuestra revisión y comentados en detalle.

Entonces, comencemos a crear un formulario de comentarios:

HTML

En primer lugar, escribimos código HTML, que especifica los campos que completará el usuario. Se formalizarán en el futuro. El código del formulario se ve así:

< form method= "post" action= "mail.php" > < div class = "left" > < label for = "name" >Nombre: < input maxlength= "30" type= "text" name= "name" /> < label for = "phone" >Teléfono: < input maxlength= "30" type= "text" name= "phone" /> < label for = "mail" >Correo electrónico: < input maxlength= "30" type= "text" name= "mail" /> < div class = "right" > < label for = "message" >Mensaje: < textarea rows= "7" cols= "50" name= "message" > < input type= "submit" value= "Enviar" />

Y visualmente ahora se ve así:

Estoy de acuerdo, hasta ahora todo está feo y nada está claro, pero recién comenzamos.

Veamos el código anterior en detalle:

  • < form method= "post" action= "mail.php" > …


    Para crear un formulario, necesita utilizar la etiqueta de formulario. Es él quien determina el principio y el final del formulario para el intérprete de código. Como cualquier etiqueta, tiene un conjunto completo de atributos, pero solo se requieren dos para que el formulario funcione: método (el método de enviar una solicitud al servidor, la publicación se usa como estándar para los formularios) y acción ( indica la ruta al archivo del controlador de formulario, es decir, en Este archivo contendrá un script PHP, que luego nos enviará los valores ingresados ​​por el usuario por correo electrónico. En nuestro caso, vemos que este archivo se llama mail.php y. está ubicado en el mismo directorio del sitio que la página que estamos considerando).
  • < input maxlength= "30" type= "text" name= "name" />


    A continuación tenemos las entradas. En realidad, estos son los campos del formulario en los que los usuarios ingresarán la información que necesitamos (type="text" indica que será texto). El atributo maxlength especifica cuántos caracteres puede ingresar el usuario en un campo de formulario determinado. El atributo más importante es el nombre: especifica el nombre de un campo específico. Es con estos nombres que el script PHP procesará posteriormente la información que ingresa. Si lo desea, también puede configurar el atributo de marcador de posición, que muestra texto dentro del campo que desaparece cuando el cursor se coloca dentro de él. Uno de los problemas con el marcador de posición es que no es compatible con algunos navegadores más antiguos.
  • < label for = "name" >Nombre:


    Se utiliza si tenemos marcadores de posición abandonados. Una firma de campo normal, el atributo for indica a qué campo específico se refiere esta firma. El valor indica el nombre del campo que nos interesa.
  • < textarea rows= "7" cols= "50" name= "message" >


    Al igual que la entrada, está destinado a que el usuario ingrese información, solo que esta vez el campo está diseñado para mensajes largos. Filas especifica el tamaño del campo en filas, columnas en caracteres. En general, establecen la altura y el ancho de nuestro campo.
  • < input type= "submit" value= "Enviar" />


    Type="submit" nos dice que este es un botón para enviar un formulario y el valor especifica el texto que estará dentro de este botón.
  • < div class = "right" >


    se utilizan sólo para un diseño visual adicional del formulario.

CSS

Para que nuestro formulario de comentarios se vea presentable, es necesario formatearlo. Para obtener el siguiente resultado:

Usamos este código:

formulario (fondo: #f4f5f7; relleno: 20px;) formulario. izquierda, formulario. derecha (pantalla: bloque en línea; alineación vertical: arriba; ancho: 458px;) formulario. derecha (relleno-izquierda: 20px;) etiqueta (pantalla: bloque; tamaño de fuente: 18px; alineación de texto: centro; margen: 10px 0px 0px 0px;) entrada, área de texto (borde: 1px sólido #82858D; relleno: 10px; tamaño de fuente: 16 px; ancho: 436 px; ) área de texto (alto: 98 px; margen inferior: 32 px;) entrada [tipo = "enviar"] (ancho: 200 px; flotador: derecho; borde: ninguno; fondo: # 595B5F; color: #fff; texto- transformar: mayúscula;

No veo el sentido de describir CSS en detalle; sólo llamaré su atención sobre los puntos clave:

  1. No es necesario escribir un diseño para cada etiqueta en el formulario. Intente construir sus selectores de tal manera que pueda diseñar todos los elementos que necesita en un par de líneas de código.
  2. No utilice etiquetas de tipo innecesarias para romper líneas y crear sangrías < br>, < p> etc. CSS con display: block y margin con propiedades de relleno se adapta bien a estas tareas. Más sobre por qué no deberías usarlo < br> En general, puedes leer el diseño en el artículo Tag br, pero ¿es realmente necesario? .
  3. No debe utilizar el diseño tabular para los formularios. Esto contradice la semántica de esta etiqueta y los motores de búsqueda aman el código semántico. Para formar la estructura visual del documento, solo necesitamos etiquetas div y las propiedades de visualización especificadas en CSS: inline-block (organiza los bloques en una fila) y vertical-align: top (evita que se dispersen por la pantalla). , los ponemos a la altura requerida y listo, nada superfluo y todo queda ubicado como necesitamos.

Para aquellos que quieran ahorrar tiempo en el diseño de sitios web, puedo recomendar el uso de marcos CSS al crear sitios web, especialmente los escritos por ellos mismos. Mi elección a este respecto es Twitter Bootstrap. Puede ver una lección sobre cómo diseñar formularios usándolo.

PHP

Bueno, es hora de hacer que nuestro formulario funcione.

Vamos a nuestro directorio raíz del sitio y creamos allí el archivo mail.php, al cual previamente especificamos la ruta en el atributo de acción de la etiqueta del formulario.

Al final su código se verá así:

Tu mensaje ha sido enviado exitosamente \" javascript: historia.back()\" >Volver atrás

" ;
if (! vacío ($_POST [ "nombre" ] ) y ! vacío ($_POST [ "teléfono" ] ) y ! vacío ($_POST [ "correo" ] ) y ! vacío ($_POST [ "mensaje" ] ) ) ( $nombre = recortar (strip_tags ($_POST [ "nombre" ] ) ) ); $teléfono = recortar (strip_tags ($_POST [ "teléfono" ] ) ); $correo = recortar (strip_tags ($_POST [ "correo" ] ) ) ; $mensaje = trim (strip_tags ($_POST [ "mensaje" ] ); correo (, , "Te escribí: " . $nombre."
Su número: " . $teléfono . " "
Su correo electrónico: " . $mail .
Su mensaje: " . $mensaje, );
eco
"¡Su mensaje ha sido enviado exitosamente!
Recibirás una respuesta en breve

$volver "

;

\" javascript: historia.back()\" >Volver atrás

" ;

salida ; ) más ( eco ; salir ; ) ?>

Puede omitir la discusión de las partes HTML y CSS de este documento. En esencia, se trata de una página web normal que puede diseñar según sus deseos y necesidades. Veamos su parte más importante: el script PHP para procesar el formulario: $volver = " Con esta línea creamos un enlace para volver a la página anterior. Como no sabemos de antemano desde qué página llegará el usuario a ésta, esto se hace mediante una pequeña función JS. En el futuro, simplemente accederemos a esta variable para mostrarla en los lugares que necesitemos. if (! vacío ($_POST [ "nombre" ] ) y ! vacío ($_POST [ "teléfono" ] ) y ! vacío ($_POST [ "correo" ] ) y ! vacío ($_POST [ "mensaje" ] ) ) (//parte interna del controlador

) más ( eco

"¡Para enviar un mensaje, complete todos los campos! $volver "

;

salida ; )

Aquí agregamos una verificación de formulario para garantizar que los campos estén llenos. Como habrás adivinado, en la parte $_POST["name"], entre comillas, escribimos el valor del atributo de nombre de nuestras entradas.

Las comprobaciones pueden ser más complicadas, pero queda a su discreción. Ya hemos instalado una protección mínima en el lado del servidor. El resto lo haremos del lado del cliente usando JS.

No recomiendo abandonar por completo la protección de formularios en el lado del servidor en favor de JS, ya que, aunque es extremadamente raro, hay formularios únicos con JS deshabilitado en el navegador.

Después de limpiar las etiquetas, agregue enviar un mensaje:

correo ( "[email protected]", "Carta de la dirección_de_su_sitio", "Te escribí: ". $nombre. "
if (! vacío ($_POST [ "nombre" ] ) y ! vacío ($_POST [ "teléfono" ] ) y ! vacío ($_POST [ "correo" ] ) y ! vacío ($_POST [ "mensaje" ] ) ) ( $nombre = recortar (strip_tags ($_POST [ "nombre" ] ) ) ); $teléfono = recortar (strip_tags ($_POST [ "teléfono" ] ) ); $correo = recortar (strip_tags ($_POST [ "correo" ] ) ) ; $mensaje = trim (strip_tags ($_POST [ "mensaje" ] ); correo (, , "Te escribí: " . $nombre."
Su número: " . $teléfono . " "
Su mensaje: "
. $mensaje "Tipo de contenido:text/html;charset=windows-1251") ;

Es esta línea la que se encarga de generar y enviarnos el mensaje. Se completa de la siguiente manera:

  1. [email protected]” – aquí insertas tu correo electrónico entre comillas
  2. "Carta de la dirección_de_su_sitio" es el asunto del mensaje que se enviará a su correo electrónico. Puedes escribir cualquier cosa aquí.
  3. "Te escribí: ".$nombre". < br /> Su número: ".$teléfono". < br /> Su correo electrónico: ".$mail". < br /> Su mensaje: ".$mensaje – formamos el texto del mensaje en sí. $nombre – insertamos la información completada por el usuario accediendo a los campos del paso anterior, entre comillas describimos lo que significa este campo, con la etiqueta < br /> Rompemos la línea para que el mensaje en su conjunto sea legible.
  4. Content-type:text/html;charset=windows-1251: al final hay una indicación explícita del tipo de datos transmitidos en el mensaje y su codificación.

¡IMPORTANTE!

La codificación especificada en el “encabezado” del documento ( < meta http- equiv= "Content-Type" content= "texto/html; juego de caracteres=windows-1251" /> ), la codificación del mensaje Content-type:text/html;charset=windows-1251 y la codificación del archivo PHP en general deben coincidir; de lo contrario, en los mensajes recibidos por correo electrónico, se mostrarán "palabras locas" en lugar de ruso o Letras inglesas.

Mucha gente no indica explícitamente la codificación del mensaje que se envía, pero en algunos clientes de correo electrónico esto puede causar problemas en el futuro (se envían correos electrónicos ilegibles al correo), por lo que recomiendo especificarlo de todos modos.

Comprobación del formulario para comprobar la idoneidad de los datos introducidos.

Para asegurarse de que los usuarios no omitan campos sin darse cuenta y completen todo correctamente, vale la pena verificar los datos ingresados.

Esto se puede hacer tanto en PHP del lado del servidor como en JS del lado del cliente. Utilizo la segunda opción, porque de esta manera una persona puede descubrir inmediatamente qué hizo mal y corregir el error sin realizar transiciones de página adicionales.

Pegamos el código del script en el mismo archivo donde tenemos la parte HTML del formulario. Para nuestro caso se verá así:

< script>función checkForm(formulario) ( var nombre = formulario. nombre. valor; var n = nombre. partido(/ ^[ A- Za- zA- Jaa- z ] * [ A- Za- zA- Ja- z ] + $/ ) ; si (!n) (alerta( "El nombre ingresado es incorrecto, por favor corrija el error") ; devolver falso;) var teléfono = formulario. teléfono. valor; var p = teléfono. partido(/ ^[ 0 - 9 + ] [ 0 - 9 - ] * [ 0 - 9 - ] + $/ ); si (! p) ( alerta ("Número de teléfono ingresado incorrectamente"

) ;

devolver falso; ) var correo = formulario. correo. valor; var m = correo. partido(/ ^[ A- Za- z0- 9 ] [ A- Za- z0- 9 \. _- ] * [ A- Za- z0- 9 _] *@ ([ A- Za- z0- 9 ] + ([ A- Za- z0- 9 - ] * [ A- Za- z0- 9 ] + ) * \ ) + [ A- Za- z] + $/ ); si (! m) ( alerta (

< form method= "post" action= "mail.php" onSubmit= "return checkForm(this)" >

"El correo electrónico ingresado es incorrecto, por favor corrija el error"


) ;

devolver falso;) devolver verdadero;

)

Bueno, ahora el análisis de siempre:

Para eso,

Comencemos descargando el archivo con la biblioteca y conectándolo al controlador de formulario, para nosotros este es el archivo mail.php:

requiere "phpmailer/PHPMailerAutoload.php";

requerir ;

Ahora necesitamos crear un objeto de la clase de complemento de biblioteca y configurarlo según sea necesario. Aquí necesitamos un buzón real, que se utilizará para enviar cartas. Estoy utilizando un buzón de prueba registrado en mail.ru. Al buscar en Google mail.ru smtp, puede encontrar la configuración necesaria que utilizamos. Exactamente de la misma forma podemos encontrar la configuración smtp de otros servicios de correo.

El código del controlador final se verá así:

"; // agrega el nombre al texto $message .= "Teléfono: ($_POST["phone"])"; // agrega el número de teléfono al texto require "phpmailer/PHPMailerAutoload.php"; $mail = new PHPMailer; $mail- >isSMTP(); $mail->Host = "smtp.mail.ru"; $mail->SMTPAuth = true; $mail->Username = "mailer_test_2014" // inicia sesión desde tu correo $mail ->Contraseña = " !mailer_2014!"; // contraseña del buzón $correo->SMTPSecure = "ssl"; $correo->Puerto = "465"; Desde = " [correo electrónico protegido]"; $correo->DeNombre = "Andrey"; $correo->addAddress(" [correo electrónico protegido]", "Andrey"); $correo->isHTML(true); $correo->Asunto = "Solicitar una devolución de llamada"; $correo->Cuerpo = $mensaje; if($correo->enviar())( echo "

Tu mensaje ha sido enviado

"; )de lo contrario( eco "

¡Error!

"; }

< ? php

$mensaje= "Nombre: ($_POST["nombre"])
"
; // agregar nombre al texto

$mensaje. = "Teléfono: ($_POST["teléfono"])"; // agregar número de teléfono al texto

requerir "phpmailer/PHPMailerAutoload.php";

$correo = nuevo PHPMailer;

$correo -> esSMTP();

$ correo -> Anfitrión = "smtp.mail.ru" ;

$correo -> SMTPAuth = verdadero;

$correo -> Nombre de usuario = "mailer_test_2014"; // inicia sesión desde tu correo electrónico

$ correo -> Contraseña = "!mailer_2014!" ; //contraseña del buzón

$correo -> SMTPSecure = "ssl";

$correo -> Puerto = "465" ;

$correo -> CharSet = "UTF-8";

$correo -> De = " [correo electrónico protegido]" ;

$ correo -> DesdeNombre = "Andrey" ;

$correo -> agregarDirección(" [correo electrónico protegido]" , "Andréi" );

$correo -> esHTML(verdadero);

En esta lección aprenderemos sobre la función. correo(), usando el ejemplo de crear Formularios de comentarios en PHP seguido del envío de los datos recibidos por correo electrónico.

Para hacer esto, crearemos dos archivos: formato.php Y correo.php. El primer archivo contendrá solo un formulario con campos para la entrada del usuario. Dentro de una etiqueta forma- botón "Enviar" y atributo acción que se refiere al manejador - correo.php, es esto que se accede a los datos del formulario cuando se presiona el botón "Enviar". En nuestro ejemplo, los datos del formulario se envían a una página web llamada "/correo.php". Esta página contiene un script para PHP que procesa los datos del formulario:


Los datos del formulario se envían usando CORREO(procesado como $_POST). $_POST es una matriz de variables pasadas al script actual mediante el método CORREO.

A continuación puedes ver el contenido del archivo. formato.php, cuyos campos son cumplimentados por el propio usuario en algún sitio web. Todos los campos de entrada de datos deben tener el atributo nombre, nosotros mismos prescribimos los valores, basándonos en la lógica.




Formulario de comentarios en PHP enviado por correo electrónico


Formulario de comentarios en PHP







Dejar un mensaje:
Su nombre:



Correo electrónico:

Número de teléfono:

Mensaje:

El área de texto puede contener un número ilimitado de caracteres-->









Así es como se ve visualmente el formulario en el navegador.

A continuación escribimos el código del archivo. correo.php. Creamos nuestros propios nombres para las variables. EN PHP variable comienza con signo $ seguido del nombre de la variable. El valor de texto de la variable está entre comillas. Usando variables, el contenido del formulario se envía al correo electrónico del administrador simplemente colocando el nombre del elemento del formulario entre corchetes: el valor nombre.

$a = " [correo electrónico protegido]"; // correo electrónico del destinatario de los datos del formulario
$tema = "Formulario de comentarios en PHP"; //asunto del correo electrónico recibido
$message = "Su nombre: ".$_POST["nombre"]."
";//asigna a la variable el valor obtenido de la forma nombre=nombre
$mensaje .= "Correo electrónico: ".$_POST["correo electrónico"]."
"; //obtenido del formulario nombre=correo electrónico
$mensaje .= "Número de teléfono: ".$_POST["teléfono"]."
"; //obtenido del formulario nombre=teléfono
$mensaje .= "Mensaje: ".$_POST["mensaje"]."
"; //obtenido del formulario nombre=mensaje
$headers = "Versión MIME: 1.0" . "\r\n"; // el encabezado coincide con el formato más el carácter de nueva línea
$headers .= "Tipo de contenido: texto/html; charset=utf-8" . "\r\n"; //indica el tipo de contenido que se envía
correo($a, $tema, $mensaje, $encabezados); //envía valores de variables al destinatario por correo electrónico
?>

Así, los datos de la matriz $_POST se pasará a las variables correspondientes y se enviará por correo electrónico utilizando la función correo. Completemos nuestro formulario y hagamos clic en el botón Enviar. No olvides incluir tu correo electrónico. La carta llegó al instante.

El formulario en sí generalmente está destinado a recibir información del usuario para enviarla al servidor, donde el programa de procesamiento recibe los datos del formulario. Un programa de este tipo se puede escribir en cualquier lenguaje de programación del lado del servidor como PHP, Perl, etc. La dirección del programa se indica en el atributo de acción de la etiqueta.

, como se muestra en el ejemplo 1.

Ejemplo 1: envío de datos del formulario

HTML5 IE Cr Op Sa Fx

datos del formulario



En este ejemplo, los datos del formulario indicados por el atributo de nombre (nombre de usuario y contraseña) se pasarán al archivo en /example/handler.php. Si no se especifica el atributo de acción, la transferencia se produce a la dirección de la página actual.

La transferencia al servidor se produce mediante dos métodos diferentes: GET y POST, para establecer el método en la etiqueta.

Se utiliza el atributo de método y sus valores son las palabras clave get y post. Si no se especifica el atributo del método, de forma predeterminada los datos se envían al servidor mediante el método GET. en la mesa La Figura 1 muestra las diferencias entre estos métodos.

El método utilizado se puede determinar fácilmente mediante la barra de direcciones del navegador. Si aparece un signo de interrogación y la dirección se ve así, entonces definitivamente se trata de un GET.

http://www.google.ru/search?q=%D1%81%D0%B8%D1%81%D1%8C%D0%BA%D0%B8&ie=utf-8

Una combinación única de parámetros en la barra de direcciones identifica de forma única una página, por lo que las páginas con direcciones ?q=node/add y ?q=node se consideran diferentes. Esta función la utilizan los sistemas de gestión de contenidos (CMS, sistema de gestión de contenidos) para crear muchas páginas de sitios web. En realidad se utiliza un único archivo que recibe una solicitud GET y, según ella, genera el contenido del documento.

A continuación se enumeran aplicaciones típicas de estos métodos en sitios.

CONSEGUIR

Transferir pequeños datos de texto al servidor; búsqueda del sitio.

Los motores de búsqueda y los formularios de búsqueda de sitios siempre se envían mediante el método GET, esto le permite compartir los resultados de la búsqueda con amigos, enviar un enlace por correo o publicarlo en un foro.

CORREO

Transferir archivos (fotos, archivos, programas, etc.); enviar comentarios; Agregar y editar mensajes en el foro, blog.

De forma predeterminada, el formulario se procesa en la pestaña actual del navegador; sin embargo, al enviar el formulario, puede cambiar este parámetro y abrir el controlador del formulario en una nueva pestaña o marco. Este comportamiento se especifica a través del "nombre de contexto", que es el valor del atributo de destino de la etiqueta. . Los valores populares son _blank para abrir el formulario en una nueva ventana o pestaña, y el nombre del marco, que se especifica mediante el atributo de nombre de la etiqueta.



En este ejemplo, cuando hace clic en el botón Enviar, el resultado del envío del formulario se abre en un marco llamado área.

Los elementos del formulario tradicionalmente se colocan dentro de una etiqueta.

, determinando así los datos que se transmitirán al servidor. Al mismo tiempo, HTML5 tiene la capacidad de separar un formulario de sus elementos. Esto se hace por conveniencia y versatilidad, por lo que un diseño complejo puede contener varios formularios que no deben cruzarse entre sí o, por ejemplo, algunos elementos se muestran mediante scripts en un lugar de la página y el formulario en sí se encuentra en otro. . La conexión entre el formulario y sus elementos se produce en este caso a través del identificador del formulario, y a los elementos se debe agregar el atributo del formulario con un valor igual a este identificador (ejemplo 3).

Ejemplo 3: vincular un formulario a campos

HTML5 IE Cr Op Sa Fx

Forma



En este ejemplo la etiqueta

se identifica de forma única a través del identificador de autenticación y form="auth" se agrega a los campos que deben enviarse a través del formulario. En este caso, el comportamiento de los elementos no cambia; cuando se hace clic en el botón, el nombre de usuario y la contraseña se envían al controlador handler.php.

Aunque los parámetros de transferencia de formulario se especifican tradicionalmente en la etiqueta , también se pueden transferir a los botones de envío del formulario (


Arriba