Il sito per imparare gratuitamente a fare pagine Web

Corso PHP














Questa guida non è stampabile per volontà del suo stesso autore Claudio Curci.



Guida PHP scritta da Claudio Curci - Aggiornamenti di Max Kiusso

lezione 1: introduzione al PHP


Sommario lezione

. Cos'è il PHP? A cosa serve?
. Esistono altri linguaggi simili a PHP?
. Cosa occorre per creare pagine PHP?
. Il mio primo script!



Cos'è PHP? A cosa serve?
PHP è un linguaggio di programmazione in modalitˆ scripting interpretato da un server. Credo che tutti conosciamo un linguaggio di scripting lato client come il Javascript.

Il javascript viene elaborato dal nostro browser (ecco perchè spesso una stessa istruzione può funzionare in modo diverso tra i vari browser); PHP viene invece elaborato da un motore (interprete) presente su un server web.

Quando andiamo sul nostro browser e digitiamo un indirizzo, del tipo "http://www.sito.com/maradona.html", il nostro browser esegue (passando per diversi nodi, ma questo è un altro discorso) una richiesta al server che ospita il sito "sito.com" e la pagina "maradona.html". Il server si limita a restituire il file. Se nella pagina esistono degli script javascript, sarà compito del nostro browser leggerli, interpretarli ed eseguirli mano mano.

Se invece richiediamo una pagina contenente PHP, il server interpreterà le istruzioni e soltanto dopo restituirà la pagina al nostro computer.

Cosa significa questo?
Riassumiamo in questa tabella le differenze tra un linguaggio di scripting interpretato dal client (javascript) ed uno interpretato dal server (PHP):

 JavascriptPHP
InterpreteLe istruzioni vengono lette ed interpretate dal browser dell'utenteIl webserver (solitamente Apache) ospita un "motore" che interpreta le istruzioni PHP e restituisce la pagina al client
Codice visibileIl codice, essendo interpretato dal browser, viene comunque scaricato sul computer dell'utenteIl codice PHP non viene mostrato ne restituito all'utente. Questi vedrˆ solo il codice HTML generato.
Possibilità interagire eventiPuò interagire su tutti gli eventi dell'utente (click, mouseOver, doubleClick, submit, select..)Essendo interpretato lato server, non è in grado di interagire con gli eventi del client. Una volta caricato il file, per eseguire una nuova istruzione PHP è necessaria una nuova richiesta al server (un reload o una nuova pagina)
Controllo campi formPermette di verificare che tutti i campi siano compilati prima che la form venga inviata; tuttavia è possibile disabilitare i javascript nel browser e tale controllo potrebbe rivelarsi inutileCome detto, PHP necessita di una nuova richiesta al server per eseguire operazioni. Per controllare i campi della form sarà quindi necessario l'invio del modulo. L'utente dovrà attendere il caricamento di una nuova pagina (in javascript invece il controllo è in "tempo reale"); tuttavia è un check più sicuro perchè via browser non è possibile disabilitare le istruzioni PHP.
Possibilità interagire file lato clientJavascript offre delle istruzioni per aprire e leggere file presenti sul client (solo sistemi Microsoft). Tuttavia sono comandi poco utilizzati, anche perchè richiedono l'autorizzazione dell'utente.PHP non offre alcun supporto alla lettura di file lato client. Consente tuttavia l'upload di file e gestisce anche sessioni FTP.
Possibilità interagire file lato serverRisiedendo sul client dell'utente, Javascript non può creare o cancellare file sul filesystem del server.E' possibile creare, modificare, eliminare, aprire, leggere file sul server.
Scambio dati con databaseNon offre alcun supporto ai database relazionali standard, ma a database locali al browser (solo HTML 5)Supporta i database più diffusi, compresi Access, Oracle, SQlserver ma sopratutto MySql e PostgreSQL (entrambi gratuiti e preinstallati in tutti i server Linux).

Come vedete dalla tabella, PHP e Javascript sono linguaggi complementari. Scordatevi, con PHP, di cambiare un'immagine al passaggio del mouse (il classico "mouseover" per i rollover) perchè PHP gira sul server, e non può sapere quando voi cliccate o passate il mouse in una determinata area; di contro, scordatevi con Javascript di interrogare un database remoto, eseguire un login di un utente e magari memorizzare la sessione...



Esistono altri linguaggi simili a PHP?

Di sicuro avrete sentito parlare di altri linguaggi di scripting utilizzati nel web: Asp, Cold Fusion, JSP..
Per quale motivo dovreste preferire PHP ad ASP, Cold Fusion o a JSP? In effetti PHP ed ASP servono più o meno alle stesse cose; ASP è preferito su ambienti Microsoft, PHP su UNIX/LINUX (attenzione: stiamo parlando dell'utilizzo lato server, potrete testare i vostri script php su un pc-windows senza problemi, come vedremo in seguito).

Tra i due, personalmente consiglio PHP perchè utilizza una sintassi C-LIKE, quindi simile al C, al C++, al Perl, al Java, al Javascript. Se già conoscete uno di questi linguaggi, PHP è una passeggiata. Se non li conoscete, grazie a PHP potrete apprenderli più facilmente. Niente male per il vostro curriculum.
ASP invece ha una sintassi più simile al Visual Basic.

Altra differenza: ASP è un linguaggio di Microsoft, PHP è open source. Sappiamo bene la differenza tra il dipendere dai capricci dell'uno e dalla competenza degli sviluppatori dell'altro no? (vedi Microsoft - Unix). In effetti, i dev PHP non stanno deludendo le attese visto che sono in cantiere progetti da brivido (tipo PHP-GTK, ovvero librerie che consento di creare applicazioni e finestre con PHP come se fosse un linguaggio di programmazione vero e proprio..)

Cold Fusion ve lo sconsiglio vivamente. Poco supportato in Italia, sia tra i provider che tra gli sviluppatori. MacroMedia, proprietaria del linguaggio, sbandiera spesso il fatto che per eseguire una query e mostrare i risultati bastano 6 righe di codice. A parte che in PHP ne servono poche di più, semplicità e potenza sono concetti che spesso si escludono a vicenda. E sul web non si fanno solo query... In ogni caso ricordate: in Italia lo usano in pochi, quando avrete un problema con uno script Cold Fusion non sarà facile trovare un forum o un newsgroup che se ne occupi e che vi fornisca un aiuto. PHP ed ASP hanno alle spalle una marea di programmatori e di script (e se parliamo di script intendiamo interi forum o portali, non solo banali istruzioni per stampare la data e l'ora a video) gratuiti...

Infine, le JSP, ovvero le Java Server Pages. Sono uno strumento potente, ma prima di usarle dovete aver dimestichezza con Java.



Cosa occorre per creare pagine PHP?
In sostanza due cose:

- un web server (ovvero il software che si occupa di gestire le connessioni e restituire le pagine interpretate), nel nostro caso Apache

- il "motore" che interpreta gli script PHP.

Per prima cosa occorre cercare un provider che ospiti le nostre pagine e che, ovviamente, supporti PHP.
Non tutti i provider supportano PHP, altri usano Asp, alcuni Cold Fusion.. informatevi prima.
Questo ovviamente nel caso in cui vogliate mettere online i vostri script; ma se voleste solo eseguire dei test e imparare PHP sul pc di casa?

La soluzione è installare il web server e il motore PHP in locale, proprio sul nostro computer.
Potete installare Apache e PHP sia su Linux (ambiente in cui sono nati) sia su Windows. Nei sistemi Linux/Unix sono pacchetti preinstallati, quindi di norma non serve fare operazioni particolari. L'installazione e la configurazione su sistemi Windows non è semplice, ma esistono dei pacchetti che con un semplice doppio click si occupano di tutto:

- EasyPHP

- XAMPP

Oltre ad installare il web server e configurarlo adeguatamente per il motore PHP, mette a nostra disposizione nientemeno che MySQl (si pronuncia "maisiquel", non fatevi sentire con il "maiesquel" tipico dei neofiti -tra un paio di lezioni non lo sarete più.. -), un database con il quale potremo interagire da subito.
Tutti questi prodotti (il web server, il motore PHP, il database) sono freeware quindi possiamo utilizzarli senza problemi (in barba al caro Access..)

Entrambi i software sono semplici da installare e configurare. XAMPP mette a disposizione anche degli esempi di codice per comprendere subito come funziona.
L'installazione di EasyPHP è immediata, il solito doppio click e seguiamo il wizard. Al termine, anche se non richiesto, riavviamo il sistema. A questo punto basta cliccare sulla "e" nella cartella dei programmi ed il web server è a nostra disposizione!
La configurazione è immediata, EasyPHP mette a disposizione poche opzioni nella schermata iniziale. Vediamo quali:

easyphp

Quando cliccate sulla "e" dovete attendere che i due semaforini in alto diventino verdi: vuol dire che è stato avviato sia il web server Apache, sia il database Mysql (quest'ultimo sarà oggetto di una lezione a parte, per ora non preoccupatevi di cosa significhi "avviare il demone Mysql").

Le altre opzioni che trovate sotto possono essere lasciate come in figura, volevo farvi notare la prima che vi consente di lanciare EasyPHP all'avvio di Windows (personalmente lo sconsiglio perchè rallenta il sistema ad ogni sessione, anche se avete acceso il computer soltanto per una partita a FreeCell).

A questo punto possiamo chiudere la finestra, una "e" lampeggiante vicino l'orologio di windows conferma che l'applicazione è in esecuzione, pronta a rispondere alle vostre richieste di connessione.


Il mio primo script!

Eseguiamo il nostro primo script che, come di rito è "Hello World!".
Per scrivere il codice possiamo usare un qualsiasi editor di testo: evitiamo di usare word processor, potrebbero inserire codice di controllo (nascosto) e quindi compromettere il nostro lavoro. Nelle prossime lezioni impareremo anche ad usare un editor PHP, che renderà più veloce il nostro lavoro. Per ora usiamo un editor testuale che abbiamo a disposizione nel nostro computer (come Notepad -win- o Text Edit -mac-), creiamo un nuovo documento e scriviamo il codice qui in basso.

Attenzione: a fianco del codice è stato inserito il numero della riga relativa. Questo per facilitare il commento successivo, ma ovviamente quando copiate questi script NON dovete inserire il numero d'inizio riga!

1 <html>
2 <head>
3 <title>il mio primo script</title>
4 </head>
5 <body>
6    <?php
7     echo "hello world";
8   ?>
9 </body>
10 </html>

Adesso salviamo il file creato chiamandolo "mio_primo_script.php".
Il nome del file ("mio_primo_script") può ovviamente essere qualsiasi, proprio come per una pagina html. Quello che è necessario è invece l'estensione: non salvate il file come "nomefile.html" ma come "nomefile.php".

Se il web server vede un file .html non andrà alla ricerca di codice php da interpretare, per cui quello che avete scritto verrà visualizzato sul browser come normale testo.
In realtà è possibile configurare il web server perchè ricerchi codice php anche in file con estensione diversa da .php (come .html), ma è sconsigliato perchè il sistema viene ovviamente appesantito.

WIN: Se state usando Notepad, attenzione a selezionare "tutti i file" dal menù "salva come:", altrimenti vi trovereste con un file del tipo "mio_primo_script.php.txt".

MAC: Se state usando Text Edit, in fase di salvataggio dovete selezionare come "Formato doc." la voce "Solo testo".

Altra cosa importante è dove salvare il file. Non potete salvarlo dove volete perchè va messo nella root del web server.

Precisamente, va salvato dentro la cartella WWW che trovate nella directory di EasyPHP o nella cartella HTTPDOCS che trovate nella directory di XAMPP.

Questo perchè il web server Apache è in ascolto sul suo sito locale, che punta a quella directory.

Per eseguire il file occorre aprire il proprio browser e digitare nella url http://localhost/mio_primo_script.php

Adesso dovrebbe essere visibile lo script interpretato: nella pagina bianca del browser dovrebbe apparire la scritta "hello world"!

Cosa è successo? Analizziamo il codice che abbiamo scritto. Le righe 1-5 e 9-10 non necessitano di commento, sono le classiche istruzioni base di una pagina html. Come vedete, PHP viene integrato in un normale file html.

Per far capire al web server che stiamo per scrivere delle istruzioni PHP, occorre usare due tag speciali: "<?php" (tag di apertura) e "?>" (tag di chiusura codice).

Tutte le istruzioni comprese tra questi due tag saranno considerate come script php. E' possibile inserire anche più istruzioni all'interno dei tag di apertura/chiusura codice, cosi come è possibile usare in più volte nella pagina script php.

La riga 7 contiene l'unica istruzione di questo file. Con echo richiamiamo una delle funzioni predefinite di PHP, che ha il compito di stampare a video una stringa. PHP offre al programmatore centinaia di funzioni predefinite, che vedremo mano mano nelle prossime lezioni e che potete trovare sul manuale in italiano.

La seconda parte dell'istruzione contiene la stringa da stampare, compresa tra i classici doppi apici (altrimenti PHP non potrebbe sapere quando inizia e quando finisce ciò che deve stampare).
Al termine della riga troviamo il punto e virgola di chiusura istruzione.
Ricordate: Ogni istruzione PHP deve sempre essere terminata con il punto e virgola.
Sotto questo aspetto, PHP è più rigido di Javascript, che interpreta correttamente le istruzioni anche se non viene messo il punto/virgola: viene considerato delimitatore di codice la fine riga. Se dimenticate anche un solo ";" al termine di una istruzione PHP, otterrete una pagina bianca con la descrizione dell'errore e (meno male!) la riga nella quale ricercare il problema.




Se avete domande potete scrivere sul forum di supporto, gratuito e aperto a tutti.



Claudio Curci e Max Kiusso per Web-Link.it