octubre 17, 2017

Selecciones GIMP - Selección difusa

Selecciones GIMP - Selección difusa




Fuente: https://youtu.be/j8VFEX02DHw

octubre 16, 2017

Introducción a GitLab

Qué es GitLab, qué le diferencia de sus competidores como GitHub o Bitbucket y qué herramientas engloba, además de los repositorios remotos Git, para gestionar los proyectos de desarrollo.
GitLab nació como un sistema de alojamiento de repositorios Git, es decir, un hosting para proyectos gestionados por el sistema de versiones Git. Sin embargo, alrededor de esta herramienta han surgido muchas otras herramientas muy interesantes para programadores y equipos de desarrollo, que envuelven todo el flujo del desarrollo y el despliegue de aplicaciones, test, etc.
Sin duda, para dar una idea de lo que es GitLab, lo más rápido sería compararlo con uno de sus competidores, GitHub, pues éste último es especialmente conocido en el mundo del desarrollo de software. Todos más o menos estamos familiarizados con lo que ofrece, la gestión de repositorios, las issues, los pull request, GitHub Pages, etc. GitLab sería algo muy similar a lo que encontramos en GitHub, aunque a veces con otros nombres. Otras alternativas de programas o servicios para Git como Bitbucket están muy por detrás en posibilidades.
Aunque GitHub es un mounstruo, en cuanto a número de repositorios y funcionalidad, GitLab ha conseguido llegar aún más lejos, ofreciendo un conjunto más amplio de servicios que harán las delicias no solo de desarrolladores, sino también de devops.

Instalar en tu servidor o usarlo como servicio web

La principal diferencia entre GitLab y sus competidores es que GitLab se ofrece como un software libre que puedes descargar e instalar en cualquier servidor. Esta posibilidad permite usar GitLab para una empresa, profesional u organización en sus propios servidores, sin ningún coste adicional.
Nota: Obviamente, si instalas tu propio GitLab para usarlo en tu propia empresa, te obliga a mantener el servidor, configurarlo, actualizar el software, etc. Trabajo que no deja de representar un gasto de tiempo, lo que al final se traduce en dinero. Es el motivo por lo que muchas empresas prefieren acabar pagando para disfrutar de GitLab como servicio.
La otra alternativa es usar GitLab directamente de GitLab.com, pagando por el servicio. Esto permite disponer de todo el poder de GitLab y sus herramientas colindantes, sin invertir tiempo en configuración, aprovechando sus ventajas desde el primer minuto. Además, las versiones del servicio "en la nube" tienen muchas herramientas adicionales, funcionalidades que superan con diferencia a la versión que se ofrece para instalar como software libre.
Por último, GitLab también se ofrece sin coste para publicar repositorios de software libre, igual que su competidor GitHub. En este caso, aunque GitLab pueda disponer de algunos servicios extra que justifiquen trabajar con la herramienta, lo cierto es que GitHub sigue siendo el sitio preferido donde ubicar un proyecto, dado que diversos sistemas de gestión de dependencias, como npm, Composer, etc., trabajan directamente contra ellos.
Nota: Para quien desee aprovechar las ventajas de GitLab en un proyecto publicado en GitHub existe la posibilidad de hacer un espejo del repositorio. GitLab, cada vez que el repo se actualiza en GitHub es capaz de traerse los cambios. Los desarrolladores desde GitLab, con el repositorio siempre actualizado, pueden realizar uso de los servicios extra, como los procesos de integración continua o despliege continuo.
En resumen, si queremos usar GitLab gratis, para alojar en remoto un repositorio Git en general, la mejor alternativa es que lo instalemos gratuitamente en una de nuestras máquinas. Sin embargo, si queremos ahorrarnos tiempo y no nos importa pagar un poco, la versión en la nube está mucho más completa y nos permite olvidarnos del servicio y concentrarnos en el desarrollo de nuestros programas.

Cómo usar GitLab

GitLab es una herramienta basada en Git, que usas de la misma manera que cualquier otra herramienta similar. Generalmente usas Git a través de la línea de comandos, o a través de programas de interfaz gráfica, o del propio editor de código. Toda esa operativa que ya conoces y que hemos explicado en el Manual de Git, no cambia.
Además del hosting remoto para repositorios GitLab ofrece una interfaz web para controlar el repositorio y muchas otras herramientas. Ofrece la posibilidad de examinar el código en cualquiera de sus versiones, realizar acciones relacionadas con el sistema de repositorios como mergear el código de versiones de proyecto o gestionar las "pull request" (que en GitLab se llaman "merge request"), gestionar problemática de tu software diversa, automatizar procesos como el despliegue o la ejecución de pruebas del software, etc. Toda esta operativa la realizas, o configuras, en GitLab por medio de una web.
Por tanto, para usar GitLab simplemente necesitas las mismas herramientas que ya utilizas en tu día a día, el terminal o un programa de interfaz gráfica para gestionar tu repositorio, así como el navegador web para acceder a el ecosistema de herramientas disponible en el sitio de GitLab. Por supuesto, todas estas herramientas las puedes usar desde cualquier ordenador conectado a Internet, independientemente de su sistema operativo.
Nota: ya, si nos referimos a cómo usar nuestra propia instalación de GitLab, y qué necesitamos para instalar el software libre en nuestros propios servidores, la respuesta es que lo más normal es que instales GitLab en un servidor Linux, ya que es su entorno natural. Generalmente instalar GitLab es tan sencillo como instalar cualquier otro software en Linux, solo que necesitarás configurar además una serie de programas adicionales, que usa GitLab por debajo, para que el servicio funcione de manera fina. Esta parte puede que no sea tan fácil para una persona que no tenga conocimientos sólidos de administración de sistemas.

Funcionalidades de GitLab

En GitLab podemos gestionar principalmente proyectos, Grupos y Sinppets. Los proyectos son los protagonistas del sistema, básicamente repositorios de software gestionados por GitLab y todo el ecosistema GitLab. Los grupos son básicamente empresas y usuarios. Los snippets por su parte son como pedazos de código que puedes dejar para hacer cualquier cosa.
Como decimos, dentro de los proyectos es donde se aglutinan la mayoría de las funcionalidades que vamos a resumir:

Overview:

Es un listado de todo el proyecto, los archivos, los README.md. Es parecido a lo que vemos cuando accedemos a un proyecto con GitHub. Te da el resumen del repositorio, archivos, commits, etc.
Luego tiene dos subsecciones: En Activity del proyecto te ofrece toda la actividad, de una manera estadística. En Cycle Analytics además te ofrece algo muy novedoso, no disponible en otras herramientas. Básicamente informa el tiempo que se tarda en realizar una funcionalidad, desde que tienes la idea hasta que se incorpora al software, de modo que cualquier persona, incluso sin conocimientos de programación, puede saber el tiempo que ocupó el hacer las tareas. Una información muy valiosa que puede ayudar a futuro a estimar mejor el tiempo de trabajo necesario para nuevas funcionalidades. Obviamente, cuantas más issues tengas en el sistema, más datos tendrás para saber el tiempo que necesitas para las próximas tareas.

Repository:

Dentro de la sección "Repository" tenemos varias opciones diversas que afectan al repositorio del proyecto.
Tenemos "Files", donde se puede navegar por los directorios y archivos, cuyo código podemos ver, e incluso editar los ficheros. Está disponible una visualización por ramas y dispone de utilidades diversas para poder hacer cosas relacionadas con el repositorio remoto, ahorrando la necesidad de lanzar comandos. Tiene un buscador de archivos muy potente.
En "Commits" encontramos un listado de todos los commits realizados contra el repositorio, junto con datos específicos de cada uno de ellos.
Las ramas "Branches" sirven para ver las ramas que tenemos en el repositorio.
La siguiente sección, "Tags", es importante también, pues es el mecanismo disponible en Git para definir puntos del estado del código, correspondientes a cada release.
Además esta sección tiene otras áreas también importantes, que os dejamos para vuestra propia investigación. Especialmente sería destacable la parte de "Locked files", disponible solo en GitLab como servicio, que es algo que no ofrece el propio sistema de control de versiones Git pero que han implementado dentro de GitLab, que permite bloquear un fichero para que solo ciertas personas lo puedan editar.

Issues:

Este es otra de las grandes utilidades de GitLab, que permite definir cualquier problema que se detecta en el software y darle seguimiento. Seguro que las conocemos porque es una de las partes fundamentales de GitHub y habremos navegado por ellas en decenas de ocasiones.
Básicamente nos permite ver las issues generadas en un proyecto, mantener discusiones sobre ellas, y controlar los flujos de trabajo para su resolución, permitiendo definir las personas que deben resolverla, el tiempo estimado y el usado, la fecha límite, el peso de las tareas, etc.
En GitLab han publicado otra interesante innovación que es un tablero de issues (Issue Boards), que permite visualizar las tareas, de una manera similar a los boards de Trello. Como gestores somos capaces de definir los tableros y las etiquetas. GitLab, por medio de la gestión de las Issues, es capaz actualizar el estado de las tareas, permitiendo visualizar su evolución por medio de los tableros.
Otra cosa muy interesante es el "Service desk", que te ofrece un email que lo puedes proporcionar al cliente. Sin que el cliente se registre en GitLab, ni tenga acceso al proyecto, puede enviar mensajes a ese email, adjuntando texto, imágenes y archivos. GitLab, al recibir el correo, da de alta automáticamente una issue con ese contenido.

Merge Request:

Son como las Pull Request de GitHub. Te permiten controlar todas las solicitudes de combinación o unión de código de distintas ramas o forks. Es muy importante que los merges se resuelvan mediante la interfaz gráfica, ya que nos ofrece muchas posibilidades interesantes, como automatización de tests, la posibilidad de revisión de los cambios por parte de componentes del equipo, implementar diversas políticas de control sobre el código del proyecto, etc.

CI/CD:

Es una de las maravillas que dispone GitLab, una herramienta sencilla y muy útil para los procesos de integración continua y despliegue continuo. Existen muchas herramientas que se pueden integrar para automatizar los procesos y llegar a crear flujos de trabajo completamente automatizados. De modo que se lancen los test y si todo va bien se puedan realizar una serie de tareas definida, que pueden llegar a producir el despliegue automático de las aplicaciones.
Solo disponer de esta sección es suficiente motivo para pasarse a GitLab. No llega la complejidad de herramientas específicas como Jenkins, pero resuelve de manera muy potente problemas similares.

GitLab es mucho más

Gitlab no se queda aquí, existen decenas de herramientas para hacer un montón de procesos, plugins, integraciones con diversos servicios útiles en el día a día de los equipos de desarrollo, etc.
Tenemos un vídeo en el que explicamos con mucho más detalle todas las posibilidades de GitLab y lo comparamos con otros sistemas similares.


Puedes dar una vuelta por GitLab y examinar las opciones y posibilidades. Al ritmo que van, seguro que cuando entres habrán sacado novedades representativas. Pero si quieres que te guiemos en esa visita, puedes consultar el siguiente vídeo. También encontrarás en este vídeo un resumen de lo que se denomina el "GitLab Flow", un conjunto de prácticas que son aconsejables para mantener un flujo adecuado en todo lo que sería el desarrollo de software, que nos asegure la calidad y facilidad de mantenimiento y trabajo en equipo.



Fuente: https://desarrolloweb.com/articulos/introduccion-gitlab.html

septiembre 29, 2017

Error en Youtube: El propietario del vídeo ha inhabilitado su reproducción en otros sitios web

En youtube

Ve al Gestor de Vídeos.
Ve al vídeo en el que quieras activar la inserción y haz clic en Editar.
Debajo del vídeo, haz clic en Configuración avanzada.
En "Opciones de distribución", marca la casilla Permitir inserción.
Haz clic en Guardar cambios.

Fuente: https://productforums.google.com/forum/#!msg/youtube-es/4eivofuWoek/sWqf9WhUFQAJ

septiembre 26, 2017

CmapTools

CmapTools



Ejemplo de mapa mental usando IHMC CmapTools.

https://en.wikipedia.org/wiki/CmapTools
https://cmap.ihmc.us/

Crear y usar selecciones con GIMP

Mover una selección

Las selecciones rectangular y elíptica tienen dos modos. El modo predeterminado tiene dos tiradores en la selección. Si pulsa sobre la selección o presiona la tecla Intro, los tiradores desaparecen dejando solo el contorno punteado (desfile de hormigas). Las otras herramientas de selección tienen un comportamiento diferente.

Mover selecciones rectangular y elíptica

Si pulsa y arrastra una selección con los tiradores, mueve el contorno de la selección, y no mueve los contenidos de las selecciones rectangular y elíptica.
Seleccione la herramienta mover y ajuste las opciones para mover la selección; la herramienta soporta mover la selección, la ruta o la capa.

Figura Mover el contorno de la selección
Mover el contorno de la selección

La mayoría de los sistemas soportan mover la selección mediante las teclas de dirección. El comportamiento preciso depende del sistema. Si las teclas de dirección no provocan que la selección se mueva, inténtelo enfocando la selección con el cursor del ratón primero. Pulse y mantenga Alt (o Ctrl+Alt, Mayús+Alt, o Alt). Una combinación debe mover la selección en un píxel, y otra en 25 píxeles en cada paso. Enfocar el tirador de un lado o de una esquina con el cursor del ratón, y las teclas de dirección y las combinaciones pueden cambiar el tamaño de la selección.
Si pulsa y arrastra la selección sin los tiradores, crea una selección nueva. Para mover los contenidos de la selección, tiene que
  • mantener pulsadas las teclas Ctrl+Alt y pulsar y arrastrar la selección. Esto vacía el lugar original. Se crea una selección flotante. Los comandos de teclas requeridos pueden variar en su sistema, mire la barra de estado para ver si se especifica otra combinación; por ejemplo, Mayús+Ctrl+Alt.

    Figura 7.6. Mover una selección y su contenido, vaciando el lugar original
    Mover una selección y su contenido, vaciando el lugar original
  • mantenga pulsadas las teclas Mayús+Alt y pulse y arrastre la selección para moverla sin vaciar el lugar original. Se crea una selección flotante.

    Figura Mover una selección y su contenido, sin vaciar el lugar original
    Mover una selección y su contenido, sin vaciar el lugar original
[Nota] Nota
En algunos sistemas, debe pulsar Alt antes de Mayús o Ctrl. En estos sitemas, presionando Mayús o Ctrl primero, provoca que GIMP entre en un modo que añade o sustrae de la selección activa; después de eso, la tecla Alt no es efectiva.

Mover las otras selecciones

Las otras selecciones (lazo, varita mágica, por color) no tienen tirador. Pulsar y arrastrarlas no las mueve. Para mover sus contenidos, como con las selecciones rectangular y elíptica, tiene que mantener pulsadas las teclas Ctrl+Alt o Mayús+Alt y pulse y arrastre.
Si usa las teclas de dirección del teclado en lugar de pulsar y arrastrar, mueve el contorno.

Otro método

[Nota] Nota
También puede usar método más indirecto para mover una selección. Puede hacerla flotante. Entonces puede mover su contenido, vaciando el origen, mediante pulsar y arrastrar o las teclas de dirección del teclado. Para moverla sin vaciar, use copiar y pegar.



Fuente: https://docs.gimp.org/es/gimp-using-selections.html

septiembre 07, 2017

Redimensionar una imagen con el GIMP.

Redimensionar una imagen con el GIMP.



Como quitar el fondo blanco de las imagenes con el GIMP

En este video le enseñamos a quitar el fondo blanco con GIMP.



GIMP

GIMP (GNU Image Manipulation Program) es un programa de edición de imágenes digitales en forma de mapa de bits, tanto dibujos como fotografías. Es un programa libre y gratuito. Forma parte del proyecto GNU y está disponible bajo la Licencia pública general de GNU y GNU Lesser General Public License.

Es el programa de manipulación de gráficos disponible en más sistemas operativos (Unix, GNU/Linux, FreeBSD, Solaris, Microsoft Windows y Mac OS X, entre otros).

7zip

Una alternativa de WinRar es 7zip.

http://www.7-zip.org/

Te permite comprimir y restaurar archivos .rar

Es gratuito.

septiembre 05, 2017

Insertar una imagen en WORD desde internet


Insertar una imagen en WORD desde internet



https://youtu.be/WI43t_jvwVM

OCR on line

www.free-ocr.com

Error MAIL/EXPN/VRFY/ETRN en sendmail y 0x80042108 en Outlook 2016


Tuve un error al intentar configurar mi correo POP o IMAP en Outlook 2016 con sendmail. La única pista que me daba era un error en sendmail que decia: MAIL/EXPN/VRFY/ETRN

Después de varios intentos, reiniciarla varias veces por fin me dio otro error: 0x80042108








Este error estaba mejor documentado y se arreglo como sigue:

Haga clic en Inicio.
Haga clic en Ejecutar.
Escriba outlook.exe /safe.
Haga clic en Aceptar.


Para probar su perfil de correo electrónico funcione correctamente, intente crear un nuevo perfil de correo electrónico. Si puede enviar y recibir mensajes de correo electrónico mediante el perfil recién creado, debe configurar el nuevo perfil de Outlook como el predeterminado.

Paso 1: Busque el archivo de datos predeterminado de Outlook

  1. En el Panel de Control, haga clic en Correo.
  2. En el cuadro de diálogo Configuración de correo - Outlook, haga clic en Mostrar perfiles.

    Captura de pantalla de este paso.
  3. Seleccione su perfil actual de Outlook y, a continuación, haga clic en Propiedades.

    Captura de pantalla de este paso.
  4. En el cuadro de diálogo Configuración de correo - Outlook, haga clic en Archivos de datos.

    Captura de pantalla de este paso.
  5. Seleccione la pestaña Archivos de datos en el cuadro de diálogo Configuración de la cuenta y, a continuación, anote el nombre y la ubicación del archivo de datos predeterminado correspondiente a su perfil. (Una marca de verificación indica el archivo de datos predeterminado).

    Captura de pantalla de este paso.
  6. Haga clic en Cerrar.

Paso 2: Cree un nuevo perfil de Outlook

Ahora que conoce el nombre y la ubicación del archivo de datos predeterminado de su perfil, utilice solouno de estos métodos para crear un nuevo perfil de Outlook.

Vídeo: Cómo conectar Outlook a su cuenta de correo electrónico personal (el vídeo está en inglés)

Método A: Utilizar la configuración automática de la cuenta para crear una cuenta de correo electrónico IMAP o POP3.
Importante De forma predeterminada, la configuración automática de la cuenta creará una cuenta IMAP si su servidor de correo electrónico admite IMAP y POP3. Para crear una cuenta POP3, tendrá que seguir los pasos manuales. Sin embargo, si su servidor de correo electrónico admite solo POP3, la configuración automática de la cuenta creará una cuenta POP3.
  1. Abra el Panel de control y haga clic en Correo.
  2. En el cuadro de diálogo Configuración de correo - Outlook, haga clic en Mostrar perfiles.

    Captura de pantalla de este paso.
  3. En la pestaña General del cuadro de diálogo Correo, haga clic en Agregar.

    Captura de pantalla de este paso.
  4. En el cuadro de diálogo Nuevo perfil, escriba un nombre para el nuevo perfil y haga clic en Aceptar.
  5. En el cuadro de diálogo Agregar nueva cuenta, escriba la información de la cuenta de correo electrónico y, a continuación, haga clic en Siguiente.

    Captura de pantalla de este paso.
  6. Cuando la cuenta se haya configurado correctamente, haga clic en Finalizar.
Método B: Crear manualmente una cuenta de correo electrónico POP3 o IMAP
  1. Abra el Panel de control y haga clic en Correo.
  2. En el cuadro de diálogo Configuración de correo - Outlook, haga clic en Mostrar perfiles.

    Captura de pantalla de este paso.
  3. En la pestaña General del cuadro de diálogo Correo, haga clic en Agregar.

    Captura de pantalla de este paso.
  4. En el cuadro de diálogo Nuevo perfil, escriba un nombre para el nuevo perfil y haga clic en Aceptar.
  5. En el cuadro de diálogo Agregar nueva cuenta, seleccione Configurar manualmente las opciones del servidor o tipos de servidores adicionales y, a continuación, haga clic en Siguiente.

    Captura de pantalla de este paso.
  6. En el cuadro de diálogo Elegir servicio, seleccione Correo electrónico de Internet y, a continuación, haga clic en Siguiente.

    Captura de pantalla de este paso.
  7. En el cuadro de diálogo Configuración de correo electrónico de Internet, escriba los detalles de la cuenta.
  8. Haga clic en Probar configuración de la cuenta para probar la cuenta.

    Nota
    : póngase en contacto con su proveedor de servicios de Internet si no conoce con certeza los detalles de la cuenta.
  9. Seleccione Archivo de datos de Outlook existente y, a continuación, haga clic en Examinar.

    Captura de pantalla de este paso.
  10. En el cuadro de diálogo Abrir archivo de datos de Outlook, vaya al archivo de datos de Outlook que encontró anteriormente y selecciónelo. A continuación, haga clic en Aceptar.
  11. Haga clic en Siguiente.
  12. En el cuadro de diálogo Probar configuración de la cuenta, haga clic en Cerrar.
  13. Haga clic en Finalizar.

Paso 3: Configure su nuevo perfil de Outlook como el perfil predeterminado

Si el nuevo perfil de correo electrónico de Outlook funciona correctamente, establézcalo como el perfil predeterminado y, a continuación, mueva sus mensajes de correo electrónico a este nuevo perfil.
  1. En la pestaña General del cuadro de diálogo Correo, seleccione Usar siempre este perfil.
  2. Haga clic en la lista desplegable en Usar siempre este perfil y, a continuación, seleccione el nuevo perfil.
  3. Haga clic en Aceptar para cerrar el cuadro de diálogo Correo.
  4. Utilice el Asistente para importar y exportar sus mensajes de correo electrónico a un archivo de datos de Outlook (.pst) desde su perfil de correo electrónico antiguo de Outlook y, a continuación, importe el archivo de datos de Outlook (.pst) a su nuevo perfil de correo electrónico de Outlook.

    Nota
    : si no está familiarizado con la característica de importación y exportación de Outlook, consulte los siguientes artículos:
     

agosto 17, 2017

Cómo enviar un formulario por e-mail usando PHP

Cuando estamos trabajando en un sitio web, muchas veces existe la necesidad de proveer al usuario con un formulario de contacto para hacernos llegar sus consultas, comentarios u otro tipo de información. 

En este truco te mostramos un ejemplo de cómo hacer un formulario usando HTML para crearlo y PHP para procesarlo y enviarlo por e-mail. 


El formulario

Se trata de un fragmento de código HTML que usando el TAG <form> nos permite crear el formulario de entrada de datos a ser completado por el usuario: 

formulario.html 

<form name="frmContacto" method="post" action="sendbymail.php">
<table width="500px">
<tr>
<td>
<label for="first_name">Nombre: *</label>
</td>
<td>
<input type="text" name="first_name" maxlength="50" size="25">
</td>
</tr>
<tr>
<td valign="top"">
<label for="last_name">Apellido: *</label>
</td>
<td>
<input type="text" name="last_name" maxlength="50" size="25">
</td>
</tr>
<tr>
<td>
<label for="email">Dirección de E-mail: *</label>
</td>
<td>
<input type="text" name="email" maxlength="80" size="35">
</td>
</tr>
<tr>
<td>
<label for="telephone">Número de teléfono:</label>
</td>
<td>
<input type="text" name="telephone" maxlength="25" size="15">
</td>
</tr>
<tr>
<td>
<label for="comments">Comentarios: *</label>
</td>
<td>
<textarea name="comments" maxlength="500" cols="30" rows="5"></textarea>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:right">
<input type="submit" value="Enviar">
</td>
</tr>
</table>
</form>

El script PHP

La otra parte de código a escribir será entonces la encargada de tomar los datos del formulario anterior, validarlos y si todo está bien, enviar el formulario por correo electrónico a una dirección de destino determinada en el código. 

Veamos este ejemplo: 

sendbymail.php 

<?php
if(isset($_POST['email'])) {

// Debes editar las próximas dos líneas de código de acuerdo con tus preferencias
$email_to = "destinatario@sudominio.com";
$email_subject = "Contacto desde el sitio web";

// Aquí se deberían validar los datos ingresados por el usuario
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {

echo "<b>Ocurrió un error y el formulario no ha sido enviado. </b><br />";
echo "Por favor, vuelva atrás y verifique la información ingresada<br />";
die();
}

$email_message = "Detalles del formulario de contacto:\n\n";
$email_message .= "Nombre: " . $_POST['first_name'] . "\n";
$email_message .= "Apellido: " . $_POST['last_name'] . "\n";
$email_message .= "E-mail: " . $_POST['email'] . "\n";
$email_message .= "Teléfono: " . $_POST['telephone'] . "\n";
$email_message .= "Comentarios: " . $_POST['comments'] . "\n\n";


// Ahora se envía el e-mail usando la función mail() de PHP
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);

echo "¡El formulario se ha enviado con éxito!";
}
?>


Fuente: http://es.ccm.net/faq/10887-como-enviar-un-formulario-por-e-mail-usando-php

Google reCAPTCHA tutorial

Para comprobar si es un humano quien manda un formulario esto me sirvió:

Google has announced new service to prevent spams and attacks to your website. They name it “NO CAPTCHA reCAPTCHA” . Google reCAPTCHA is designed to protect your website from spams and abuse.
In this tutorial i am going to show you how to integrate it into your website. For demo purpose i made one simple script. Please look at the demo.
LIVE DEMODOWNLOAD

Register your website and get Secret Key.

Very first thing you need to do is register your website on Google recaptcha to do that click here.
Login to your Google account and submit the form.
capcha1
Once submit, Google will provide you following two information.
  • Site key
  • Secret key

Integrate Google reCAPTCHA in your website.

To integrate it into your website you need to put it in client side as well as in Server side. In client HTML page you need to integrate this line before <HEAD> tag.
<script src='https://www.google.com/recaptcha/api.js'></script>
And to show the widget into your form you need to put this below contact form, comment form etc.
<div class="g-recaptcha" data-sitekey="== Your site Key =="></div>
When the form get submit to Server, this script will send ‘g-recaptcha-response’ as a POST data. You need to verify it in order to see whether user has checked the Captcha or not.

Sample project

Here is the HTML code for the simple form with comment box and submit button. On submit of this form we will use PHP in back-end to do the Google reCAPTCHA validation.
Index.html
<html>
  <head>
    <title>Google recapcha demo - Codeforgeek</title>
    <script src='https://www.google.com/recaptcha/api.js'></script>
  </head>
  <body>
    <h1>Google reCAPTHA Demo</h1>
    <form id="comment_form" action="form.php" method="post">
      <input type="email" placeholder="Type your email" size="40"><br><br>
      <textarea name="comment" rows="8" cols="39"></textarea><br><br>
      <input type="submit" name="submit" value="Post comment"><br><br>
      <div class="g-recaptcha" data-sitekey="=== Your site key ==="></div>
    </form>
  </body>
</html>
This will generate this form.
google recaptcha form
On server side i am using PHP for now. So on Form submit request we will check the POST variable.
form.php
<?php
        $email;$comment;$captcha;
        if(isset($_POST['email'])){
          $email=$_POST['email'];
        }if(isset($_POST['comment'])){
          $email=$_POST['comment'];
        }if(isset($_POST['g-recaptcha-response'])){
          $captcha=$_POST['g-recaptcha-response'];
        }
        if(!$captcha){
          echo '<h2>Please check the the captcha form.</h2>';
          exit;
        }
        $secretKey = "Put your secret key here";
        $ip = $_SERVER['REMOTE_ADDR'];
        $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
        $responseKeys = json_decode($response,true);
        if(intval($responseKeys["success"]) !== 1) {
          echo '<h2>You are spammer ! Get the @$%K out</h2>';
        } else {
          echo '<h2>Thanks for posting comment.</h2>';
        }
?>
try out the demo to see how it works.

Further reading:


Fuente: https://codeforgeek.com/2014/12/google-recaptcha-tutorial/
Se ha producido un error en este gadget.