23 Cc6! di Ljubojevic ed é subito punto: quando le parole del poeta si elevano insieme a Java ed Eclipse!

Nell’indimenticabile torneo di Bugojno ’86 indirizzo http://www.chessgames.com/perl/chesscollection?cid=1012088 c’è un dato analizzando la classifica finale che non può essere trascurato, il vincitore si ritrova un bello zero subito da un certo Sokolov. Ma guardando bene che ci fa un giocatore come Ljuboievic in terza posizione? Il fatto é che in quel torneo macinava idee e immaginazione, ad esempio contro Timman ecco cosa riesce a fare http://www.chessgames.com/perl/chessgame?gid=1092162 da qui la pseudo domanda del titolo: il nero gioca 22..Tg8 pensando di venirne fuori o aveva previsto che cosa sarebbe accaduto alla mossa successiva? Se é un superprofessionista il neofita dira tra se che l’avrà vista per forza questa risorsa ma non puoi ottenere sangue da una pietra, più di tanto quando finisce in posizione inferiore non puoi fare. Quindi 23 Cc6 e il nero finisce in guai grossi. Ma non tergiversiamo e con social media marketing Umbria entriamo nel vivo della programmazione Java grazie al fatto che il lavoro precedente sulla configurazione dell’ IDE ha prodotto buon esito come si evince all’ indirizzo: https://umbriawaydesign.wordpress.com/2018/01/19/cosa-succede-quando-un-giocatore-viene-mortificato-e-di-cognome-fa-mortimer-chiedilo-al-gm-eclipse/; in questa scorribanda formativa o autoformativa vediamo le caratteristiche dell’ IDE, osservando in dettaglio alcune funzionalità. La struttura é quella che si vede barra del titolo, barra dei menù, barra degli strumento, a sx abbiamo la gestione folder progetto al centro troviamo lo spazio per la stesura del codice a dx mi ritrovo la sezione outline e tasklisk che si possono spostare o chiudere con soluzioni flessibili grazie al trascinamento per rendere comoda la struttura personalizzata. In genere la visualizzazione cambia con le diverse modalità del progetto, in gergo vengono chiamate PROSPECTIVE con opzioni di visualizzazione verticale oppure orizzontale. Quello che a noi preme sapere che queste interfaccia visuali consentono sempre una altissima possibilità di personalizzazione e che ci sono sempre diverse soluzioni a un tipo di problema. Esiste anche una modalità di visualizzazione chiamata NAVIGATOR come finestra messa a fianco ad EXPLORER ma molte cose non sono strettamente necessarie. Posso anche impostare la visualizzazione gerarchica sui packages ma spesso queste varianti dipendono dalla soggettività del programmatore. Nella parte inferiore ho una finestra di debug dove cliccando due volte ho anche il dettaglio avanzato che punta al file incriminato. Eclipse di per se é un labirinto stile posizione analizzata sopra, piena di mosse e di contromosse! Il tutto é facile e intuitivo ma le voci di menù sono molteplici e un minimo di smanettamento é auspicabile prima di prendere possesso dello strumento. Posso anche scegliere le modalità di debug dalla barra degli strumenti per esempio, che mi presenta un menù a discesa per le mie esigenze su quale file intervenire. L’editor di codice della finestra principale é davvero potente! E’ ricca di aiuti e suggerimenti per guidare il web developer javista (se ci é consentito dall’ accademia della crusca) per individuare al più presto quello che non funziona e che manca per far funzionare l’accrocchio! Tornando alla questione posta da social media marketing Umbria  all’ inizio, cosa accade quando un agonista non vede una mossa in analisi, ossia quando l’avversario tira fuori dal cilindro dei colpi tattici come quello di Karpov alla mossa 49 all’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1068476, certamente queste bordate destabilizzano e oltre a rafforzare la sicurezza del potenziale vincitore come in tutti gli sport, servono a gettare nel panico la mente del secondo giocatore che perderà il bandolo della matassa incapace di trovare delle mosse forti che potrebbero risollevare gli esiti della lotta.

Annunci

PHP: un buon libro per vedere in azione i fondamenti!

agenzia web marketingUn buon libro per imparare PHP é quello che suggeriamo in questo post da cui preleviamo un estratto. PHP. Una sigla con la quale tutti noi che navighiamo in rete abbiamo avuto a che fare qualche volta (anche semplicemente per aver trovato una pagina con il suffisso “.php”). Una sigla che per qualcuno evoca un obiettivo da raggiungere nell’ambito dello sviluppo di siti web. Che per qualcun altro evoca uno dei primi CMS, quel famoso “PHP-Nuke” tanto in voga qualche anno fa. Che per i miei ex compagni di università evoca notti insonni passati davanti al computer per passare un esame… ! Ma alla fine una sigla che per noi rappresenterà un modo per creare siti dinamici. Ecco, mettiamoci subito d’accordo sul termine “dinamico”. Capita spesso (è capitato anche a me) di avere clienti che chiedono un sito “dinamico”, e con “dinamico” il 99% delle volte intendono un sito “che si muove” (con animazioni in Flash, per intenderci). Non è affatto così. E per capire cosa si intende correttamente per “dinamico”, dobbiamo sapere che il linguaggio PHP è un linguaggio lato server, a differenza, per esempio, di JavaScript che invece è un linguaggio lato client. Cosa significa questo in breve? Significa che uno script JavaScript verrà interpretato dal vostro browser, che eseguirà il codice e si comporterà di conseguenza. Invece le operazioni di un linguaggio lato server come PHP saranno compiute, come dice il termine stesso, dal server, che consegnerà al client (e cioè al browser nel nostro caso) la pagina HTML, codificata dopo aver eseguito una serie di operazioni. Avete mai provato a vedere il codice delle pagine PHP sulle quali navigate? Bene, avrete sicuramente notato che se cliccate “sorgente pagina” (io uso Firefox) su una pagina di un sito in PHP vedrete che in realtà non c’è neppure una riga di codice PHP, ma soltanto HTML. Se invece osservate il codice di una pagina che ha uno script JavaScript, vedrete al contrario lo script nella sua interezza. Perché succede questo? Molto semplice: il codice PHP sta sul server, che lo interpreta e, come detto prima, consegna al browser la pagina già codificata. Per questo motivo vedete solo HTML e non PHP. Quindi, non è neppure possibile copiare il codice PHP (una volta che è stato eseguito) da un altro sito. Tornando quindi al termine “dinamico”, ora possiamo dire che i linguaggi lato server producono dinamicamente il contenuto a seconda delle richieste dell’utente, anche con interrogazioni al database (l’interazione tra PHP e un database di tipo MySQL è uno degli argomenti di questo corso). Ecco cosa si intende per “dinamico”! Pensiamo per esempio a un sito che ci serve per cercare un dato in un database con centinaia di campi: per esempio un indirizzo di un ristorante in un sito che ospita un database di tutti i ristoranti d’Italia. Noi cercheremo un ristorante in Liguria (magari attraverso un semplice form di ricerca), e il server, interpretando la nostra richiesta, ci produrrà in modo dinamico una pagina che conterrà gli indirizzi di tutti i ristoranti liguri memorizzati nel database, tralasciando quelli che non ci interessano. Invece intendiamo con “statico” un sito prodotto con un linguaggio come HTML: esiste una sola pagina ed è quella per tutti, e non ci sono contenuti che vengono prodotti a seconda delle richieste dell’utente. Prima di iniziare a mettere le mani sul codice, è necessario sapere che creare un sito con PHP (alcuni dicono anche “programmare in PHP”!) è un po’ diverso rispetto a creare un sito con HTML e CSS, perché abbiamo bisogno di qualche strumento aggiuntivo, necessario per poter svolgere il nostro compito. Quello che ci serve è un cosiddetto “ambiente di sviluppo” (o “piattaforma di sviluppo”, se preferite): dal momento che PHP è una tecnologia lato server, dovremo creare un piccolo server sul nostro computer in modo tale che il nostro codice possa funzionare, e insieme a questo server dovremo avere anche un programma che ci permetterà di gestire il database, se vorremo utilizzarlo. La scelta è vivamente consigliata, perché se iniziate a mettere le mani sul PHP, prima o poi vi capiterà sicuramente di dover creare un sito PHP/MySQL. Ma di questo parleremo più avanti! E infine, ovviamente, dovremo avere installato sul nostro computer, oltre a server e database, il codice. Queste tre componenti (codice, server e database) costituiscono l’ambiente di sviluppo. Sono davvero molti gli ambienti di sviluppo che si trovano in giro per la rete, ma io vi consiglio WAMP, acronimo di Windows (tra poco vi dirò come fare con Linux), Apache (il nome del server), MySQL (il database: il programma integrato in WAMP per la gestione dei database è PhpMyAdmin) e, naturalmente, Php. Per scaricare WAMP basta recarsi sul sito http://www.wampserver.com (o http://www.wampserver.com/en, se non avete familiarità con il francese). Dicevo, per gli utenti che utilizzano Linux, l’ambiente di sviluppo (server, PHP e MySQL: potete chiamarlo “Lamp”, con la “L” che sta per “Linux”) si trova già nel sistema operativo e basterà avviarlo (vi consiglio però di scaricare PhpMyAdmin da http://www.phpmyadmin.net, è un programma favoloso). Altrimenti potete utilizzare un altro ambiente, che si chiama XAMPP e va benissimo anche per chi usa un Mac: trovate l’ambiente di sviluppo all’indirizzo http://www.apachefriends.org. Io preferisco WAMP (e lo conosco molto meglio), quindi faremo riferimento a questo ambiente, perché è molto semplice, è veloce da utilizzare e non richiede alcuna conoscenza di base! A questo punto facciamo un bel download (è pubblicato con licenza GNU GPL, quindi è libero e gratis!) e installiamo la piattaforma sulla nostra macchina (durante l’installazione dovremo indicare un browser che ci servirà quando faremo le prove: indicate pure il vostro browser preferito). Clicchiamo sull’icona di WAMP per farlo avviare: noteremo che nella barra delle applicazioni apparirà un’icona a forma di W racchiusa in un rettangolo (nelle versioni più datate, l’icona era invece una specie di semicerchio), che in fase di caricamento sarà dapprima rossa, poi gialla e infine diventerà tutta verde: solo quando l’icona sarà tutta verde potremo iniziare a lavorare. Facciamo ora clic con il tasto sinistro del mouse sull’icona: vedrete un elenco di voci, e per spiegarle partiamo dal fondo. L’ultimissima, “Metti online”, ci serve se vogliamo mettere in rete il nostro server (magari stiamo chattando con un’amica o con un amico e vogliamo fargli vedere la nostra creazione! Quindi all’inizio, visto che non avremo niente da far vedere, non ci servirà). Le due successive, “Ferma tutti i servizi” e “Riavvia tutti i servizi”, ci servono se vogliamo “spegnere” oppure “riavviare” il nostro server virtuale, e la terzultima “Avvia tutti i servizi”, sarà da utilizzare dopo che avremo, per un motivo o per l’altro, “spento” il nostro server (la dicitura “tutti i servizi” si riferisce alle componenti dell’ambiente di sviluppo, e cioè il server stesso, il linguaggio PHP e il database). Troviamo poi “MySQL”, “PHP” e “Apache”: queste tre voci hanno sottomenù con le varie configurazioni. Lasceremo quelle di default, che ci vanno benissimo così come sono: andranno cambiate solo se utilizzeremo dei CMS e ci serviranno delle modifiche particolari. La prossima voce è “www directory” ed è importantissima, perché è la cartella dentro alla quale inseriremo tutti i nostri progetti. Proviamo a farci clic con il tasto sinistro: per ora è vuota, fatta eccezione per la pagina index.php che è la pagina principale del server virtuale. Ne parleremo in modo più approfondito tra pochissimo. Abbiamo poi il nostro PhpMyAdmin, il programma che serve per gestire database di tipo MySQL: quando lavoreremo sui database, noi utilizzeremo MySQL. L’ultima voce che troviamo partendo dal basso è “Localhost”: proviamo a cliccarci sopra. Vedrete che si aprirà il vostro browser preferito (… o almeno quello che avete indicato al momento dell’installazione) con la pagina principale di Wampserver, e cioè quell’index.php di cui si diceva poco fa: la pagina ci mostra la configurazione del server, i “tools” (che sono i già citati programmi per il database assieme a phpinfo(), la pagina che ci mostrerà le configurazioni del PHP) e infine i nostri progetti! Per adesso la colonna è vuota, ma per riempirla si fa prestissimo. Andiamo nella www directory, creiamo una cartella e chiamiamola “nuovosito”: torniamo sul Localhost e vedremo che nella colonna “Your Projects” troveremo “nuovosito”. Ma torniamo al punto da cui siamo partiti: la sigla. Cosa significa PHP? È un cosiddetto acronimo “ricorsivo”, perché significa “PHP Hypertext Preprocessor” (“PHP Preprocessore di Ipertesti”): un acronimo ricorsivo è un acronimo in cui una delle lettere sta per la sigla, insomma un acronimo che contiene se stesso. “Preprocessore” è invece un termine informatico con il quale ci si riferisce a un programma che compie alcune operazioni preliminari prima dell’esecuzione del codice: il nostro linguaggio contiene il termine “preprocessore” perché prima di inviare la pagina HTML finale all’utente vengono interpretate, appunto, le istruzioni del codice, quindi prima che la pagina HTML venga consegnata al nostro browser, il preprocessore PHP compie alcune operazioni. Che espressione utilizzeremo per indicare PHP? O meglio… che tipo di linguaggio è? Non è ovviamente un linguaggio di markup. Il papà di PHP, il danese nato in Groenlandia Rasmus Lerdorf, lo chiama “linguaggio di scripting”, quindi io direi di utilizzare questa espressione, che sta bene anche con JavaScript. Curiosità: PHP è stato inventato nel 1994. Da allora ne ha fatta di strada! I vantaggi che derivano dall’utilizzo di PHP sono davvero molti e li scopriremo man mano che andremo avanti con il corso. Possiamo anticipare che PHP è facile da apprendere (certo, ci vogliono un po’ di pratica e un po’ di esercizio), che PHP ci semplificherà notevolmente la vita per alcune operazioni, che grazie a PHP potremo gestire meglio i dati del nostro sito, e che con PHP potremo anche, se avremo pazienza e soprattutto tempo a disposizione, costruire un nostro piccolo e semplice CMS personale! Bene, dopo aver installato l’ambiente di sviluppo è ora di cominciare a scrivere un po’ di codice! La prima cosa da sapere è che possiamo inserire codice PHP in qualsiasi punto della pagina: all’inizio, a metà, alla fine… dove vogliamo. Però prima di scrivere il codice… dobbiamo creare la pagina! Apriamo quindi la cartella “www” di WAMP e creiamo una nuova cartella, a cui daremo il nome che più ci aggrada: per questo esempio potremmo chiamarla PrimoProgetto. Apriamo la cartella PrimoProgetto e creiamo una pagina che chiameremo index.php: esattamente come per i siti in HTML, la prima pagina deve chiamarsi “index”. Cambia, ovviamente, l’estensione. Bene, adesso creiamo la struttura HTML come siamo abituati: doctype, tag html, insomma tutto ciò che serve per creare una pagina HTML in accordo con gli standard internazionali, che dovremo rispettare sempre anche progettando un sito in PHP! Creata la nostra pagina siamo finalmente pronti per aprirla con il nostro editor preferito (io consiglio di installare Notepad++) e per scrivere il nostro primo codice! Tutto il testo in PHP deve essere compreso tra un’etichetta (o tag, come preferite, io uso i due termini indistintamente) di apertura e un’etichetta di chiusura. Le etichette di apertura e chiusura sono queste:

<?php

?>

All’interno di queste due tag andrà inserito tutto il nostro codice, stando bene attenti a non commettere errori… vedremo tra pochissimo quanto sono facili le sviste con il PHP. Il primo comando che impariamo si chiama “echo”. Questo comando è un costrutto che serve per stampare a schermo una stringa di testo, ovvero ogni volta che digiteremo il comando echo, seguito da una stringa tra parentesi e apici o doppi apici e chiuso da un punto e virgola, vedremo comparire (quando apriremo la pagina con il browser), quella scritta che abbiamo inserito nel comando. Per vedere il risultato con WAMP, vi basterà cliccare sull’icona nel menù delle applicazioni e cliccare quindi su “Localhost”: si aprirà il vostro browser preferito con l’elenco dei progetti, nel nostro caso “PrimoProgetto”. Cliccate su “PrimoProgetto” e vi si aprirà la pagina index.php. Ma passiamo ora a un esempio pratico del comando echo:

<?php
echo (“Ciao, io mi chiamo Federico!”);
?>

Dal momento che echo non è una funzione (vedremo poi più avanti cosa sono le funzioni), possiamo anche omettere le parentesi:

<?php

echo “Ciao, io mi chiamo Federico!”;

?>

E possiamo cambiare i doppi apici con gli apici:

<?php

echo ‘Ciao, io mi chiamo Federico!’;

?>

Gli apici o i doppi apici devono sempre essere due! Una cosa del genere non può esistere perché restituisce un errore:

<?php

echo ‘Ho visto un’anatra’;

?>

Se proviamo a scrivere questa cosa sopra e poi proviamo ad aprire la pagina index.php scrivendo, nella barra degli indirizzi del nostro browser, http://localhost/PrimoProgetto/index.php, vedremo comparire una scritta del genere:

Parse error: parse error, expecting `’,” or `’;” in [percorso] on line [numero riga]

Significa che manca un apice, perché il server interpreta l’apostrofo dell’anatra di cui sopra come un apice (e in effetti, abbiamo usato il carattere dell’apice, e non quello dell’apostrofo, che è diverso, anche graficamente). Come fare quindi se ci serve un apice che faccia da apostrofo? Semplice: utilizziamo il carattere di escape, che è nient’altro che la backslash, subito prima dell’apice:

<?php

echo ‘Ho visto un\’anatra’;

?>

i caratteri di escape diranno che si dovrà tener conto di quell’apice per snobbarlo e non generare un errore. Ah, un’altra cosa a cui fare bene attenzione: non confondete gli apici con gli apostrofi e i doppi apici con le virgolette. Se scriveremo il codice con il blocco note o con un editor come Dreamweaver non avremo problemi, ma se avremo l’insana idea di scrivere il codice con, che so, Writer, i doppi apici vi verranno automaticamente trasformati in virgolette e se proverete a copiare il codice con le virgolette al posto dei doppi apici in una pagina PHP, non vi funzionerà niente. E altra cosa importante, non dimenticate il punto e virgola alla fine. State bene attenti a non confondere apici e doppi apici tra di loro (per esempio non potete aprire un echo con un apice e chiuderlo con un doppio apice): sembrano banalità ma si possono trascorrere mezz’ore con complesse funzioni PHP che dànno errore per scoprire alla fine, dopo aver controllato ogni singola riga di complicatissimi cicli o blocchi di istruzioni, che è tutto causato da un echo chiuso male e a cui magari non si è neppure fatto caso. Eh, per il PHP ci vuole un po’ di pazienza. Tornando a noi, possiamo utilizzare echo anche per stampare tag HTML:

<?php

echo ‘<strong>Ciao</strong>, io mi chiamo <em>Federico</em>!<br />Come va?’;

?>

E possiamo concatenare più stringhe utilizzando, tra una stringa e l’altra (ognuna compresa tra apici o doppi apici), il punto e chiudendo il tutto, al solito, con il punto e virgola:

<?php

echo ‘Questa’. ‘ è una’. ‘ concatenazione ‘. ‘di stringhe!’;

?>

In questo caso però state attenti agli spazi se non vorrete vedere le parole tutteattaccatecosì. La concatenazione ci sarà molto utile in futuro per fare alcune operazioni, soprattutto quando vedremo come far interagire PHP e MySQL: quindi dobbiamo impararla bene. Infine impariamo a usare i commenti. Ci sono due modi per commentare in php: su una riga o su più righe. I commenti su una riga si aprono con un doppio slash:

<?php
// questo è un commento su una riga
?>

Mentre quelli multiriga si aprono con backslash e asterisco e si chiudono con asterisco e slash, proprio come i commenti CSS:

<?php

/* questo è un commento

multiriga */

?>

Non ci sono particolari raccomandazioni sull’uso dei commenti: dobbiamo solo stare attenti a dove metterli. Non possiamo per esempio metterli tra il comando echo e il doppio apice:

<?php

echo //questo è sbagliato e restituirà un errore “Ciao a tutti!”;

?>

I commenti, come nel caso di CSS, ci serviranno se vorremo descrivere alcune parti di codice a chi le leggerà, per esempio. Oppure per ricordarci che cosa fa una certa funzione. Insomma, ognuno fa dei commenti l’uso che più ritiene necessario! C’è anche chi non li utilizza, ma io consiglio sempre di usarli, perché quando avremo a che fare con funzioni molto complesse ci sarà utile commentare alcune righe per ricordare meglio certi passaggi. Per noi che siamo abituati a creare siti in HTML, i CSS sono una bellissima invenzione: con pochi clic possiamo cambiare grafica, colori, immagini di sfondo, ampiezza dei div al nostro sito. Sono un po’ come dei vestiti di sartoria che cuciamo su misura per il corpo della nostra pagina web. Ma ci sono punti a cui anche i CSS non possono arrivare, purtroppo. Supponiamo di aver creato un sito di cinquanta pagine, con un bel menù come questo:

<pre>

</pre>

Supponiamo anche che, per una qualsiasi ragione, dobbiamo modificare questo menù, magari aggiungendo una voce. Con HTML l’unico modo per aggiornare il menù è aprire tutte le nostre cinquanta pagine e in ognuna di esse aggiungere la voce mancante. Una bella seccatura, non c’è che dire. A questo punto entra in gioco uno dei costrutti più utili di PHP: si chiama include e serve, come dice il nome stesso, per “includere” in una pagina un file esterno. Ma vediamone subito l’utilizzo. Prima di tutto dobbiamo creare un nuovo file in cui inseriremo soltanto il menù: pertanto inseriremo nel nuovo file la ul e tutto il suo contenuto, ma non il div. Possiamo assegnare a questo nuovo file il suffisso txt o ancora meglio il suffisso html. Chiameremo quindi il file “menu.html”. A questo punto portiamoci nella pagina principale (per esempio, “index.php”) e, al posto della ul, utilizziamo il costrutto include, sempre aprendo il codice PHP come abbiamo imparato nel capitolo precedente:

<pre>

</pre>

Se aprirete la pagina, noterete che avrà un aspetto identico a quello della pagina creata solo con il codice HTML, perché questo costrutto non fa altro che inserire all’interno della pagina il contenuto di un file esterno. Osservando il codice avrete già intuito la sintassi del costrutto: include con, tra parentesi, il nome del file racchiuso tra doppi apici (o apici), il tutto chiuso da punto e virgola. In questo modo, ogni volta che dovremo modificare il menù, sarà sufficiente apportare le modifiche al solo file “menu.html” e automaticamente, se avremo utilizzato “include” in tutte le cinquanta pagine, le modifiche saranno estese a tutto il sito! Davvero una grande comodità! È inteso che il nome del file che includiamo tra parentesi e apici o doppi apici deve trovarsi nella stessa cartella del file principale. Altrimenti dovremo specificare il percorso nello stesso modo in cui specifichiamo i percorsi, per esempio, di file html con l’etichetta a, ma senza poter utilizzare percorsi completi (per esempio: http://www.miosito.com/includes/menu.html)… i percorsi devono sempre essere relativi:

<?php

include(“includes/menu.html”);

?>

<?php

include(“../menu.html”);

?>

Include è del tutto simile a echo, quindi anche se omettiamo le parentesi non succede niente di strano. Sappiate però che è indifferente usare o meno le parentesi. È però molto importante non sbagliare i percorsi: nel caso in cui non dovessimo specificare il percorso corretto, comparirebbe un warning nella nostra pagina, e sinceramente non sarebbe bello da vedere. E ovviamente il file che vogliamo includere non sarà affatto incluso se sbagliamo il percorso! Il costrutto include, come abbiamo visto, è anche sufficiente per creare il nostro primissimo sito in PHP e ci aiuta già a risolvere un grosso problema. A proposito: attenti a chiamare include “funzione” (cosa che avviene in moltissimi siti), perché non è una funzione. Lo so, vi starete ancora chiedendo cos’è una funzione. Tra non molto ci arriveremo! Per completezza dobbiamo sapere che esiste anche un altro costrutto per includere file esterni, che si chiama require e funziona allo stesso modo di include:

<?php

require(“menu.html”);

?>

Qual è la differenza tra include e require, dal momento che il risultato prodotto è lo stesso? La differenza sta nella gestione degli errori: come abbiamo visto, include, nel caso in cui ci sia qualcosa che non va (come il percorso sbagliato) restituisce un warning, ovvero una scritta che vi avverte dello sbaglio: questo però non impedisce che il resto della pagina si possa vedere correttamente. Require invece restituisce un fatal error: se c’è qualcosa che non va nel require, si blocca tutta la pagina. Vi invito a fare qualche prova con la vostra pagina “index.php” per notare la differenza, anche perché il PHP si impara, più che con la teoria, con la pratica e con l’esercizio!