Crear formularios de contacto (Matt’s Script Archive)

2

cocoHola chicos y chicas, hoy vamos a aprender a configurar el formulario de Matt (FormMail.pl). Ahora puede que esteis muy lejos de conseguirlo pero siguiendo con cuidado una serie de pasos estareis más cerca de conseguirlo.

Ayer fui al Matt’s Script Archive a por el FormMail para hacer unos formularios de contacto para Sekano Triops, Jardín Natural y Sekano Blogs. Ya lo instale en 2000 en alguna de mis viejas webs ahora medio muertas (BioFaciWeb) pero esta vez me ha resultado más complicado pues la seguridad ha aumentado debido a la avalancha spam que antes apenas era preocupante. Además todavía no me defiendo bien manejando solito un servidor en Linux.

El formulario de MattEste sencillo pero exitoso CGI fue escrito en Perl en 1997 y en su versión actual su tamaño sigue siendo muy reducido (28,9 KiB). Para configurarlo sólo hay que modificar un máximo de 4 valores.
(más…)

Share

ajax_p

Desarrollo Web: Envio asíncrono de formularios con Ajax

6

Para todo el que haya trabajado con formularios antes de la llegada de Ajax, sabrá que resulta bastante incomodo puesto que debemos crear la página HTML que contendrá al formulario, por otra parte el script PHP que lo procesa; y para terminar, si queremos confirmar al usuario que todo ha ido correctamente, tenemos que redirereccionar desde ese script a la misma página del formulario o a una tercera página donde le decimos al usuario que todo ha ido bien. En caso de fallo al procesar al formulario, había que volver al mismo (desde el script) enviando toda la información para no hacer que nuestro visitante tenga que volver a rellenar todo lo que ya ha hecho.

En definitiva, resultaba bastante laborioso e incómodo tener que hacer todo eso. Ensuciaba bastante el código y complicaba bastante la programación perdiendo demasiado tiempo en controlar todo eso.

Ahora con Ajax todo es bastante más cómodo. Primero, podemos validar el formulario directamente sin tener que redireccionar al usuario al script PHP para comprobarlo alli (aunque ya se podía hacer con javascript, con Ajax es todavía más cómodo).  Y a la hora de procesar/enviar el formulario, tenemos lo que se conoce como envío asíncrono de formularios, por lo que podemos hacer que el navegador envíe el formulario sin necesidad de recargar una nueva página. De esa manera podremos mostrar el resultado de dicho proceso directamente en la misma página del formulario sin necesidad de recargarla completamente.

Para explicar su funcionamiento, veamos un ejemplo utilizando jQuery como librería Ajax:

Suponemos que tenemos un formulario para el alta de clientes, por ejemplo:

El usuario debe rellenar los datos necesarios, pulsar en el botón Enviar y se dará de alta en la web. La idea es realizar todo el proceso utilizando el envío asíncrono con Ajax por lo que no habrá que recargarse ninguna página. Cuando el botón pulse enviar mostraremos un texto que indique que se está llevando a cabo la operación y acto seguido mostraremos la confirmación de que ésta ha finalizado. En caso de error se mostrará el mensaje oportuno de forma que el usuario tendrá ocasión de volverlo a intentar o de corregir los fallos que pudiera haber cometido (y que no hayan sido validados previamente). Como ventaja para el programador, no hemos tenido que tener en cuenta en el script PHP nada de todo esto, puesto que es Ajax quién procesa “en segundo plano” el script y permite que no haya que ir y volver del formulario al script PHP continuamente siempre que aparece algún error al ejecutar dicho script.

Simplemente deberíamos ver algo como esto (sin ninguna recarga de página de por medio):

Ahora vamos al código a ver que hay que hacer para que esto funcione:

En cuanto al código HTML del formulario, nada cambia. Lo codificaremos como hasta ahora lo haciamos sin utilizar el envío asíncrono, indicando cual será el script PHP que lo procesará y asignando un id al formulario. Además, incluiremos al final del formulario (debajo del cierre de la etiqueta form) el código HTML para dos capas (en principio vacias) que utilizaremos para mostrar mensajes al usuario sobre el proceso. Quedaría algo asi:
(más…)

Share

navegadores

Desarrollo Web: Cómo ser compatible con todos los navegadores (y con Internet Explorer)

7

Actualmente, y personalmente, es una de las cosas que menos me gustan a la hora de ponerme con alguna página web. Cada vez salen más navegadores, arreglan los fallos de los anteriores pero no todo el mundo se pasa a la última versión. Además, al disponer de diferentes “marcas”, la cosa se complica más porque coexisten al mismo tiempo varias versiones diferentes de diferentes “marcas” (Internet Explorer, Firefox, Opera, Safari,. . .).

Conclusión: Toca hacer una web y tiene que funcionar en Internet Explorer 7, 8 y 9, Firefox 3.X y 4.0 y Safari, como mínimo. Si nos queremos poner elegantes tendremos en cuenta a Opera y demás navegadores minoritarios. Si que es cierto que casi la totalidad de todos los elementos web no dan ningún problema. Pero siempre acabas encontrándote con una capa que se descoloca en Explorer 8 pero no en Firefox 4 y que si lo arreglas para Explorer 8 empieza a descolocarse en Firefox 4. Misión Imposible.

Pero hay una salida, se conoce como Condicional CSS. Básicamente consiste en indicarle al navegador que cargue una u otra hoja de estilo adicional en función de que navegador se esté utilizando. Asi, si el navegador es un Explorer 7 cargará una hoja de estilo diferente que si es un Firefox 4. Entonces, podremos aprovechar para arreglar esas pequeñas reglas CSS que producen distintos resultados y acertar siempre porque sólo se aplicará sobre un determinado navegador y versión. A la hora de la verdad es algo más sencillo, sólo es necesario hacer a parte, en una hoja de estilo, aquella regla que nos da problemas, una vez para cada navegador problemático. El navegado cargará la hoja de estilo principal con dicha regla y, posteriormente, cargará condicionalmente esa misma regla, sobreescribiendose su comportamiento y funcionando tal y como se indica en la hoja de estilo cargada de forma condicional, a modo de parche, dependiendo del navegador que está utilizando el visitante.

Por ejemplo, yo tengo una regla, conocida como celdad que me está dando problemas dependiendo de la versión de Explorer (7 y 8). He creado la hoja de estilo estilo.css que contiene el estilo de toda la web tal y como debería funcionar, y la definición completa de la regla, que pego a continuación (el resto del estilo no da ningún problema y lo omito):

span.celdad {
    float: right;
    width: 310px;
    height: 155px;
    padding-top: 10px;
    padding-bottom: 5px;
    padding-left: 20px;
    padding-right: 20px;
    margin-bottom: 10px;
    margin-right: 5px;
    font-weight: normal;
    color: #000000;
    text-align: justify;
    position: relative;
}

(más…)

Share

linux_hosting_india

Cómo elegir alojamiento web

0

Elegir alojamiento para tu sitio web hoy en día es una tarea bastante complicada. Hay muchas empresas que ofrecen diferentes planes de alojamiento a precios muy variados. A eso se une el desconocimiento en cuanto a qué empresas de todas esas me darán un buen servicio o por el contrario cuáles me van a dar problemas. Con el tiempo uno se acaba aprendiendo donde está la trampa de los planes de alojamiento más baratos o qué empresas no te van a dar problemas y todo aquello que sólo la experiencia (o mejor dicho, la mala experiencia) te va enseñando.

También es verdad que no es lo mismo buscar un alojamiento web para colgar una página web que he hecho para mi uso personal que si lo que quiero es subir una página que he desarrollado para algo más serio como puede ser algún negocio, de manera que necesitaré que el funcionamiento sea continuo y sin problemas. Además, será fácil que haya registrado un nombre de dominio y quiera tener una dirección de correo asociada al mismo. Asi, no me puedo permitir que mi alojamiento + dominio + correo falle y me quede sin página o sin correo en cualquier momento.

La primera pregunta es:

¿Puede ocurrir que contrate un alojamiento web y éste falle sin previo aviso y sin razón aparente?

Y la respuesta es: Por supuesto. La razón no está clara puesto que no podemos saber cómo funcionan internamente quienes te están dando ese alojamiento, pero si podemos suponer que explotan al máximo sus equipos y como resultado acaban ofreciendo un mal servicio a sus clientes. Hay que tener en cuenta que si exprimo demasiado un equipo, éste acabará fallando.

Entonces, ¿Qué alojamiento escojo?

Antes de responder a esa pregunta conviene conocer los tipos de alojamiento web que nos pueden ofrecer, las diferencias entre ellos y qué tipo de alojamiento nos están ofreciendo cuando no nos especifican cuál de ellos es.

Hosting compartido (Shared hosting)

El hosting compartido es el tipo de alojamiento web más barato puesto que se utiliza un equipo para alojar varios clientes. El equipo donde se almacena tu sitio web está siendo compartido por más clientes como tú. Asi, en función de cuantos clientes se asignen a un mismo equipo, el servicio podrá ser mejor o peor. Tú no vas a notar que otros clientes utilizan el mismo servidor para alojar sus sitios web. Sólo si el servicio no es bueno, o si tu sitio web necesita algo mejor, notarás que ese hosting compartido se te queda algo pequeño. ¿Cómo sabes que se te queda pequeño? Nunca será por tamaño, los discos duros son baratos y puedes conectar muchos de ellos a un mismo equipo. El mayor problema que tendrás es que tu sitio web se irá ralentizando. Con toda probabilidad se te habrán asignado unos recursos limitados (ancho de banda y potencia de procesador, sobre todo) insuficientes para hacer correr a tu sitio web. Hay que tener en cuenta que para lo que se paga, y dada la naturaleza de un hosting compartido, está hecho para pequeñas páginas personales o sitios con tráfico muy bajo. Si no es mi caso, deberé irme a otro plan, si es que no me lo han “propuesto” antes mis propios alojadores. Además, en este tipo de planes, al compartirse el equipo, hay que tener en cuenta que no tendré el control total del mismo. No puedo reiniciarlo cuando quiera, no puedo instalar software, no puedo configurar ciertos servicios y otras tantas cosas a las que no tendrás privilegios por el mero hecho de compartirlo con otros clientes.

(más…)

Share

¿Cómo interpretar las estadísticas de visitas de mi sitio web?

3

Es algo que últimamente está muy de moda. Primero, todo el mundo está obsesionado (yo incluído) por medir el tráfico de su web, saber cuánta gente le lee o visita, cuánta gente le encuentra en buscadores, cómo le encuentran sus visitantes, . . . Segundo, los que ya saben todo eso, porque tienen algún sistema (bueno) de medición, quieren saber cómo interpretar esos datos.

En Arkabytes, desde que pusimos en marcha el nuevo servidor, venimos utilizando AWStats como software para la medición del tráfico de todos los sitios web que alojamos. Es realmente bueno, es software libre, funciona muy bien y presenta la información en gráficos muy cómodos y fáciles de interpretar. No se le pasa una. Al fin y al cabo, lo que hace es aplicar un filtro sobre el propio fichero log del servidor Apache. No puede haber nada más infalible.

Tampoco voy a enumerar aquí todas las virtudes de AWStats, simplemente me centraré en citar y explicar los datos más significativos e interesantes a la hora de evaluar el tráfico web de un sitio.

(más…)

Share

icon_scam11

Scam en “facebok.com”

0

Para el que no lo sepa, el Scam (estafa), es un tipo de engaño muy de moda en los últimos años, utilizando el correco electrónico o la web. Básicamente se trata de engañar al usuario tentándolo con supuestos premios que le hacen picar en la trampa.

El último de ellos con el que me he topado personalmente esta misma tarde, está relacionado con facebook. Al parecer, si uno se equivoca al introducir la dirección, y escribe “facebok.com” (no pienso poner un enlace, sólo faltaba que le hiciera publicidad), aparece una página con el mismo estilo de facebook (no dice que lo sea) con la finalidad de confundir al visitante.

Al parecer el visitante ha sido seleccionado (aparentemente es un tipo afortunado pero siempre toca) para una encuesta anónima, muy corta y con premios exclusivos. La encuesta además acaba hoy mismo. Si por casualidad uno siente la tentación de probar a ver que pasa, verá que la encuesta es fácil y rápida (algo nunca visto). En 1 minuto está seleccionando su premio, pero un click más adelante se encuentra con esto:

(más…)

Share

Escribir con LaTeX

0

En este primer artículo solamente quiero presentar, para el que no lo conozca, al sistema de creación de textos, artículos, libros, . .. conocido como LaTeX.

Como supongo que todo el mundo conoce el Word o similares, nos podemos quedar con la idea de que el objetivo de un usuario de LaTeX es el mismo que el de un usuario de Word: escribir un documento de texto (e imágenes, gráficos o cualquier otro contenido que se le pueda añadir). Pero con una diferencia muy importante; Word es lo que se conoce como un editor WYSIWYG (What You See Is What You Get, “lo que ves es lo que obtienes”), refiriéndose al hecho de que el usuario va a obtener el documento tal y como lo ve en la pantalla en el mismo instante de editarlo y trabajar con él. En el caso de LaTeX es muy distinto, no existe una aplicación dedicada para su edición, sino que se compone de una serie de comandos y órdenes que acompañan al propio contenido, de forma que no es posible ver como va quedando el documento en el que uno trabaja mientras lo escribe. La idea de LaTeX es que el usuario no es un maquetador sino simplemente un escritor, de manera que el sistema LaTeX se va a encargar de colocar luego cada cosa en su sitio. Si uno quiere un salto de página simplemente tendrá que escribir la orden para el salto de página y no preocuparse de qué tal habrá quedado o si la foto que venía luego me cabía o no en la siguiente página. LaTeX se encarga de eso, y lo hace muy bien. Además, permite generar el documento en diferentes formatos, como PDF, HTML, RTF, PS, . . . sin necesidad de reescribir una sola línea, partiendo del mismo fuente.

Actualmente LaTeX está muy extendido como sistema para escribir artículos y libros científicos, normalmente en ámbitos algo relacionados con la informática, puesto que precisa de ciertos conocimientos para lograr escribir y compilar el documento final. Puede que alguno conozca DocBook, también muy extendido y con misma filosofía de trabajo. Yo empecé utilizando el segundo pero en cuanto conocí LaTeX me cambié. En DocBook se trabaja con un formato de etiquetas al estilo HTML que me resultaba algo incómodo. Además, LaTeX resulta bastante más potente y elegante que el primero.

(más…)

Share

Cómo reparar un ordenador

0

Un toque de humor, vía theoatmeal, sobre cómo debe repararse un equipo en función de que Sistema Operativo viene instalado en él, Windows, MacOS o Linux. Pincha en la imagen para agrandarla y leerlo.

Real como la vida misma.

Share

linux_hosting_india

Protegernos frente a los ataques por SSH

0

Realmente impresiona la cantidad de veces que se intenta acceder, de manera fraudulenta, al servidor de Arkabytes. Todas ellas, por supuesto, sin éxito. Pero no me quiero imaginar como tiene que ser en servidores con mucho más tráfico que este.

Ahora estamos usando webmin como aplicación web para gestionar algunos de los aspectos del servidor, y la verdad es que resulta bastante cómodo. No es tan completa y complicada como Plesk o las demás existentes en el mercado, pero es software libre y la verdad es que no da ningún problema. Ya nos tocó sufrir a Plesk una temporada y no daba más que problemas. Era muy cómodo crear un dominio pero lo incómodo era ver como de pronto dejaba de funcionar su correo y habia que estar continuamente reiniciandolo.

Pero bueno, a lo que vamos. Utilizando webmin es bastante fácil acceder a los ficheros log del sistema para echar un vistazo, de vez en cuando, que es lo que pasa por la máquina. Y una de las cosas con las que más me encuentro cualquier dia son intentos de accesos no permitidos, como estos:

Mar 27 23:29:15 arkabytes sshd[11868]: User root from 79.137.215.70 not allowed because not listed in AllowUsers
Mar 27 23:29:15 arkabytes sshd[11868]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=79.137.215.70  user=root
Mar 27 23:29:17 arkabytes sshd[11868]: Failed password for invalid user root from 79.137.215.70 port 55159 ssh2
Mar 27 23:29:18 arkabytes sshd[11870]: User root from 79.137.215.70 not allowed because not listed in AllowUsers
Mar 27 23:29:18 arkabytes sshd[11870]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=79.137.215.70  user=root
Mar 27 23:29:20 arkabytes sshd[11870]: Failed password for invalid user root from 79.137.215.70 port 55613 ssh2
Mar 27 23:29:21 arkabytes sshd[11873]: User root from 79.137.215.70 not allowed because not listed in AllowUsers
Mar 27 23:29:21 arkabytes sshd[11873]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=79.137.215.70  user=root
Mar 27 23:29:23 arkabytes sshd[11873]: Failed password for invalid user root from 79.137.215.70 port 56001 ssh2
Mar 27 23:29:23 arkabytes sshd[11875]: User root from 79.137.215.70 not allowed because not listed in AllowUsers
Mar 27 23:29:23 arkabytes sshd[11875]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=79.137.215.70  user=root
Mar 27 23:29:25 arkabytes sshd[11875]: Failed password for invalid user root from 79.137.215.70 port 56400 ssh2

(más…)

Share

www

El Fraude del Click

0

Lo había pensado, pero nunca me había parado a pensar en que podría ser un verdadero fraude, hasta que el otro día me mandaron un mail que hablaba sobre El Fraude del Click en los sistema de publicidad basados en Coste por Click.

Al parecer, es una práctica conocida consumir el crédito diario que tus competidores han colocado en sus anuncios haciendo click sobre ellos tantas veces como sea necesario. De esa manera evitas que ese anuncio siga saliendo durante el día en cuestión. Supongo que tampoco será muy complicado hacer algún tipo de script o bot para que haga esos clicks por tí, y no tener que estar todo el día gastando el botón del ratón. Algo como esto, por ejemplo, malware cuya finalidad es cometer este fraude.

Según puedo leer, detectar clicks fraudulentos puede ser muy dificil. Habrá casos muy claros en los que una sola dirección IP haya efectuados un número elevado de clicks en muy poco tiempo, y podrá suponerse que son fraudulentos. Pero también podemos encontrarnos con casos en los que usuarios infectados por algún tipo de bot como los que he comentado anteriormente, y sean muchos (sin saberlo ellos) los que contribuyen a llevar a cabo el fraude. ¿Cómo descartamos esos clicks si vienen de diferentes direcciones IP? Si hacemos que el bot no sea muy invasivo, cada uno de esos clicks totalmente fraudulentos serán considerados legítimos. Es bastante fácil crear scripts que además sean capaces de hacerse pasar por un navegador.

(más…)

Share

Go to Top