* Claudio Curci  /  Php developer

Errore Invalid Parameter in Moodle 5


Avete installato Moodle 5 sul vostro PC, impostando un virtual host, e finalmente state per iniziare il lavoro. Appena entrate nella dashboard, però, una modal box vi avvisa di un “invalid parameter” senza fornire ulteriori spiegazioni. Il problema, da fastidioso, diventa bloccante non appena provate ad aggiungere un’attività a un corso.

Da cosa dipende l'errore "Invalid parameter" su installazioni nuove di Moodle 5?

Partiamo dall’inizio. Moodle 5 è basato su una struttura di cartelle più rigida rispetto al passato, quando di fatto era sufficiente posizionare i file in qualsiasi cartella del proprio PC o del server. Moodle 5 isola i file sensibili e di sistema rispetto al resto dell’applicazione. A questo scopo, gli sviluppatori hanno introdotto la cartella public, che di fatto dovrebbe corrispondere alla document root del web server.
Moodle non consente installazioni locali richiamabili nel classico modo (http://localhost/moodle/public/). È invece necessario impostare la cartella public come root del virtual host. Per questo è frequente imbattersi in installazioni del tipo http://moodle_5_2.local. Ed è proprio qui che possono nascere i problemi.

Sono consentite url come "http://moodle_5_2.local"?

Teoricamente sì: Apache non genera alcun errore e la procedura di installazione di Moodle procede senza problemi. I problemi però emergono quando Moodle utilizza i filtri per validare le chiamate AJAX e si aspetta URL conformi alle specifiche RFC.
In questo caso, un indirizzo come http://moodle_5_2.local può risultare non valido a livello di validazione dell’hostname, poiché l’uso del carattere underscore (_) non è consentito negli hostname secondo le specifiche DNS. Per questo motivo, Moodle può interpretarlo come un URL non valido o potenzialmente insicuro e rifiutare la richiesta con l’errore “invalid parameter”.

Come risolvere il problema dell'invalid parameter in Moodle 5?

La soluzione è semplice: evitare caratteri non validi negli hostname, come l’underscore, e utilizzare invece domini del tipo http://moodle52.local, che rispettano le specifiche e vengono accettati senza problemi.
In generale, sarebbe auspicabile che in futuro gli sviluppatori evidenziassero questa problematica già in fase di installazione della piattaforma. Si tratta di un dettaglio banale, ma in assenza di indicazioni può portare a un debug lungo e inutile, che fa perdere parecchio tempo.
Spero, con questo breve articolo, di aver evitato a qualcuno di sprecare minuti preziosi.

Dal 1997, il Php a Roma!

Claudio Curci
Da quasi trent'anni mi dedico alla programmazione, con oltre 20 anni di esperienza come freelance. Credo in un approccio al lavoro in cui la competenza si sposa con la serenità, dove le urgenze sono vizi, non virtù. Mi impegno a supportare i clienti con risposte chiare e soluzioni concrete, evitando inutili tecnicismi. "La vera efficienza si trova nella serenità." – Henry David Thoreau
Infocurci Questo sito non utilizza cookie, non mostra nessuna pubblicità e non profila nulla. Navigate serenamente, siete i benvenuti.

Ambienti / piattaforme di sviluppo

Amazon Booking.com CodeIgniter Joomla Magento Moodle Kelkoo Kigo PayPal Symfony Wordpress Airbnb FormaLms Laravel Prestashop Shopify Whatsapp