Diseño Web

Diseño Web, Trucos

Cómo deshabilitar un botón de un formulario según el estado de un checkbox

Hace unos días un cliente nos pidió que no se pudiera mandar un formulario si un checkbox (casilla de verificación) no estaba marcado. Por ejemplo el típico de Acepto los Términos y Condiciones. Os dejamos una manera sencilla de hacerlo. En nuestro caso, la casilla la querían marcada por defecto, esto es fácil: <input type=”checkbox” name=”terminos” checked> Ahora lo que vamos a hacer es crear una función de Javascript para que compare el estado de la casilla cada vez que se haga click en ella. Este script lo podemos poner al final de la página del formulario o llamarlo en su carga: <script type=”text/javascript”> function disableSending() { document.nombredelformulario.nombredelboton.disabled = !document.nombredelformulario.terminos.checked; }; </script> Como veis esto comprueba si el campo términos (se puede cambiar), no está marcado y, si es así, deshabilita el botón. Obviamente tenemos que cambiar nombredelformuario y nombredelbotón por lo que sea en nuestro caso. Podemos poner los nombres que queramos mientras en el html pongamos name=”nombre” como hemos hecho en términos. Hemos mantenido el nombre del campo términos pero también se puede cambiar. Ahora hay que cambiar el checkbox para que llame a esa función cada vez que se pinche. Modificamos el campo de arriba así: <input type=”checkbox” name=”terms” checked onclick=”disableSending();”> Podéis ver un ejemplo aquí. A mi me gusta entonces cambiar el CSS para que el checkbox cambie de color si está deshabilitado. Por ejemplo: button[disabled] { background-color: grey; color: #666666; } Con eso ya lo tenéis funcionando.  

Diseño Web, Soporte, Trucos

Revive Adserver: los anuncios dejan de funcionar tras activar https

Hace unos días pasamos la web de un cliente a https, como debería ser lógico estos días. El cliente tiene un servidor de anuncios con Revive Adserver y, pasado un día (cuando la caché se renovó), los anuncios dejaron de mostrarse. Os dejamos la solución por si alguno encuentra el mismo problema. La idea principal la encontramos aquí, y tiene lógica porque pasa con todo el contenido https: (…)if you supply an HTML banner, and the zone is rendered under SSL, Revive performs a check if there is any SSL-unsafe code in the banner. If it does detect that kind of code, the the banner is simply not delivered. Es decir, si la zona está en un sitio con https, mira su contenido y, si hay algo de http (una imagen, un enlace etc), no lo manda. Por lo tanto la solución es revisar: La manera de mostrar los anuncios. Ya que estás ponlos en https (la llamada al script por ejemplo). Cada uno de los anuncios. Que los banners y los enlaces apunten a https no http. Esto puede ser un problema si tu anunciante no tiene esa opción. Con eso, tras limpiar caché, deberían aparecer los anuncios de nuevo. Otra opción que tenéis es forzar desde el servidor (Apache, Nginx) una redirección de todo el contenido http a https. Esta semana os enseñaremos a hacerlo también en Laravel.  

Diseño Web, Noticias SmythSys, Trabajos

Nueva web Aseata.es

Nueva web para uno de nuestros clientes Aseata.es. Una asociación empresarial relacionada con las líneas aéreas. La página web es una página empresarial sencilla, con contenido que explica las funciones de la empresa, servicios que ofrecen, bolsa de empleo etc… y formularios de contacto para poder mandarles preguntas o solicitudes varias. Además, incluye zona privada para miembros de la asociación desde la que pueden acceder a contenido privado. Una web sencilla, de las más sencillas (y económicas) que hacemos en WordPress en SmythSys, pero muy funcional y con buena presencia empresarial. Si queréis alguna similar, podéis poneros en contacto con nosotros.      

Diseño Web, Gestores de contenidos

Los mejores plugins de WordPress para insertar códigos en header y footer

Muchos servicios externos requieren insertar código en la sección del header o footer de vuestra página. Esto en WordPress se puede hacer de varias maneras: Mediante un plugin. De eso trata el artículo de hoy y os dejaremos los mejores para que los probéis. Es lo más sencillo obviamente, pero también estamos añadiendo plugins (añade lentitud y vectores de ataque). Editando los ficheros header.php o footer.php de tu plantilla. No recomendable porque en cuanto actualices la plantilla los cambios seguramente se eliminarán. Con un tema hijo (child theme). Si quieres modificar los ficheros de tu plantilla lo mejor es hacer esto primero. Así tienes las modificaciones que quieres y podrás actualizar la plantilla padre sin miedo a que se pierda nada. Tu tema hijo coge todo del padre, y añade las modificaciones. Hoy os dejamos los plugins más usados para añadir scripts en tu cabecera o en el pie de página: Insert Headers and Footers Muy sencillo pero con más de 300.000 instalaciones. Sólo tienes que instalarlo, ir a Ajustes> Insert Headers and Footers y ahí tendrás un espacio para añadir los script de la cabecera y otro para los del pie. Head, Footer and Post Injections Tiene menos instalaciones que el anterior (más de 100.000), pero aún así mejor valoración y muchas más opciones. No sólo podemos añadir código en el header y footer, sino también en posiciones de los posts, páginas y mucho más. Para el que necesita más funcionalidades. Header and Footer Scripts Inserter. Puedes insertar códigos HTML, JavaScript y CSS (estos dos últimos mediante tags). Probadlos, según lo que necesitéis uno os vendrá mejor que otro. De esta manera podréis insertar los script en header y footer sin mucha dificultad.

Diseño Web, Seguridad, Servidores, Sistemas

Cómo poner certificado SSL en tu web usando Cloudflare

Hace unos días un cliente nos dijo que por qué no activábamos SSL en su web ( dados los cambios de Google ) a través de Cloudflare porque era “muy fácil”. Es fácil, pero queremos explicaros las ventajas y desventajas. Cloudflare ofrece varias opciones para activar los certificados. Os lo dejamos de manera sencilla: Si no tienes certificado en tu servidor y o ni ganas o ni conocimiento sobre cómo instalarlo:  Flexible SSL. Este modo es el más sencillo. No requiere configuración, ni conocimientos ni instalación. Damos a un botoncito en nuestro panel de Cloudflare y, como por arte de magia, tenemos https (SSL). ¿Fácil no? Pues como siempre no es oro todo lo que reluce. Este método sólo cifra desde Cloudflare hasta el visitante. Pero el trayecto de Cloudflare a tu servidor está sin cifrar. Si, en teoría todo debería pasar por Cloudflare, pero de la teoría a la práctica hay mucho trecho. Realmente no tienes un certificado, pero el cliente (y Google etc) ven como si lo tuvieras porque Cloudflare lo emula. Pero si se cae ésta, o dejas de usarlo, ya no lo tienes. Hasta ellos dicen que : “It should only be used as a last resort if you are not able to setup SSL on your own web server, but it is less secure than any other option…..(…) This option is not recommended if you have any sensitive information on your website” En resumen es una “chapucilla” que puede servir, si no puedes instalar un certificado, para salir del paso. Pero recomendamos que sea sólo momentáneo. Si puedes instalar un certificado en tu servidor: Full SSL. Esta es la opción clásica y más segura para activar SSL. Se instala el certificado (del tipo que sea) en tu servidor y así todo el trayecto está cifrado. Requiere que tengas un certificado válido. Puedes usar los de LetsEncrypt o alguno de pago. Pero también Cloudflare emite certificados Es lo que llama Origin CA , en el que es Cloudflare la que actúa como entidad certificadora. Eso si en Free y Pro son compartidos, a partir de Business creo que es ya un certificado personalizado. Eso si, instalar un certificado en un servidor no es muy sencillo, requiere conocer el proceso. Y luego, una vez activado, podemos tener que revisar los enlaces y cambiar código en base de datos o por código porque tendremos muchos que estén puestos por http. Por ejemplo los enlaces puestos a mano tendrán que cambiarse a manos. Strict (SSL-Only Origin Pull):  Esto es sólo para las cuentas Enterprise. Lo que hace es que si tienes alguna petición http en tu web, te la devuelve como https aunque no lo hayas configurado así. Así que Cloudflare te puede ayudar a pasar a SSL si no tienes ni idea de cómo hacerlo, con la opción sencilla. Si no, te proporciona un certificado, o puedes hacerlo por tus medios.

Diseño Web, Webs

Cómo probar las peticiones HTPP tipo POST, GET,PUT, HEAD, DELETE…

Estos días hemos estado desarrollando unos script para un cliente, que recibía datos por peticiones HTTP en formato POST. También corrigiendo algunos de otro cliente en formato GET. Ambos recibían en información de proveedores o terceros. En esos casos, no siempre puedes hacer todas las pruebas que querrías provenientes del proveedor. Así que lo ideal es tener otro sitio externo desde el que puedas hacer peticiones personalizadas. Existen muchas páginas online para hacer eso, con una pequeña búsqueda en Google las podéis encontrar, pero os dejamos una que nos ha gustado. Hurl.it es una página desde la que poder hacer dichas peticiones HTTP. Es muy sencilla, presenta las opciones a modo de formulario, con un interfaz muy claro y limpio. Elije el tipo de petición, la autenticación, la cabecera, los parámetros y mándalo. Si has mandado varios te pedirá cumplimentar un reCaptcha. Así de fácil. Esperemos que os sirva como a nosotros.  

Compartir, Diseño Web, Gestores de contenidos, Redes Sociales, Trucos

¿Qué tamaño deben de tener las imágenes en las publicaciones de Facebook?

Si tienes una página web que comparte contenido en Facebook, puede que te hayas preguntado qué tamaño de imágenes deberías poner en tus publicaciones. De hecho si las pones demasiado pequeñas no aparecerán en Facebook, y si las pones demasiado grandes tardarán mucho en cargarse tanto la página como Facebook (y puede que ni aparezca en FB por timeout). Hoy os explicamos que tamaño deberías usar. Eso si, esto es hoy, dentro de unos meses o un año, con el avance de la tecnología, este artículo quedará obsoleto. Varios puntos importantes: El tamaño mínimo aceptado es 200 x 200px. Imágenes con menos dimensiones que esas no aparecerán en Facebook y verás un error en el debug de Facebook. El tamaño recomendado por Facebook es de 1.200 × 630 px porque consideran que eso se adapta bien a dispositivos grandes y pequeños. El tamaño mínimo recomendado por Facebook es de 600 × 315 píxeles. Las imágenes deben ocupar menos de 8Mb. Recuerda que si tienes alguna publicación que no cumpla estos requisitos debes, una vez cambiado siguiendo estos parámetros,  ir al depurador y vaciar la cache de Facebook. Después compartirlo de nuevo. Más información aquí.

Diseño Web, Gestores de contenidos, Trucos

WordPress: subir ficheros por FTP y que aparezcan en la Biblioteca de Medios

      Ya hemos hablado otras veces que muchos servidores tienen limitaciones de subida de ficheros. Para eso compartimos hace una semana un gran plugin que se salta esa limitación. También explicamos cómo desactivar el límite en servidores gestionados por vosotros. Hoy os dejamos otra manera de hacer esto, quizás interesante para quien tenga una gran cantidad de ficheros en el ordenador que quiera subir por FTP. La idea es subir todo por FTP (que no tiene limitaciones) y después que WordPress importe ese contenido a su Biblioteca de Medios. Porque siempre puedes subirlo por FTP, pero después los usuarios no lo tienen disponible para insertar desde el panel de WordPress. También puede ser interesante si quieres permitir a usuarios subir ficheros sólo a ciertos sitios o sin acceso al backend, o si quieres hacer un proceso automatizado de subida por FTP y que luego WordPress disponga de ese contenido. Os dejamos dos plugins para ello: Media from FTP. Add from server. Ambos funcionan de manera muy similar: instalar, escanear las carpetas, elegir lo que subir. Es cierto que es algo más tedioso que Advanced Uploader, pero puedes controlar mejor ciertas cosas por FTP (como permisos de subida).

Diseño Web, Servidores, Sistemas, Trucos

Obtener la IP original de los clientes cuando usas Cloudflare

Ya hemos hablado largo y tendido sobre Cloudflare, una capa extra de seguridad y de caché para tus páginas web. Eso si, si deseas obtener, por tema de registro o para alguna aplicación web, la IP de un cliente, verás que hay un problema. Al venir todas las peticiones de los servidores de Cloudflare, no sabes la IP real de un cliente. Aquí os comentamos cómo resolverlo. En esta página de Cloudflare viene la solución para cada servidor web o proxy. Por ejemplo en Apache debemos instalar el módulo mod_cloudflare. En Nginx podemos usar otro módulo que se llama http_real_ip. Este módulo no se carga por defecto, hay que instalarlo o compilarlo con la opción –with-http_realip_module . Si ese es tu caso estás de enhorabuena. Sólo tienes que poner en tu configuración de nginx: set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 104.16.0.0/12; set_real_ip_from 108.162.192.0/18; set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13; set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 199.27.128.0/21; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; # use any of the following two real_ip_header CF-Connecting-IP; #real_ip_header X-Forwarded-For; Después sólo tienes que probar la configuración de nginx y reiniciar si todo está bien. Deberías ver las IPs originales. Si no tienes es módulo en nginx, y no te apetece recompilar, puedes hacer un truco. En la configuración de nginx puedes poner algo como: location ~ \.php$ { fastcgi_param REMOTE_ADDR $http_x_real_ip; #…other rules } Esto usará ese parámetro de http_x_real_ip para coger la ip real que Cloudflare pone en las cabeceras. Pero sólo valdrá para aplicaciones que pasen por fastcgi. Por ejemplo el propio nginx no sabrá la ip real si no le ponemos un parámetro (ver las siguientes líneas). También puedes usar esta opción para redirigir según la IP real, por ejemplo con: if ($http_x_real_ip != xxxx.xxxx.xxxx.xxxx) {          return 403;         } Y, si no quieres ponerlo en nginx puedes buscar las cabeceras desde Php con: if (isset($_SERVER[“HTTP_CF_CONNECTING_IP”])) { $_SERVER[‘REMOTE_ADDR’] = $_SERVER[“HTTP_CF_CONNECTING_IP”]; } ¿Cómo comprobar que funciona? Además de en los logs (que puede ser un follón mirarlo), puedes poner un phpInfo en tu servidor (quítalo luego). Hay un apartado donde puedes ver el SERVER [“Remote Address”] y las cabeceras que pasa Cloudflare en SERVER [“http_x_real_ip”] y SERVER [“http_x_forwarded_for”]. Cuando funciona, el campo Remote Address debe ser una de las cabeceras de Cloudflare (http_x_real_ip o la otra según cual uses).  

Diseño Web, Servidores, Sistemas

MySQL Workbench, el interfaz gráfico de Mysql para diseñar, administrar y gestionar bases de datos.

Cuando quieres gestionar bases de datos en servidores, bases de datos Mysql y SQL, la herramienta más común es PhPMyAdmin, de eso no hay duda. Sin embargo, existen alternativas muy interesantes que podemos tener que considerar en ciertas ocasiones. Hoy os hablamos de una de ellas: MySQL Workbench. En nuestro caso, usamos empezamos a usar esta GUI para bases de datos, porque necesitábamos conectarnos a servidores de base de datos que estaban muy restringidos en términos de seguridad. La conexión sólo se podía hacer por clave privada por ssh, y PhpMyAdmin no permitía esto (de manera sencilla al menos). MySQL Workbench es un gran interfaz gráfico para bases de datos SQL disponible para Windows, Linux y Mac OS X. Con esta sencilla pero potente herramienta, podemos realizar modelado de datos, desarrollo SQL, administrar servidores SQL, administrar usuarios, realizar copias de seguridad, migrar, monitorizar el rendimiento y mucho más. Si eres un administrador de servidores, y llevas varios servidores de bases de datos, te recomiendo que pruebes esta herramienta, porque te va a resultar sencillo, y muy visual, gestionar esos servidores. Además una de las grandes ventajas que tiene es que, al contrario que PhpMyAdmin, lo instalas en tu equipo en tu oficina y eso se conecta directamente con los servidores de bases de datos. No tienes que instalar nada en tu servidor, no necesitas servidores web ni tienes que dejar en el servidor programas que puedan conectarse a la base de datos y puedan ser puntos débiles de seguridad.    

Scroll al inicio