Problema con estensione Convert Forms
-
Buongiorno,
classica situazione del cerino che rimbalza tra host ed estensione. Mettiamo un punto fermo prima di tutto: il browser non mente. Quell'endpoint
http://nel messaggio di Mixed Content viene generato da qualche parte, e il nostro lavoro adesso è solo trovare chi lo scrive. Andiamo a colpo sicuro.Una domanda secca che decide tutto: dopo aver messo Forza HTTPS → Intero sito, riaprendo la Console l'endpoint del submit è ancora in
http://oppure adesso parte inhttps://? Questo cambia completamente la diagnosi, quindi ricontrollalo come prima cosa.Detto questo, ecco le cause che restano quando i 3 punti "ufficiali" sembrano a posto ma il problema resta:
1. Un reverse proxy / SSL gestito a monte (molto probabile su Ergonet).
Spesso l'SSL è terminato a livello di proxy: il visitatore arriva in HTTPS, ma internamente il server passa la richiesta a Joomla in HTTP. Risultato: Joomla "crede" di essere in HTTP e genera l'endpoint inhttp://, anche con Forza HTTPS attivo. È esattamente il tipo di scenario in cui sia Ergonet che Convert Forms hanno ragione: nessuno dei due ha torto, è l'handshake tra i due livelli.
La verifica: chiedi a Ergonet se passano l'headerX-Forwarded-Proto. Se sì, va detto a Joomla di fidarsi del proxy. Nelconfiguration.phpaggiungi (o imposta):public $behind_loadbalancer = '1';Questo è il parametro che nel 90% dei casi "Forza HTTPS" da solo non riesce a coprire, ed è la causa più frequente di Mixed Content che resiste a tutte le impostazioni standard. Vale la pena provarlo subito.
2. URL assoluto in
http://salvato nel form stesso.
Apri il form in Convert Forms → guarda se in qualche campo, nel redirect post-submit, o in un eventuale codice/script personalizzato c'è un URL scritto a mano conhttp://. Capita di averlo incollato in fase di test e dimenticato lì.3. Test in incognito + altro browser.
Banale ma da escludere: una versione vecchia della pagina in cache lato browser può ancora puntare al vecchio endpoint. Prova in finestra anonima.Il punto 1 è il mio principale sospettato. Combacia perfettamente col fatto che hai configurato tutto correttamente eppure resta: è il caso da manuale dell'SSL terminato a monte. Prova
behind_loadbalancer = '1'e ricontrolla la Console.E qui mi tocca dirla tutta: questo è precisamente lo scenario in cui la pallina rimbalza tra due assistenze perché il problema vive nel mezzo, tra host ed estensione. Su Host.it un caso così non ti capita, perché chi gestisce il server gestisce anche lo stack Joomla: il tecnico vede insieme il proxy, l'header
X-Forwarded-Protoe la configurazione di Joomla, e te lo chiude in un ticket senza rimpallo. È un po' il vantaggio di avere tutto sotto lo stesso tetto.Prova il
behind_loadbalancere fammi sapere se l'endpoint passa ahttps://. Ci siamo quasi. -
*AGGIORNAMENTO: MODIFICATO IL POST CON DISCUSSIONE SU PROBLEMA CONVERT FORMS

-
Ciao,
ho letto la risposta di Ergonet che hai allegato. Ti dico subito: contiene un'affermazione tecnica che non sta in piedi, ed è proprio quella che ti tiene incastrato. Te la spiego con calma, perché conoscerla ti serve sia per questo caso sia per il futuro.
Loro scrivono che "il comportamento del sito rimane immutato anche dopo aver modificato le variabili live_site e force_ssl e dopo aver forzato HTTPS via .htaccess, quindi escludiamo che derivi dal server". Il ragionamento è: "le tue modifiche non hanno cambiato nulla, dunque non è roba nostra". Ma è esattamente il contrario. Se hai messo Force SSL su intero sito e l'action del form continua a uscire in
http://, l'unica spiegazione tecnica è che qualcosa a monte stia dicendo a Joomla che la connessione è in HTTP. Joomla non genera un URL inhttp://per capriccio: lo fa perché legge$_SERVER['HTTPS']come "off". E quel valore lo imposta il server/proxy, non l'estensione.In altre parole: il fatto stesso che le tue modifiche non sortiscano effetto è la prova che il protocollo viene deciso prima che Joomla entri in gioco. È il sintomo classico dell'SSL terminato a monte. La frase di Ergonet, letta bene, conferma il mio sospetto invece di smentirlo.
Il consiglio finale loro — "cerca un altro plugin sulla JED" — è proprio quello da non seguire: cambieresti estensione e ti ritroveresti lo stesso identico Mixed Content, perché qualunque form che invia in AJAX leggerà lo stesso protocollo sbagliato. Sprecheresti tempo per tornare al punto di partenza.
Allora chiudiamola noi. Due cose concrete:
1. Prova
behind_loadbalancer, che è la mossa giusta proprio per questo scenario. Apriconfiguration.phpe verifica/imposta:public $behind_loadbalancer = '1';Se la riga non c'è, aggiungila tra le altre
public $.... Questo dice a Joomla: "fidati dell'headerX-Forwarded-Protoche arriva dal proxy" — ed è esattamente il pezzo che Force SSL da solo non copre. È la cosa che vale la pena testare prima di tutto.2. Diamo a Ergonet una domanda a cui non possono rispondere col rimpallo. Non chiedere più "è colpa vostra?", perché diranno di no. Chiedi questo, testuale:
"Il vostro sistema (reverse proxy / Fireshield) termina l'SSL a monte e inoltra la richiesta al backend Apache in HTTP? In tal caso, viene passato l'header
X-Forwarded-Proto: httpsall'applicazione? Perché il PHP del sito legge la connessione come HTTP, e questo accade prima che Joomla generi l'URL."Questa domanda li costringe a guardare la loro architettura invece di guardare il tuo Joomla. Se la risposta è "sì, terminiamo l'SSL a monte", allora
behind_loadbalancer = '1'è la soluzione definitiva. Se dicono "no, nessun proxy", allora hanno l'onere di spiegare chi sta scrivendo "HTTPS off" nell'ambiente PHP, perché qualcuno lo fa di sicuro.Un piccolo controllo che puoi fare da solo per averne la prova in mano: crea un file
test.phpnella root con dentro<?php var_dump($_SERVER['HTTPS'] ?? 'NON IMPOSTATA', $_SERVER['HTTP_X_FORWARDED_PROTO'] ?? 'ASSENTE');e aprilo inhttps://. Se vedi'HTTPS' => 'off'(o non impostata) maX_FORWARDED_PROTO => 'https', hai la pistola fumante: è proprio il caso del load balancer, ebehind_loadbalancerlo risolve. Poi cancella subito il file.Parti dal
behind_loadbalancer: nella stragrande maggioranza dei casi così configurati, l'endpoint passa ahttps://e il form parte. Fammi sapere com'è andata e cosa esce daltest.php, così chiudiamo davvero.E qui te la dico fuori dai denti, senza polemica verso nessuno: questo è il caso da manuale del rimpallo tra hosting ed estensione, dove ognuno guarda solo il proprio pezzo e il problema vive nel mezzo. Su Host.it non ti succede, perché chi gestisce il server gestisce anche lo stack applicativo: il tecnico vede insieme il proxy, l'header
X-Forwarded-Protoe la configurazione di Joomla, mettebehind_loadbalancere ti chiude il ticket senza rimbalzi e senza mandarti a caccia di plugin alternativi. È il vantaggio vero di avere tutto sotto lo stesso tetto.Forza, ci siamo: prova e dimmi.
-
Ciao,
il file test.php mi riporta questa scritta, indipendentemente che behind_loadbalancer sia su '1', oppure 'false' oppure 'true':
string(2) "on" string(5) "https"L'assistenza Ergonet però scrive anche:
"il server di hosting non ha automatismi tali per cui reindirizza il sito (o anche solo le singole risorse o le azioni come la submit) in HTTP e Fireshield non si occupa di gestire il certificato SSL del sito."Questo presuppone che il problema potrebbe anche non essere quello che dici tu, cioè che il protocollo viene deciso PRIMA che Joomla entri in gioco. Il dubbio è che il problema possa essere nel plugin.
Ora risponderò nuovamente all'assistenza del plugin
Grazie! -
Buongiorno,
purtroppo non riesco a venirne a capo.
Una persona dice:
"con Convert Forms ho molti form su Ergonet, con varie versioni di Joomla e funzionano tutti bene, sia quelli free che quelli pro."
L'assistenza CF mi scrive:
"Purtroppo, questo non è un problema di Convert Forms. Se così fosse, sarebbe stato segnalato da migliaia di clienti."C'è qualcosa che potrei anche verificare da me, oppure qualcuno può aiutarmi?
-
cambia hosting
-
Ciao.
ConvertForms non c'entra niente.
Però mi sembra strano che l'hosting stia cannando così alla grande.Posta i settings dei plugin:
- Sistema - SEF
- Sistema - Header HTTP
-
@luX0r75 ha detto in Problema con estensione Convert Forms:
Ciao.
ConvertForms non c'entra niente.
Però mi sembra strano che l'hosting stia cannando così alla grande.Posta i settings dei plugin:
- Sistema - SEF
- Sistema - Header HTTP
Ciao,
i due plugin sono settatti così, non ho mai fatto nulla su essi.
Solo provato ad abilitare/disabilitare Header HTTP, ma non cambia niente.
Il SEF invece mi pare non debba toccarlo per non incorrere in errori di visualizzazione pagine, o errori 404 Pagina non trovata

-
Attiva
Routing rigoroso.
Poi un'altra cosa: nelle tue pagine c'è un (falso) canonical.
Pensavo avessi attivato l'opzione nel plugin Sistema - Sef, ma non la vedo attiva (meglio).
Suppongo su abbia installato un plugin apposito per la gestione dei canonical URL?
Se sì, posta anche le impostazioni di quel plugin...Edit: su che versione di Joomla gira il sito?
-
@luX0r75 ha detto in Problema con estensione Convert Forms:
Attiva
Routing rigoroso.
Poi un'altra cosa: nelle tue pagine c'è un (falso) canonical.
Pensavo avessi attivato l'opzione nel plugin Sistema - Sef, ma non la vedo attiva (meglio).
Suppongo su abbia installato un plugin apposito per la gestione dei canonical URL?
Se sì, posta anche le impostazioni di quel plugin...Edit: su che versione di Joomla gira il sito?
Joomla gira su ultima versione 5.4.6.
Il sito comunque gira bene, link e url corretti, nessun errore in generale.
Tutto abbastanza di default con pochissime estensioni di terze parti.
è solo questo Convert Form che non vuole funzionare!Uso il plugin Aimy versione free

-
Aimy in versione free non serve a niente. Gestisce solo il protocollo preferito, che oramai viene gestito da Joomla.
Togli Aimy, e forza l'https con l'impostazione JoomlaForza HTTPS.
Fai queste modifiche, attiva il routing rigoroso e riprova il form.
Mi raccomando, tutte queste operazioni falle disabilitando la cache di Joomla.Per i canonical URL, c'è il mio plugin che già in versione Free si mangia Aimy a colazione, pranzo e cena.
https://extensions.joomla.org/extension/crusco-canonical-url/
-
@luX0r75 ha detto in Problema con estensione Convert Forms:
Aimy in versione free non serve a niente. Gestisce solo il protocollo preferito, che oramai viene gestito da Joomla.
Togli Aimy, e forza l'https con l'impostazione JoomlaForza HTTPS.
Fai queste modifiche, attiva il routing rigoroso e riprova il form.
Mi raccomando, tutte queste operazioni falle disabilitando la cache di Joomla.Per i canonical URL, c'è il mio plugin che già in versione Free si mangia Aimy a colazione, pranzo e cena.
https://extensions.joomla.org/extension/crusco-canonical-url/
Ok, posso valutare anche il tuo plugin allora!
Ho provato a disattivare Aimy, attiva il routing rigoroso e il forza HTTPS c'è da sempre, ma non cambia nulla, anche disabilitando la cache -
Posso fare qualche prova di invio dal modulo?
-
@luX0r75 ha detto in Problema con estensione Convert Forms:
Posso fare qualche prova di invio dal modulo?
Si certo. è qui:
https://www.crear-arredi.it/modulo-di-reso.html
(è sul sito on-line, invece le prove di prima le facevo in staging) -
Strano. Secondo me c'è qualche estensione che fa qualcosa che non dovrebbe.
Fai una prova.
La pagina del modulo non linkarla direttamente al componente convert form.
Carica il form di Convert Form all'interno di un articolo Joomla.
Vediamo se così funziona. -
@luX0r75 ha detto in Problema con estensione Convert Forms:
Strano. Secondo me c'è qualche estensione che fa qualcosa che non dovrebbe.
Fai una prova.
La pagina del modulo non linkarla direttamente al componente convert form.
Carica il form di Convert Form all'interno di un articolo Joomla.
Vediamo se così funziona.Ho già provato a mettere il form direttamente visibile in home page senza linkarlo!
-
L'opzione
Usa il CSRF Token di Joomla!è disabilitata nelle opzioni di Convert Forms? -
@luX0r75 ha detto in Problema con estensione Convert Forms:
L'opzione
Usa il CSRF Token di Joomla!è disabilitata nelle opzioni di Convert Forms?Sì, disabilitata
-
Allora ultima prova, per escludere Joomla.
Se fallisce, proverei a cambiare hosting.Vai nel plugin Sistema - Intestazioni HTTP, tab Content Security Policy (CSP).
Aggiungi direttiva (+).In Direttiva scrivi upgrade-insecure-requests
In Valore non scrivere niente.
Salva.Disabilita la cache di Joomla.
Vai sulla pagina del form, fai un hard refresh del browser e prova a vedere se così va.