
Le nuove tecnologie web: leapplicazioni PHP/MySQL
Internet & siti dinamici1.0 è © 2003 di AngeloGagliani e di envolution.it. E’ doveroso pubblicare,distribuire, modificare e aggiornare questa dispensa secondo itermini della Free Documentation License, una particolare forma dilicenza che permette a tutti la libertà di copia e diredistribuzione del materiale, con o senza modifiche, a scopono-profit e consente agli autori e agli editori di esserericonosciuti per il proprio lavoro pur preservandoli dallaresponsabilità di modifiche successivamente apportate aitesti. In sostanza vuol dire che, se fate modifiche a questodocumento siete obbligati a distribuire con la stessa licenza ildocumento modificato.
La versione della licenza avente valore legale si trova sul sitoGNU http://www.gnu.org/copyleft/fdl.html.
In ogni caso sarebbe carino contattare l’autore se volestepubblicare l’opera o apportare modifiche. L’autore ècontattabile per posta elettronica all’indirizzocapra@envolution.it .
La filosofia della comunità GNU e Linux è quelladella collaborazione reciproca. Quindi, se pensate di poter/volercontribuire a questa dispensa aggiungendo sezioni e simili rimanendofedeli all’impostazione generale, fatevi avanti !
Lezione 1: Internet & sitidinamici
di Angelo Gagliani
Iniziamo a parlare di reti: le retisono più computer collegati tra loro che si scambianoinformazioni.
Una rete può essere locale (ilaboratori delle scuole) o remota (Internet).
In comune hanno la struttura:l'architettura client/server: in una rete ci sono computer chemettono a disposizione delle risorse (server) e computer chesfruttano queste risorse dei server (client). Così inun laboratorio scolastico di informatico, il computer a cui ècollegata l'unica stampante diventa un server di stampa, gli altricomputer che stampano in rete dei client. In remoto, il mio PC che sicollega via modem al Provider è un client, il Provider(tiscali, libero, tin, ecc) è un server: mi fornisce laconnettività ad Internet. Così il mio browser (tipoInternet Explorer) con cui chiedo di vedere un certo sito,scrivendone l'indirizzo nell'apposita barra è un programmaclient, il web server su cui si trova fisicamente memorizzata lapagina richiesta e che mi invia questa pagina è appunto un webserver. Il web server può essere il provider stesso, chequando facciamo l'account ci da anche un pò di spazio web peril nostro sito personale, oppure un hoster, cioè unserver che ci vende lo spazio che vogliamo, oppure, se abbiamo lalinea ADSL, possiamo essere noi stessi dei web server col nostrosito, lasciando il PC collegato 24/24 ore, tanto la tariffa èflat....
Lo scopo di una rete è appunto loscambio di informazioni, che in un PC hanno una loro strutturae si chiamano dati e che sono memorizzate in unitàlogiche detti file.
Come si scambiano i dati in una rete?Usando delle regole comuni, chiamati protocolli. Ne esistonodiversi, ognuno specializzato nel fare qualcosa e con proprie regole.Il principale protocollo usato in rete (sia Intranet che Internet) èHTTP (HyperText Transfer Protocol). Curioso il fatto che sianato solo nel 1991 e che oggi è per molti sinonimo di Interneto Web: gli indirizzi dei siti iniziano sempre con la sigla http://.
E' il protocollo di trasferimento degliipertesti, cioè pagine multimediali collegata nonsequenzialmente come i libri, ma tramite collegamenti (link).Queste pagine sono scritte in un linguaggio di marcatori nato appuntonel 1991 al Cern di Ginevra da Tim Berners Lee, detto HTML(HyperText Mark-up Language). Questi ipertesti si trovanomemorizzati sui dischi fissi di computer collegati a Internet 24 oresu 24, detti web server e noi da casa le possiamo vedererichiedendole con un programma apposito che è il browser.Quando digito l'URL (indirizzo di una pagina) nel mio browser, questofa la richiesta al web server per farsi spedire quella pagina. Il webserver me la manda nel formato HTML, che poi il mio browserinterpreta, cioè visualizza correttamente secondo i conmandiHTML, e così vedo quel sito o quell'altra pagina su Internet.
Altri protocolli importanti su Internetsono telnet (usato da banche, grandi aziende, biblioteche, ecc), POP3(regole della posta in arrivo), SMTP (posta in uscita) e, che ciinteressa ai nostri fini, l'FTP (File Transfer Protocol), leregole per il corretto scambio di files, di solito tra un computer eun web server: serve appunto a fare l'upload, cioèspedire le pagine sullo spazio web che ospita il nostro sito.
Siti statici: I siti sono insiemedi pagine ipertestuali scritte in HTML e collegate tramite link chesono accessibili su Internet. Un sito è statico se le paginesono quelle memorizzate e ognuno vede le stesse pagine, che sonosempre uguali, finchè non le modifico, reinviandole via FTPsul web server. Funzionano così:
chi fa il sito, crea le pagine sul suo PC tramite appositi programmi che scrivono l'HTML, detti web editor (come FrontPage, Dreamweaver, Namo, 1stPage, ecc); poi si trova chi ci da lo spazio su Internet per pubblicare le pagine (provider o hoster, gratuitamente o a pagamento), mi danno un URL (indirizzo su Internet) e un nome utente e una password per l'FTP per mettere queste pagine sul web server. Ciò viene fatto con un apposito programma FTP, come CuteFTP, WS_FTP, LeechFTP, ecc. Una volta sul server, queste pagine saranno accessibili a chiunque componga quell'URL. Se voglio modificare una pagina del sito, riapro il programma FTP, tolgo dal server quella pagina (download), la modifico sul mio computer e poi la rimetto via FTP sul server (upload). Pensate che fatica per un quotidiano on line tenere la propria rivista aggiornata....
chi visita il sito, apre il browser, scrive l'URL (http://www.nomesito.it) e invia la richiesta a quell'indirizzo per vedere quella pagina: il server risponde via HTTP e manda l'HTML di quella pagina: il mio browser la riceve, traduce l'HTML et voilà mi appare la pagina (magari lentamente così come arrivano le varie parti...).
I siti dinamici permettono unainterattività con l'utente limitataa poche possibilità: cliccare su un link, o inserire alcunidati che verranno mandati via posta elettronica al webmaster del sito(come nei moduli o form), ma niente più.
Siti dinamici:serve: il web server che capisca un linguaggio di scriptinge metta a disposizione un database.
web server: per ospitare un sito dinamico, deve avere le cosiddette estensioni (compilatori che eseguono i comandi del linguaggio di scripting) e mettere a disposizione un database, in cui verranno memorizzate tutti i dati del sito.
Script server side: sono file di comandi in un certo linguaggio di programmazione: es. Se Utente=”Tizio” allora restituisci (echo) una pagina HTML intestata ad utente=”Tizio”. L'HTML è embedded, cioè compreso nello script: sul server si trovano script in linguaggio che contengono l'HTML da inviare a seconda della richiesta specifica fatta dall'utente.
Database: è un archivio, un insieme di tabelle che contengono tutti i dati del sito: lo script prende i dati dal database, li inserisce nell'HTML e manda la pagina HTML creata ad hoc al browser dell'utente.
Cookie: è un piccolo file che il sito dinamico ci manda e che viene memorizzato sul nostro computer contenente alcuni dati per essere riconosciuti da quel sito, tipo il mio nome utente e la mia password su quel sito.
Browser -----> chiede una pagina inscripting (inserisco nome e password) ----> web server
lo script di quella pagina controlla suldatabase se utente e password sono corretti e allora manda HTML coidati del db
il server rimanda la pagina in HTMLcreata dallo script
|
| Sistema operativo | Web Server | Database | Script | Browser |
|---|---|---|---|---|---|
| Share | Windows | IIS | Access (.mdb) MS-SQL Server | ASP |
|
| Free | MacOS | Apache, Websphere |
| Servlet Java | IE, Opera |
| Open Source | Linux/Unix | Apache | Mysql, Postgrel, ecc. | PHP, Python, Perl | Mozilla, Netscape |
Questi programmi li troviamo si Internet e sonoscaricabili liberamente, oppure già configurati insieme perWin32 sotto il nome Easyphp, naturalmente open source.
Applicativi esaminati: sonosistemi, cioè insieme di programmi, che utilizzano latecnologia dinamica per offrire servizi particolari su Internet:
OSCommerce2.2-Tepitalia : http://www.opencommercio.com : per creare e-shops, siti e-commerce
eNvolution1.2 : http://www.envolution.it : un CMS italiano, sistema di gestione dei contenuti, detto comunemente portale o framework.
Spaghettilearning: http://www.spaghettilearning.com: sistema di e-learning tutto italiano.
Web: la ragnatela: comunemente l’insieme delle pagineweb o siti di Internet, composti da testi, immagini, filmati, suoni,animazioni, cioè multimediali. Ognuna di questepagine è scritta in un linguaggio, detto HTML, nato,pensate, a Ginevra nel 1991. Queste pagine che formano il sito nonsono sequenziali, come un libro, ma sono collegate tra loro tramitelink ( collegamenti ), e sono perciò detti ipertesti.Da qui deriva la sigla http (HyperText TransferProtocol) che troviamo sempre davanti al nome dei siti quando usiamoil web, cioè il più diffuso servizio di Internetinsieme alla posta elettronica, spesso considerato erroneamentesinonimo di Internet.
Server e client: server è ogni computer oprogramma della rete, collegato 24 ore al giorno, che ospita lepagine web e gli altri servizi Internet e li mette a disposizione deiclient; client è qualsiasi computer o programma che usai servizi del server: quindi siamo noi quando ci colleghiamo a talsito che si trova su tal server di Internet. Le pagine dei siti,scritte in HTML, si trovano sui server e noi per richiederlescriviamo l’URL ( = nome del sito, tipohttp://www.postnuke.it ) nelbrowser, cioè il programma tipo Internet Explorer,Netscape Navigator o Opera che colloquia col server e traduce leistruzioni HTML nella pagina che vediamo. Il browser sul nostrocomputer dunque traduce, si dice interpreta, le istruzioni HTML chearrivano dal web server.
Siti statici & dinamici: Per scrivere le pagine deisiti bisogna conoscere l’HTML oppure usare programmi detti webeditor, shareware, cioè a pagamento, tipo FrontPageo Dreamweaver, oppure freeware, gratuiti come NetscapeComposer o l’australiano Evrsoft 1stPage 2000 che permette inmodo abbastanza intuitivo di creare semplici pagine web, ma anche isiti più complessi. Una volta creato il sito sul nostrocomputer, si dice “in locale”, ed averlovisualizzato col nostro browser, bisogna metterlo su Internet (uppare ) usando un altro servizio di Internet, detto FTP,File Transfer Protocol, con appositi programmi FTP,( comeCuteFTP, WS_FTP ) anche gratuiti come il tedesco LeechFTP.Questi software trasferiscono le pagine da noi create dal nostrocomputer al server a cui abbiamo richiesto lo spazio web cheospiterà il nostro sito, che naturalmente può essere apagamento ( dai 100 euro in su all’anno) oppure gratuito,offerto da tiscali, tin, netcat, xoom, f2s, lycos, free.fr, ecc.
Ogni volta poi che vogliamo aggiungere o cambiare qualcosa alsito, dobbiamo riusare un programma FTP, scaricare ( downlodare ) lepagine dal server al nostro computer, riaprire il web editor, fare lemodiche, salvare, riaprire l’FTP e uppare di nuovo la paginasul server. Questa è la procedura per gestire un sitostatico.
Il sito dinamico invece ha una gestione piùsemplificata: una volta creato e uppato, viene gestito direttamentevia Browser, cioè senza downlodare e uppare continuamente lemodifiche e senza usare altri programmi oltre al solito browser (facile, eh ?). Tutto ciò però al costo inizialedi settimane di programmazione per creare il sito, con tanto dismanettamenti, notti in bianco e casse di Budweiser.
Ne sono esempio i siti delle testate dei giornali che devonoessere aggiornati anche più volte al giorno e così nondevono creare per ogni notizia una pagina ad hoc con tutti i link daaggiungere e modificare nelle pagine ( ricordate l’ipertesto?). Uno dei tanti programmi che crea automaticamente siti dinamici,anzi, portali dinamici ed è pure gratuito si chiamaEnvolution.
Scripting: qualsiasi codice di programmazione che svolgequalche particolare funzione all’interno del sito, p.e. chemostra una scritta scorrevole, o che fa cambiare colore a un bottonequando si passa sopra col mouse ( rollover ) o che controlla nome epassword inseriti dall’utente. Tutti questi eventi sono gestitidal programmino detto script, che può essere embedded,cioè incorporato nel codice HTML della pagina e perciòanch’esso interpretato dal nostro browser all’arrivodella pagina, come p.e. Javascript o l’identico Jscript dellaMicrosoft, oppure server side, lato server, lo script vieneeseguito quando la pagina si trova ancora sul server, cioèprima di essere inviata al nostro browser.
In quest’ultimo caso, guardando il codice HTML della paginache ci è arrivata, cliccando nel browser su Visualizza |HTML , non sarà visibile lo script, perché ègià stato eseguito sul server, anzi è proprio loscript che ha generato dinamicamente la pagina che noi abbiamorichiesto….
Insomma, ci sono delle tecnologie che a seconda dell’utenteche richiede un servizio e del tipo di servizio richiesto, si occupadi creare delle pagine ad hoc, personalizzate, aggiornabili via web.Naturalmente tutte le situazioni sono perfettamente previste, anziprogrammate con pagine e pagine di codice di scripting…Uno deiprimi e più veloci linguaggi di scripting è PHP,ossia Personal Home Page, nato proprio perquesto scopo, naturalmente gratuito e derivato dal C,linguaggio nato per programmare sistemi operativi come UNIX e Linux.Altre tecnologie server side sono il più versatile Perl,Python, sempre derivati dal C e gratuiti, ma più lenti, e ASP( Active Server Page ) della Microsoft, cheutilizza codice in VbScript, JScript o PerlScript, copie brevettateda Bill Gates di altri linguaggi, oltre a JSP ( Java ServerPage ) in Java, gratuito, e le CGI scritte in altri linguaggi,come C++ e Java. Anche qui il dualismo del mercato èsempre tra shareware vs. freeware, Microsoft vs. Linux e Sun. AltraBudweiser ? OK, andiamo avanti con i termini…
Database: è un insieme di archivi, di tabelle conrighe e colonne, dove vengono memorizzati i dati. Quali dati ? Tuttii dati contenuti nel nostro portale dinamico: i nomi e le passworddegli utenti registrati, le ultime notizie del giorno, i post (messaggi ) spediti dai visitatori ai forum tematici ( specie dipiazze virtuali, in cui si scambiano opinioni, consigli, notizie, howto,…), i programmi che si possono scaricare, ecc.,qualsiasi dato del portale viene inserito in un’appositatabella e memorizzato. PHPNuke durante l’installazione, cioèa portale vuoto, crea già 63 tabelle.
Per gestire le tabelle ( inserire, modificare e consultare i dati) serve il DBMS, un programma apposito. Il più usato suisistemi Microsoft è Access di Office, sui sistemi UNIXe Linux è MySQL, naturalmente il primo al costo diOffice Professional, il secondo gratuito. Envolution utilizza, mancoa dirlo, MySQL, ma ha anche i driver per la connessione a tutti imaggiori software di gestione dei datsabase ( Access, Borland, DB2,Oracle, Sybase, ecc.).
Web server: come già detto, il web server èquel computer della rete che ospita i siti, cioè contiene ildisco fisso dove si trova fisicamente memorizzato il nostro sito. Iserver hanno bisogno di un insieme di programmi che li faccianofunzionare, hanno bisogno cioè, come qualsiasi altro computer,di un sistema operativo, con programmi specifici da web serverper gestire gli accessi da altri server e dai client, con tanto diproblemi di sicurezza, ecc. Circa l’80% dei web server utilizzala piattaforma UNIX – Linux con server Apache ( 67%),iPlanet di Netscape ( 6% ), Zeus o WebSphere; il restante 20% èMicrosoft IIS. Apache, sviluppato da programmatori volontari, ècosì diffuso perché è gratuito, IIS invece èstato compreso in Windows 2000 e nel nuovo XP.
Dato che Microsoft è un sistema proprietario, cioèmolto integrato con le “proprie” applicazioni (c’èa proposito una causa in corso contro Bill Gates ), il server IIS èottimizzato per database Access e scripting in ASP o VisualBasic,mentre su piattaforme Linux, le più diffuse sulla rete, iserver Apache supportano database MySQL e scripting in PHP o Perl.
Cookies: i biscottini: sono dei piccoli file di testo,scaricati dal portale sul nostro computer, in cui vengono memorizzatii nostri movimenti sul sito e tutti i dati inseriti in esso. Usatiquasi sempre per scopi commerciali, nei portali sono inveceessenziali per riconoscere l’utente iscritto e perpersonalizzargli la pagina. Da accettare solo quelli provenienti dasiti considerati sicuri e affidabili. Molti siti permettono, p.e., dileggere la propria posta sul portale solo se si accetta il lorocookie.
Non è necessario accettarli in Envolution, perché sipuò entrare nel portale anche nel classico modo di inserirenome utente e password.
Free software e Open Source: Perchè esistonoprogrammi a pagamento e corrispondenti programmi gratuiti ? Perchéi primi programmi, in origine, erano sviluppati da Universitàe centri di ricerca, comunque enti pubblici o finanziati col denaropubblico. Poi, negli anni, l’aumentata complessitàdelle applicazioni e la necessità di automatizzare leinformazioni aziendali ha portato molti di questi ex studenti alavorare come programmatori e poi come sviluppatori per le aziende.Finchè negli anni ‘80 si è diffuso il personalcomputer e uno di questi ex, un certo Bill Gates, ha pensato bene disviluppare e di far pagare un sistema operativo per PC. Con ladiffusione poi di Internet e del web, servizio da sempre gratuito, unprofessore del MIT di Boston, Richard Stallman, ha lanciato laFree Software Foundation col progetto GNU, perdiffondere l’utilizzo e le conoscenze informatiche: visto chel’hardware bisognava comunque pagarlo, perché benemateriale, almeno i programmi dovevano essere gratuiti. Negli anni’90 Linus Thorwalds lancia il progetto Linux,cioè un sistema operativo gratuito con sorgenti di pubblicodominio, cioè migliorabili da chiunque, col vincolo di nonbrevettare, ma rendere pubblici i miglioramenti apportati. Cosìè nato Linux e la licenza open source, sviluppati da migliaiadi programmatori volontari e centri universitari. Anche molte grandicase hanno risposto all’appello di Stallman, Netscape e StarOffice prima, Java poi sempre della Sun Microsystem sono diventatiopen source, Dbase della Borland, poi sono nati PHP, Perl,Javascript, Python, MySQL; Gimp, il fenomeno Napster unica sconfitta,ma con tanti eredi… Oggi tutte le più grandi case, IBM,Compaq, Cisco, ecc. collaborano a migliorare Linux, molti entipubblici americani utilizzano Linux, l’IBM, le poste USA, leuniversità… noi italiani, invece, …..
Come faccio a procurarmi tutto ciò che mi serve ?Naturalmente dalla rete. I programmi sono liberamente scaricabili daInternet, velocità di connessione notturna permettendo.
E’ sufficiente il vostro Windows 9x/2000 o XP ( che avetedovuto acquistare col vostro computer con licenza OEM..) come sistemaoperativo.
Innanzitutto ci serve Apache, PHP e MySQL, che trovate insiemesotto il nome di Easyphp già configurati permacchine Win32 su www.easyphp.org, un prodotto francese integrato che nell’ultima versione 1.6non dà più l’errore per Windows 2000 e XP.Cliccate su Telechargements, selezionate Version couranteEasyphp1.6, grosso una decina di Mb, e salvatelo sul vostro discofisso dove volete.
Poi ci serve naturalmente Envolution 1.2,che trovate in versione per Win32 su www.envolution.itnella sezione downloads salvate sul vostro disco dove voleteil file.
Siamo pronti per le installazioni ?
Lanciate l’eseguibile easyphp1-6_setup.exe einstallatelo come un normale programma Windows. L’installazioneè in francese, ma è abbastanza intuitiva: dite OK atutto. Completata l’installazione, avviate Easyphp da “Menu Avvio | Programmi | Easyphp “ e apparirà unnuovo simbolo a forma di “e” in basso a destra suldesktop affianco all’orologio. Cliccate col destro su questaicona, scegliete “ Configurazione | Easyphp “.Nella finestra di configurazione che appare, spuntare la voce “Partenza automatica dei servers “ e l’ultima, cioè“ Controllo automatico delle modifiche “. Poi, nellasottostante casella di testo con la riga di comando di MySQL:Argomenti MySQL “—skip-name-resolve –skip-grant-tables–language=french “ , cancellare quel “french”finale e sostituirlo con “italian” .Cosìfaremo parlare italiano al nostro database. Cliccate su “ Apply“ e poi su “Close“. I server MySQL, PHPAdmine Apache sono stati installati. Facile, vero? Verifichiamolo inlocale : aprite il vostro browser, Internet Explorer o Netscape chesia, se parte la connessione, cliccate su “ Non in linea “e vi uscirà l’odiosa pagina di errore res, fregatevene.Digitate nella barra degli indirizzi l’URL della vostramacchina, cioè il vostro indirizzo, che è semprehttp://localhost oppurehttp://127.0.0.1 (non lo sapevate diavere un indirizzo ? ), Vedrete apparire la bellissima pagina dibenvenuto di Php, festeggiate con una Budweiser e provate le funzioniche avete appena installato cliccando sui vari link. Auguri e allasalute !
Ricordarsi che la cartella che dovrà contenere tutti i fileda pubblicare è “c/\programmi/easyphp/www”.Se controllate il suo contenuto con risorse del computer o GestioneRisorse, dovrebbe contenere solo un index.htm, che è lapagina di benvenuto del Php. Qui metteremo successivamente tutti ifile di Nuke per provare in locale se funziona! Da ricordare anchel’URL del PhpMyAdmin, che è http://localhost/mysql/raggiungibile anche cliccando sul pulsante PhpMyAdmin dellahome page del localhost.
Quando vi sarete divertiti abbastanza da veri programmatori serverside, possiamo iniziare a installare il nostro Envolution sulla suapiattaforma locale, cioè il nostro Pc/server di casa.