Open Italia Network
Open Italia Network

Home page

A. Gagliani
capra@openitalia.net
http://www.openitalia.net
          

Le nuove tecnologie web: leapplicazioni PHP/MySQL

Licenza

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 e siti dinamici

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 e dinamici: applicativi esaminati

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ì:

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.



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



Programmi necessari:

     
     
     
     
     
     
     
          
               
               
               
               
               
               
                    
          
               
               
               
               
               
               
                    
               
               
               
               
               
               
                    
               
               
               
               
               
               
               
                    


                    

               
                    

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

               



Naturalmente per i nostri scopi useremo programmiOpen Source (software libero): web server Apache + script in PHP +database MySQL.

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:




Un pò di teoria

Riepiloghiamo: Un po’ di teoria su Internet

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, …..




Cosa ci serve? Apache + Mysql + PHP

Cosa ci serve e come si usa

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.



2003 ©  Open Italia Network
http://www.openitalia.net/CMpro-v-p-159.html