Descuento 20% Diciembre
Plugin Optimización de Imágenes Gratuito para WordPress
Domingo, 10 Noviembre 2013 00:00

Solucionar el problema de reCAPTCHA en Joomla 3.2 "Wrong Recaptcha URLs causing broken captcha"

Escrito por 
CMS:  Joomla! |  Versión:  3.x |  Nivel de dificultad:  Medio |  Tiempo estimado de lectura:  1 minuto


reCAPTCHA en Joomla 3.2Hace apenas unos días fue liberado Joomla 3.2 STS lo que ha supuesto mejoras interesantes en el CMS más popular después de WordPress y que se han comentado en otros artículos del Blog.

No obstante, en ocasiones, se localizan errores en el funcionamiento de determinadas funcionalidades del CMS que pueden estar reportadas o no al Joomla Bug Squad de forma que sean corregidas y liberadas en próximas versiones y que pueden ser un pequeño inconveniente con el que convivir hasta que la siguiente versión sea liberada.

La mayoría de bugs "menores" se reportan y documentan en la forja de JoomlaCode.org y son accesibles a cualquier usuario con interés en estos temas para poder aplicar el parche, mediante la instalación de un archivo, o manualmente, editando código.

Esto es lo que ha pasado con el Formulario de Contacto nativo de Joomla 3.2 (también de Joomla 2.5.16), en el que si se habilita la función de reCATPCHA (muy recomendada para mantener el spam a raya) no se muestra la caja de reCAPTCHA y en consecuencia no puede rellenarse el Formulario para ser enviado.



Se trata de un error provocado por el cambio de url de localización de la API de reCAPTCHA por parte de Google posterior a la liberación de Joomla 3.2 y que ha dejado sin acceso a la librería javascript recaptcha_ajax.js causando el error:

"NetworkError: 404 Not Found - api.recaptcha.net/js/recaptcha_ajax.js"

El archivo recaptcha_ajax.js es externo, es decir no se localiza en la instalación de Joomla 3.2 en el Hosting porque es llamado por la función que gestiona reCAPTCHA y que debería cargar desde la url http://api.recaptcha.net

Google cerró recientemente recaptcha.net al público (hace ya mucho tiempo que Google indico que privatizaría el uso de determinadas APIs, una de ellas la dedicada ala gestión de reCAPTCHA, utilizada mundialmente por todo tipo de aplicaciones web) por lo que al buscar dicha librería no la encuentra.

Este bug está documentado debidamente en el tracker de JoomlaCode donde puedes encontrar los detalles.

Para solucionarlo hay que editar el archivo recaptcha.php localizado en la ruta:

/public_html/plugins/captcha/recaptcha/recaptcha.php

En dicho archivo encontramos el siguiente código entre las líneas 22 y 24:

const RECAPTCHA_API_SERVER = "http://api.recaptcha.net";
const RECAPTCHA_API_SECURE_SERVER = "https://www.google.com/recaptcha/api";
const RECAPTCHA_VERIFY_SERVER = "api-verify.recaptcha.net";


Debe sustituirse la url:

/http://api.recaptcha.net/

Por la url:

http://www.google.com/recaptcha/api

Aplicados los cambios y recargando la página del Formulario nativo de Contacto de Joomal 3.2 podremos visualizar nuevamente la caja de reCAPTCHA:



En el siguiente vídeo documentamos el error y como resolverlo en un par de minutos de forma sencilla y sin conocimientos de programación.



Si utilizas los formularios de contacto nativos de Joomla 2.5 o 3.2 esta solución te permitirá seguir haciendo uso de reCAPTCHA para que tu sitio web no se vea resentido por causa del SPAM.

Este mismo proceso es aplicable en Joomla 2.5.16.



¿Te ha resultado interesante este artículo?

Suscríbete para recibir consejos exclusivos para WordPress, Joomla y PrestaShop



Luis Méndez Alejo

Miembro del equipo técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Google+


Plugin Optimización de Imágenes Gratuito para WordPress