Menu Chiudi

Google reCaptcha Versione 2 con joomla! e K2

reCaptcha e Joomla

Google ha introdotto, alcuni mesi fa, una nuova versione per il sistema di protezione dei Form. In questo articolo . Potrai trovare maggiori dettagli sulle novità più importanti introdotte in Joomla 3.4, all’interno del quale un breve paragrafo è dedicato proprio a quelle novità introdotte nel CMS Joomla!® relativamente all’utilizzo della nuova versione di Google reCaptcha.

Questo di per sé non è un vero e proprio problema, tutt’altro! Infatti la nuova versione di reCaptcha è meglio accettata dai chi visita un sito, poiché non si è più costretti a digitare sequenze di caratteri senza significato che spesso non fanno altro che generare un buona dose di stress.

Questo How-To vuole quindi essere una traccia per tutti coloro che hanno avuto la sventura di imbattersi nello stesso problema e che non hanno trovato la soluzione, o che la soluzione introdotta non raggiunga comunque un buon risultato nel rendering della pagina.

Il Problema

Cominciamo col dire che, durante lo sviluppo di uno dei siti web per un Cliente, ho avuto non pochi problemi ad utilizzare il nuovo reCaptcha di Google (per intenderci la nuova versione 2) in una installazione Joomla versione 3.4.1 con installato K2 versione 2.6.9 (il famoso CCK – Content Construction Kit). Ci sono volute parecchie ore di lavoro e una grande dose di pazienza per cercare di individuare il problema e risolverlo, anche perché il sito in questione è piuttosto complesso; con tantissimi plugin, componenti e moduli. Quindi individuare il problema è stato un vero rompicapo: Incompatibilità tra alcune estensioni? Malfunzionamento di Joomla!? Errori nella configurazione delle estensioni?. Andando per esclusione, dopo parecchie ore di lavoro, sono riuscito finalmente a restringere il cerchio, delle possibili cause intorno al componente K2 o a qualche parametro mal configurato in questa famosa estensione.

Leggi anche:   Come creare una macchina virtuale VirtualBox per Ubuntu

Nell’interminabile processo di ricerca delle possibili cause del problema, mi sono accorto che:

  1. Joomla 3.4+ usa l’ultima tecnologia di reCaptcha versione 2
  2. Il modulo di registrazione utilizzato da K2 non usa il captcha di Joomla, ma usa il vecchio reCaptcha versione 1 (cablata nel componente).


Con questi presupposti, era ovvio che non potesse funzionare! Perché non me ne sono accorto prima? Infatti, Tentando di effettuare una registrazione sul sito ho notato subito che il riquadro di Google reCaptcha non era quello nuovo (per intenderci, quello con la scritta “Non sono un Robot”) bensì quello vecchio, ovvero quello che mostra una o più stringhe di caratteri deformati (oppure quello con delle immagini di numeri che sembrano numeri civici di abitazioni).

Eppure il captcha di default, nella System > Global Configuration > Default Captcha era correttamente impostato a “Captcha – reCaptcha” (cioè, quello nativo di Joomla).

Non solo. Ho anche verificato nuovamente che User > User Manager > Options > Captcha fosse impostato su Use Default.

Niente da fare! Ogni volta che tentavo di effettuare una registrazione di un nuovo utente non riuscigo ad ottenere altro che l’antipatico errore “Warning Empty solution not allowed” con l’ovvio risultato che la registrazione del nuovo utente non andava a buon fine. Insomma: nessuno poteva registrarsi su quel sito!

La soluzione

Per correggere l’anomalia, o meglio, per fare in modo che joomla! funzionasse secondo quanto progettato (indipendentemente da componente K2) è stato necessario fare qualche modifica sia sulla configurazione classica sul lato backend del sito, sia intervenire sul filesystem dell’installazione di Joomla.

Sul lato Backend del sito, ovvero come amministratore

  1. Verificare che il plugin Captcha – reCaptcha sia abilitato e siano state correttamente inserite le chiavi (Chiave del Sito e Chiave Segreta) ottenute da Google sul sito https://www.google.com/recaptcha/intro/index.html.
  2. Verificare inoltre che il plugin Captcha – reCaptcha sia impostato sull’utilizzo della Versione 2
  3. Verificare che System > Global Configuration > Default Captcha sia correttamente impostato a “Captcha – reCaptcha“.
  4. Verificare che User > User Manager > Options > Captcha sia impostato su “Use Default“, o in alternativa su “Captcha – Recaptcha“.
  5. Verificare che K2 > Parameters > Advanced tab > Enable reCaptcha on registration form sia impostato su “No“.
Leggi anche:   Crittografia con OpenSSL in Linux

Nel File system

  1. Individuare il file root-di-joomla/components /com_k2 /templates/register.php e rinominarlo in register.php.BAK. (Questo forzerà joomla ad utilizzare il proprio form di registrazione di default invece che quello di K2).

Se non è andato storto qualcosa, si potrà facilmente verificare che la pagina di registrazione ora ha il nuovo Captcha, ovvero questo qui:

Puoi verificare tu stesso, registrandoti direttamente su questo sito, dove è stato applicato questo workaround. il nuovo Google reCaptcha farà bella mostra di se in fondo al Form di registrazione.

Conclusioni

Lavorare con Joomla! può dare moltissime soddisfazioni, si può dare vita ad un sito web in poco tempo con ottimi risultati. Con l’impiego di estensioni professionali ci possiamo permettere di raggiungere livelli di complessità insperabili, con altri framework.

Tuttavia, è sempre possibile che la convivenza tra diverse estensioni possa essere fonte di notevoli grattacapi, soprattutto tra estensioni eterogenee. In fin dei conti, chi sviluppa un’estensione pone sicuramente molta cura alla compatibilità con Joomla, ma non può certamente sapere a priori con quale altra estensione, di qualsiasi altro sviluppatore, dovrà coesistere.

Pertanto, se posso permettermi di dare un suggerimento, direi che, nello sviluppo di un sito web sulla piattaforma joomla! (ma lo stesso discorso vale in generale) va posta molta cura nel disegno iniziale, prendendo in considerazione solo estensioni la cui qualità sia comprovata.

Aggiungerei anche che è estremamente utile verificare attentamente la compatibilità tra le estensioni a convivere nel medesimo framework del sito web, prima di proporre soluzioni difficilmente applicabili nella pratica.

Condividi

Disclaimer

Questa pagina potrebbe contenere link di affiliazione. Gli acquisti o gli ordini che effettuerai tramite tali link possono generare commissioni che ci aiutano a sostenere questo sito web.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.