ff-multiconverter, multimedia, audio, video, linux, ubuntu ubuntu kylin, china, releases, linux terminal, ubuntu, linux, comandos, shell conky, gadgets, ubuntu, linux SpeedTest-Cli, velocidad, red, consola, terminal tag foto 6 pinta, grafica, linux, ubuntu djl, juegos, yum, synaptic, paquetes ubuntu, releases, canonical psensor, ubuntu, linux, sistema, monitor

Guia HTML: declaración DOCTYPE.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Declaración DOCTYPE.

Hasta ahora no hemos hablado de un concepto de vital importancia que es la utilización de elementos HTML estándares. De todos modos no hemos introducido elementos HTML propietarios o desaprobados (ej. font, center etc.)

La organización que define los estándares para la web es W3C.
Utilizar en lo posible las directivas de este comite de estándares nos traerá como ventanja que nuestras páginas en un futuro sigan viendose correctamente en las nuevas versiones de navegadores.

Ahora introduciremos una nueva sección de nuestra página que es la declaración del tipo de documento (DTD Document Type Declaration), esta sección se ubica en la primera línea del archivo HTML, es decir antes de la marca html.
Según el rigor de HTML  utilizado podemos declararla como:
Declaración transitoria:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

Declaración estrícta:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

Veamos la sintaxis para definir la sección del DOCTYPE, la primera diferencia con cualquier otro elemento HTML es que el caracter siguiente del < es el signo de admiración (!), luego debe ir la palabra DOCTYPE indicando que se trata de un archivo HTML. Más adelante debemos indicar la versión de HTML y si se trata de HTML transitorio o estricto:

Si es HTML transitorio disponemos:

"-//W3C//DTD HTML 4.01 Transitional//EN"

Si es HTML estrícto

"-//W3C//DTD HTML 4.01//EN"

Es decir que cuando es HTML estricto no disponemos la palabra Transitional

Por último se define la dirección de internet donde se encuentra un archivo que enuncia los elemento y propiedades permitidos en el HTML 4.01, discriminando entre HTML estricto y transitorio.

Porqué utilizar HTML transitional, si lo más correcto sería utilizar HTML estricto?

Puede ser que tengamos muchas páginas desarrolladas en el pasado y nos lleve un tiempo hacerlas compatible con el HTML estricto.

Para ver si una página cumple el estandar específico podemos acceder a un programa validador que se encuentra en validator.w3.org

Pruebe de copiar la siguiente página y verifique si se valida correctamente en la dirección indicada en la línea anterior (copie al textarea de esta página este documento HTML y presione el botón check):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Enlaces a periódicos</title>
</head>
<body>
<ol>
<li>Argentina
<ul>
<li><a href="http://www.lanacion.com.ar">La Nación</a></li>
<li><a href="http://www.clarin.com.ar">Clarín</a></li>
<li><a href="http://www.pagina12.com.ar">Página 12</a></li>
</ul>
</li>
<li>España
<ul>
<li><a href="http://www.elpais.es">El País Digital</a></li>
<li><a href="http://www.abc.es">ABC</a></li>
<li><a href="http://www.elmundo.es">El Mundo</a></li>
</ul>
</li>
<li>México
<ul>
<li><a href="http://www.jornada.unam.mx">La Jornada</a></li>
<li><a href="http://www.el-universal.com.mx">El Universal</a></li>
</ul>
</li>
</ol>
</body>
</html>

Pruebe de borrar el elemento title, tanto su contenido como las marcas de comienzo y final. Valide nuevamente.

Pruebe de borrar la marca <ol> y valide.

Declaración DOCTYPE. HTML Transitional.

Cuando indicamos que una página utiliza HTML Transitional podemos hacer uso de algunos elementos HTML de presentacion (fuentes, alineamiento, colores), además la ubicación y anidamiento de elementos es más elástico.

Veamos si nuestra primer página que desarrollamos pasa la validación HTML Transitional (Agregandole la sección del DOCTYPE):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Como veras después que lo valides dará un error indicando que faltan datos en la marca head. Como mínimo deberemos agregar el elemento title.

Luego la página queda:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora prácticamente valida correctamente, solo le falta un meta con la descripción de codificación:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora si está totalmente correcta.

Declaración DOCTYPE. HTML Estricto.

En el DTD Estricto de HTML 4.01 se excluye los elementos y atributos de presentación que el W3C espera que dejen de utilizarse a medida que se extienda por parte de todos los navegadores el soporte de las hojas de estilo.

Los webmaster deben usar el DTD Estricto siempre que sea posible, pero pueden usar el DTD Transicional si es necesario el soporte de elementos y atributos de presentación.

Prácticamente todas las páginas que hemos desarrollado debemos hacerle algunos retoques para que cumplan con la validación de HTML estrícta.

Veremos varias de las páginas desarrolladas y los cambios que debemos hacer para que pasen la validación:

Problema 1:Confeccionar una página que muestre los nombres de 5 lenguajes de programación separados por un guión:

<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Página de prueba del DTD</title>
</head>
<body>
<p>PHP - Java - JavaScript - C - C++</p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el texto de la página dentro de un párrafo (no puede un texto depender directamente del body):

    <p>PHP - Java - JavaScript - C - C++</p>

Todos estos cambios son obligatorios para que valide como HTML 4.01 estricto.

Problema 2:Confeccionar una página principal que tenga un hipervínculo a otra página secundaria.

<html>
<head>
</head>
<body>
<h1>Página principal.</h1>
<a href="pagina2.html">Noticias</a>
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<h1>Página principal.</h1>
<p><a href="pagina2.html">Noticias</a></p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el hipervínculo de la página dentro de un párrafo (no puede un hipervínculo depender directamente del body):

    <p><a href="pagina2.html">Noticias</a></p>

Problema 3:Confeccionar un formulario que solicite el ingreso del nombre de un usuario y su clave. Mostrar asteriscos donde se ingresa la clave. Disponer dos botones, uno para el envío de datos al servidor y otro para borrar el contenido de todos los controles (editores de texto) que contiene el formulario.

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
Ingrese su nombre: 
<input type="text" name="nombre" size="20">
<br>
Ingrese su clave: 
<input type="password" name="clave" size="12">
<br>
<input type="submit" value="enviar">
<input type="reset" value="borrar">
</form>
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<p>
Ingrese su nombre: 
<input type="text" name="nombre" size="20">
<br>
Ingrese su clave: 
<input type="password" name="clave" size="12">
<br>
<input type="submit" value="enviar">
<input type="reset" value="borrar">
</p>
</form>
</body>
</html>


  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos todos el contenido del form dentro de un párrafo. No se puede disponer texto o controles de formulario que dependan directamente del elemento form.:

    <p> Ingrese su nombre: <input type="text" name="nombre" size="20"> <br> Ingrese su clave: <input type="password" name="clave" size="12"> <br> <input type="submit" value="enviar"> <input type="reset" value="borrar"> </p>

Todos estos cambios son obligatorios para que valide como HTML 4.01 estricto.

Declaración DOCTYPE. para Frames.
 
Cuando empleamos frames debemos utilizar una declaración distinta para el elemento DOCTYPE.

Luego la sección del DOCTYPE para una página que implementa frames debe ser:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

Es decir se incorpora la palabra Frameset donde disponíamos la palabra Transitional o estaba vacía si validamos HTML estrícto.

Confeccionar una ventana que contenga dos frames verticales. Dispondremos dos hipervínculos en el frame de la izquierda que al ser presionados actualicen el archivo a mostrar por el frame de la derecha.

pagina1.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<frameset cols="20%,80%">
<frame src="pagina2.html">
<frame src="pagina3.html" name="ventanadinamica">
<noframes>
<p>El navegador no soporta frames</p>
</noframes>
</frameset>
</html>

pagina2.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h2>Enlaces.</h2>
<ul>
<li><a href="pagina3.html" target="ventanadinamica">Enlace 
1</a></li>
<li><a href="pagina4.html" target="ventanadinamica">Enlace 
2</a></li>
</ul>
</body>
</html>

Es importante notar que hemos definido la página HTML Transitional, esto se debe a que la propiedad target del elemento "a" no está permitida. Es decir si utilizamos frames deberemos trabajar con HTML Transitional.

pagina3.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>

pagina4.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Kghostview es el programa que utiliza por defecto KDE para ver e imprimir archivos PDF y PostScript.

kde2-kghostviewEl programa Kghostview es el programa que utiliza por defecto KDE para ver e imprimir archivos PDF y PostScript.

Instrucciones.
Para abrir en Konqueror un archivo PDF se puede pulsar con el botón derecho sobre su icono y en el menú Abrir con elegir KGhostView como lo muestra la imagen siguiente:

kghostview1.png 
Kghostview se abrirá mostrando el archivo:
kghostview2.png 
En el menú Archivo elegimos la opción Imprimir
 
kghostview3a.png
También podíamos haber pulsado el botón de Imprimir
kghostview3b.png
Vamos a imprimir primero las páginas impares, y lo hacemos prestando atención a los controles marcados.
kghostview4.png 
Cuando se hayan terminado de imprimir las páginas impares, volvemos a poner el taco en la impresora, de modo que ahora se pueda imprimir en las caras que están en blanco.

Ahora se imprimen las páginas pares, prestando atención a los controles marcados (observa que imprimimos en orden inverso).
kghostview5.png 
Al terminar de imprimirse las páginas pares, se habrá terminado completamente de imprimir el archivo.

El procedimiento expuesto es válido para todas las partes individuales del curso, pero si quieres imprimir así el archivo con el libro completo, te aconsejo que las páginas pares las vayas imprimiendo en tacos de 10 o 20, para evitar problemas si se atasca la impresora.

Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: formularios de etiquetas y frames.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Formulario - label
Una última etiqueta relacionada con los formularios es la label.
Hasta este momento siempre que queríamos disponer un mensaje antes o después de un control de formulario lo escribiamos sin más.
Existe en HTML un elemento que permite asociar un texto con un control de formulario. Esto será muy útil si se accede desde un navegador no gráfico o una persona ciega que utiliza un programa que lee en voz alta el contenido de la página.
Veamos como lo hacíamos hasta ahora:
Ingrese su nombre:
<input type="text" name="nombre" size="20">

Utilizando el elemento label podemos hacer una referencia entre el texto y el control de entrada de datos:

<label for="nombre">Ingrese su nombre:</label>
<input type="text" name="nombre" size="20" id="nombre">

Veamos que hemos agregado:

  • Hemos definido la propiedad id a la marca input.
  • El elemento label tiene su marca de comienzo y fin, entre medio se dispone el texto a mostrar.
  • Para vincular esta label con el elemento input debemos inicializar la propiedad for con el nombre asignado a la propiedad id del elemento input. Más adelante veremos que la propiedad id la pueden tener todos los elementos HTML y es de vital importancia para CSS (Hojas de Estilo) y JavaScript
Confeccionemos un ejemplo completo:

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<fieldset>
<legend>Formulario de comentarios.</legend>
<label for="nombre">Ingrese su nombre:</label>
<input type="text" name="nombre" size="30" id="nombre"><br>
<label for="mail">Ingrese su mail:</label>
<input type="text" name="mail" size="50" id="mail"><br>
<label for="comentarios">Comentarios:</label><br>
<textarea name="comentarios" rows="5" cols="60" 
id="comentarios"></textarea> 
<br>
<input type="submit" value="Enviar">
</fieldset>
</form>
</body>
</html>

Como podemos ver asociamos cada etiqueta con el correspondiente control de entrada de datos:
  • <label for="nombre">Ingrese su nombre:</label>
    <input type="text" name="nombre" size="30" id="nombre"><br>

  • <label for="mail">Ingrese su mail:</label>
    <input type="text" name="mail" size="50" id="mail"><br>

  • <label for="comentarios">Comentarios:</label><br>
    <textarea name="comentarios" rows="5" cols="60" 
    id="comentarios"></textarea> 
Normalmente las propiedades id y name de los controles de entrada de datos (input, textarea etc.) se les asigna el mismo nombre, de todos modos no es obligatorio.

La propiedad for de la label hace referencia al id del control y no al name, esto es importante si inicializamos con valores distintos el id y name de los controles.

Frames.
 
Con los frames se pueden mostrar más de un archivo HTML en la misma ventana del navegador.

Podemos hacer que los frames interactuen, por ejemplo al presionar un enlace en un frame podemos cargar una página en otro frame.

Solo se aconseja emplear frames cuando la situación lo amerita, hay que tener en cuenta que el uso de frame hace menos accesible el sitio y es mucho más dificil imprimir su contenido.

Veamos un ejemplo de implementar dos frames:

<html>
<head>
<title>prueba de frames</title>
</head>
<frameset cols="20%,80%">
<frame src="pagina2.html">
<frame src="pagina3.html">
<noframes>
<p>El navegador no soporta frames</p>
</noframes>
</frameset>
</html>

Esta página es la que define la ubicación de los frames dentro del navegador.

La cabecera tiene una sintaxis similar a todas las páginas que hemos visto, pero no existe el body, en su lugar encontramos el elemento frameset.

En este ejemplo dividimos la ventana del navegador en dos secciones que mostrarán una página HTML cada una, mediante la propiedad cols indicamos cuanto ocupará cada ventana en porcentaje:

<frameset cols="20%,80%">

En el interior del elemento frameset definimos las dos páginas HTML que deben mostrarse mediante el elemento frame.

El elemento frame tiene una propiedad llamada src (source que significa fuente) que la inicializamos con el nombre de la página a mostrar. Así definimos las dos páginas:

<frame src="pagina2.html">
<frame src="pagina3.html">

Otra elemento importante es el noframes donde indicamos un mensaje en el caso que el navegador no cuente con la capacidad de mostrar frames (podemos disponer enlaces a las páginas en forma individual)

<noframes>
<p>El navegador no soporta frames</p>
</noframes>

Finalmente cerramos el elemento frame y la página:

</frameset>
</html>

Las otras dos páginas son iguales a las que hemos venido haciendo:

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h2>Frame 1</h2>
</body>
</html>

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h2>Frame 2</h2>
</body>
</html>

Frames - Actualización de un frame a partir del enlace de otro frame.

Una actividad habitual con frames es disponer hipervínculos en uno de los frame y actualizar el contenido de otro frame.

Veamos con un ejemplo la sintaxis para actualizar un frame a partir del enlace de otro:

pagina1.html

<html>
<head>
<title>prueba de frames</title>
</head>
<frameset cols="20%,80%">
<frame src="pagina2.html">
<frame src="pagina3.html" name="ventanadinamica">
<noframes>
<p>El navegador no soporta frames</p>
</noframes>
</frameset>
</html>

Podemos observar que para el frame que queremos acceder posteriormente para modificar su contenido debemos inicializar la propiedad name:

<frame src="pagina3.html" name="ventanadinamica">

pagina2.html

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h2>Enlaces.</h2>
<ul>
<li><a href="pagina3.html" target="ventanadinamica">Enlace 
1</a></li>
<li><a href="pagina4.html" target="ventanadinamica">Enlace 
2</a></li>
</ul>
</body>
</html>

Este archivo es el frame de la izquierda, que contiene los hipervínculos a dos páginas. Para indicar que frame debe mostrar las páginas de estos hipervínculos agregamos la propiedad target inicializándola con el valor del name definido para el frame (en nuestro caso es "ventanadinamica")

Tengamos en cuenta que el frame de la derecha comienza mostrando el archivo pagina3.html y luego según que hipervínculo se seleccione mostrará el archivo: pagina3.html o pagina4.html

Los contenidos de los dos archivos pagina3.html y pagina4.html no tienen nada nuevo:

pagina3.html

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h1>Página A</h1> 
<h2>Este es el contenido de página del archivo:pagina3.html</h2>
</body>
</html> 

pagina4.html

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1> 
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: formularios de texto y password.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Formulario - text/password y maxlength
Los controles de tipo text y password pueden limitar la cantidad de caracteres que puede ingresar el usuario a partir de la propiedad maxlength.

Debemos asignarle un valor entero que indica hasta cuantos caracteres está permitido ingresar.

No hay que confundir el objetivo de la propiedad size con maxlength. Con la propiedad size solo indicamos la cantidad máxima de caracteres a mostrar dentro del control antes de hacer scroll de los datos.

Confeccionaremos un formulario que solicite el nombre de usuario y su clave y solo permitiremos ingresar nombres de usuarios de hasta 20 caracteres y claves de hasta 12.
<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
Ingrese su nombre: 
<input type="text" name="nombre" maxlength="20" 
size="20">
<br>
Ingrese su clave: 
<input type="password" name="clave" maxlength="12" 
size="12">
<br>
<input type="submit" value="enviar">
</form>
</body>
</html>

Cuando ejecute esta página no podremos cargar un nombre de usuario de más de 20 caracteres, el teclado se inhabilita cuando se han ingresado 20 caracteres en el primer control.

Formulario - text/password/textarea y readonly.

Otra propiedad que podemos asignarle a los controles que creamos con el elemento input y también el elemento textarea es readonly.

Si definimos la propiedad readonly a un control el mismo es de solo lectura y no podemos modificar su contenido. Esta propiedad tiene uso cuando mediante un lenguaje de script (generalmente javascript) modificamos el control cambiandolo de estado ante ciertos eventos.

Cuando un control tiene la propiedad readonly el control toma foco pero no se puede cambiar su contenido. La diferencia con la propiedad disabled es que con esta no toma foco el control y generalmente aparece con un color que indica que el control está deshabilitado.

Confeccionemos un formulario que aparezca el nombre de una empresa en un text y el texto de un contrato en un textarea, ambos de solo lectura.

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/htmlya/registrardatos.php" method="post">
Ingrese su nombre:
<input type="text" name="nombre" size="30" value="Interpolacion" 
readonly><br>
Contrato:<br>
<textarea name="comentarios" rows="5" cols="60" readonly>
Por la presente ..............................
</textarea> 
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Formulario - Envío de datos mediante mail.
 
Hasta ahora siempre configuramos la propiedad action de la marca <form> con el nombre de un archivo que procesa los datos en el servidor:

<form action="/registrardatos.php" method="post"> 

Para poder resolver esto debemos conocer el lenguaje PHP o algún otro lenguaje de servidor.

Conociendo solo HTML la solución es enviar los datos mediante el programa cliente de mail que esté configurado en la computadora. Para esto inicializamos la propiedad action de la siguiente forma:

<form action="mailto:pizzasya@htmlya.com" method="post" 
enctype="text/plain"> 

Es decir inicializamos la propiedad action con el texto mailto seguido de dos puntos y la dirección de mail a la que queremos enviar los datos del formulario, recordemos siempre que utilizamos mailto el emisor del mail depende como esté configurado nuestro software de mail en nuestra computadora.

Además inicializamos la propiedad enctype con el valor "text/plain" con lo que le indicamos que se trata de un archivo de texto plano. Tengamos en cuenta que no podemos enviar archivos adjuntos.

Para probar esta funcionalidad confeccionaremos una página que permita hacer un reclamo de reparaciones y se envíen los datos a una dirección de correo.

Se debe poder ingresar el nombre, dirección y un comentario del problema.

La página HTML es:

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<h2>Reclamos</h2>
<form action="mailto:reclamos@gmail.com" method="post" 
enctype="text/plain">
Ingrese su nombre: 
<input type="text" name="nombre" size="20">
<br>
Ingrese su dirección: 
<input type="text" name="dirección" size="30">
<br>
Informe del problema:
<br>
<textarea rows="5" cols="40" name="problema"></textarea>
<br>
<input type="submit" value="enviar">
</form>
</body>
</html>

Debe llegar a la casilla de correos reclamos@gmail.com un mail con el contenido de los datos cargados en el formulario. El mail contiene el nombre del control y el contenido ingresado por el operador.

Si queremos que el correo llegue con un título debemos inicializar subject:

<form action="mailto:reclamos@gmail.com?subject=pedido de reparación" 
method="post" enctype="text/plain">

Con esto logramos ubicar perfectamente todos los mail que llegan a nuestra casilla de correos reclamos@gmail.com

La desventaja del envío de datos mediante mail es que la persona no puede hacer el envío del formulario desde una máquina ubicada en un ciberbar donde muy posiblemente no nos dejen configurar un cliente de mail.
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog: