Dati in rete Appunti
Web server Il termine web server indica in generale il software per la gestione di un computer host, o server di rete, basato sul protocollo HTTP (Hyper Text Transfer Protocol) Il web server per sistemi Windows è IIS (Internet Information Services)
Programmi di FTP Le pagine sono programmate in locale o poi si esegue l’upload sul server remoto con un programma di FTP (File Transfer Protocol)
Architettura WEB Un’architettura WEB è composta da due parti che interagiscono tra loro: il lato client (client-side) il lato server (server-side)
Programmazione WEB client-side Il linguaggio HTML e i linguaggi di scripting come JavaScript impongono alcune limitazioni alle applicazioni che si possono realizzare: per esempio non è possibile costruire un sito web che consenta all’utente di accedere ai dati contenuti in un database. Questi linguaggi svolgono quindi la loro funzione dal lato client di un’architettura web (client-side).
Richiesta di una pagina web Una pagina web prodotta con i marcatori HTML e i costrutti Javascript, rappresenta un file di testo che risiede sul server. Il browser richiede la pagina e ne riceve una copia
Programmazione WEB server-side Per interagire con i dati che si trovano su un server remoto, l’utente invia una richiesta di una pagina tipo aspx o php (e non html).
Pagine dinamiche La richiesta giunge al server che la elabora e produce una pagina HTML che viene costruita dinamicamente e inviata al browser che la visualizza NOTA: l’utente finale non vede il codice sorgente della pagina php o asp ma solo codice HTML
ASP.NET ASP.NET (Active Server Pages) per la rete (net) si legge asp dot net, è una tecnologia che consente di scrivere codice eseguibile (script) lato server, inserendo il codice all’interno di pagine web. Il codice è scritto in un linguaggio (Visual Basic, C#) basato sulla programmazione ad oggetti
Il linguaggio PHP Il PHP (acronimo ricorsivo di "PHP: Hypertext Preprocessor" è un linguaggio che estende le funzionalità del web server consentendo l’interpretazione di file .php contenenti il codice dell’ applicazione. L’interprete PHP viene aggiunto al web server come modulo esterno
Il linguaggio PHP (continua) Se il modulo PHP non è installato, il codice viene visualizzato così come è scritto L’inizio del blocco di codice contenente istruzioni in PHP è indicato con la sequenza <? php // elenco istruzioni in php ?>
Comportamento del server web Il codice contenuto nella pagina web viene interpretato dal server web per costruire dinamicamente la pagina da spedire al browser dell’utente. Quando viene richiesta una pagina .php il comportamento del server web è: leggere il file di testo riga per riga se trova i marcatori HTML li spedisce al browser; se trova i blocchi di codice PHP, ne esegue l’interpretazione e restituisce i risultati al browser.
Il browser riceve codice HTML La documentazione completa del linguaggio PHP è disponibile all’indirizzo www.php.net/docs/php Pagina con codice PHP Pagina ricevuta dal browser <HTML> :: <BODY> <? php // elenco istruzioni in php ?> </BODY> </HTML> <HTML> :: <BODY> Solo HTML </BODY> </HTML> Interprete PHP
Vantaggi di PHP I principali vantaggi di PHP sono i seguenti rende più veloce la creazione e lo sviluppo di applicazioni web facilita le fasi di manutenzione e di aggiornamento delle applicazioni i suoi script sono compatibili su diverse piattaforme include la possibilità di accedere a diversi database appartiene alla categoria di software libero e continuamente controllato e aggiornato
Variabili e operatori In PHP i nomi delle variabili sono preceduti dal simbolo del dollaro $. I nomi delle variabili sono case-sensitive Non è necessario dichiarare le variabili prima del loro utilizzo (Attenzione!) <?php $nome="Giacomo"; $eta=15; ?> <?php $prezzo=15.3; $titolo=‘Cuore’; ?>
Variabili stringa Esistono due modi per assegnare un valore alle variabili che memorizzano una stringa: racchiudendo il testo tra doppi apici " racchiudendo il testo tra apici singoli ’ Con il primo metodo, se all’interno ci sono altre variabili, queste vengono espanse nel loro valore. Con il secondo metodo ciò non avviene
Esempio uso di variabili stringa <?php $nome="Giacomo"; $saluto="Buongiorno $nome"; echo "$saluto <BR>"; // contiene Buongiorno Giacomo $saluto=‘Buongiorno $nome’; // contiene Buongiorno $nome echo "$saluto <BR>" ?>
Caratteri speciali: sequenze di escape Per aggiungere caratteri speciali al testo, occorre farli precedere dal bachslash Sequenze speciali Significato \n Ritorno a capo (newline) \t Tabulazione \\ Backslash \$ Simbolo del dollaro \r Ritorno del carrello \" Doppi apici \’ Apice \xHH HH ASCII esadecimale \000 000 ASCII ottale
Operatore di concatenazione Per concatenare due stringhe si usa come operatore il punto (.). Esempi con l’operatore di concatenazione <?php $nome="Giacomo"; $saluto="Buongiorno" . $nome; echo "$saluto <BR>"; // contiene Buongiorno Giacomo $somma=768; $messaggio=‘Totale = ’ . $somma; // contiene Totale = 768 echo "$messaggio <BR>" ?>
Operatori di assegnamento combinati Operatore Esempio Descrizione += $a += $b $a = $a + $b −= $a −= $b $a = $a − $b *= $a *= $b $a = $a * $b /= $a /= $b $a = $a / $b %= $a %= $b $a = $a % $b .= $a.=$b $a = $a . $b
Operatori di confronto Operatore Esempio Descrizione == $a == $b Vero se $a è uguale a $b != $a != $b Vero se $a è diverso da $b < $a < $b Vero se $a è minore di $b > $a > $b Vero se $a è maggiore di $b <= $a <= $b Vero se $a è minore o uguale a $b >= Vero se $a è maggiore o uguale a $b
Operatori logici Operatore Esempio Descrizione ! !$a Vero se $a è falso && $a && $b Vero se $a e $b sono veri || $a || $b Vero se $a o $b sono veri xor $a xor $b Vero se $a o $b hanno differenti valori di verità (Vero se uno solo dei due è vero)
Array In PHP un array è rappresentato da una variabile che contiene un insieme di valori identificati da un indice L’indice con cui si accede agli elementi di un array può essere un numero: array numerici una stringa: array associativi A differenza di altri linguaggi, un array in PHP può contenere dati di tipo diverso
Array numerici <?php $dati[0]="Mario"; $dati[1]="Rossi" ; $dati[2]= 32; $dati[3]= true; $dati[4]= null; ?> Un array numerico è indicizzato con un numero ma può contenere dati di qualunque tipo
Array associativi <?php $dati["Nome"]="Mario"; $dati[‘Cognome"]="Rossi" ; $dati["Eta"]= 32; $dati["Coniugato"]= true; $dati["Note"]= null; ?> La funzione count restituisce il numero di elementi dell’array La funzione var_dump visualizza tipi e valore di una variabile <?php echo count($dati); // Visualizza 5 echo var_dump($dati[1]); // Visualizza string(5) ?>
La struttura di selezione if If ( condizione ) { // istruzioni eseguite se condizione è vera } else { // istruzioni eseguite se condizione è falsa } Per costruire una condizione si possono adoperare gli operatori logici e di confronto If ( condizione1 ) { // istruzioni eseguite se condizione1 è vera } elseif ( condizione2 ) { // istruzioni eseguite se condizione2 è vera } else // istruzioni eseguite altrimenti }
Esempio di selezione if <?php If ( $eta >= 18) echo "la persona è maggiorenne"; else echo la persona è minorenne"; ?> Se il blocco di istruzione da eseguire è costituito da una sola istruzione, le parentesi graffe { } non sono necessarie.
La struttura while Le strutture di iterazione hanno il compito di ripetere l’esecuzione di un blocco di istruzioni un numero di volte specificato tramite una condizione La struttura while ha la seguente sintassi while ( condizione ) { // istruzioni eseguite mentre condizione è vera } Affinché il ciclo non sia infinito, le istruzioni all’interno (o qualche evento esterno) DEVONO modificare le varabili che determinano il valore di verità della condizione Il ciclo potrebbe anche non essere eseguito se la condizione risulta subito falsa (ciclo aperto).
Esempio while <!doctype html> <html> <head> <title> Media dei prezzi </title></head> <body> <?php> // Calcolo della media dei prezzi $prezzi = array (125.50, 62.00, 38.51, 97.24 ); $limite = count($pezzi); $i = 0; $somma = 0; while ( $i < $limite ) { $somma += $prezzi[$i]; $i++; } $media = $somma / $limite; echo "<h2>Media dei prezzi : " . $media . " </H2>" ?> </body> </html>
La struttura for Sintassi del comando for If ( inizializzazione; condizione; aggiornamento) { // istruzioni eseguite se condizione è vera } Al posto di inizializzazione vengono inserite le istruzioni da eseguire UNA SOLA VOLTA. Prima di ogni iterazione viene valutata la condizione che stabilisce se continuare o interrompere il ciclo. Al termine di ogni iterazione vengono eseguite le istruzione inserite nella parte aggiornamento.
Esempio for <!doctype html> <html> <head> <title> Media dei prezzi </title></head> <body> <?php> // Calcolo della media dei prezzi $prezzi = array (125.50, 62.00, 38.51, 97.24 ); $limite = count($pezzi); $i = 0; $somma = 0; for ( $i = 0; $i < $limite; $i++ ) $somma += $prezzi[$i]; } $media = $somma / $limite; echo "<H2>Media dei prezzi : " . $media . " </H2>" ?> </body> </html>
Interazione con l’utente Sappiamo che l’utente invia una richiesta al server che restituisce una pagina dinamica L’interazione avviene aggiungendo particolari informazioni alla richiesta di una pagina web attraverso i form del linguaggio HTML (moduli), che permettono la costruzione di un’interfaccia grafica, formata da caselle di testo e pulsanti
Esempio di un form Tramite questa interfaccia, l’utente inserisce i dati da inviare al server che li utilizza come parametri degli script. <form action = "cerca.php" method = "get"> Inserisci il testo <input type = "text" name = "parola" /> <input type = "submit" Value = "Cerca" /> </form>
Cosa succede dopo Quando si fa clic sul pulsante Cerca, il browser richiama lo script cerca.php indicato nell’intestazione del modulo. Il browser aggiunge automaticamente alla richiesta tutti i campi presenti nel modulo. Per ogni campo crea un parametro avente per nome il nome del campo indicato dall’attributo name del tag <input> e come valore ciò che l’utente ha inserito
I dati inviati <form action = "cerca.php" method = "get"> Inserisci il testo <input type = "text" name = "parola" /> <input type = "submit" Value = "Cerca" /> </form> Si preme il pulsante Cerca, il browser invia la richiesta per il file Cerca.php e aggiunge i parametri Valore parametro Italia Nome parametro parola Si richiede lo script cerca.php
I metodi di invio dei dati L’attributo method del form HTML ha il compito di indicare al browser la modalità di invio dei dati Le modalità a disposizione sono due nella modalità GET i parametri vengono codificati dal browser automaticamente all’interno dell’indirizzo e visualizzati insieme all’URL; la modalità POST viene usata per grandi quantità di dati in modo che non siano visibili all’utente.
$_GET e $_POST I parametri vengono passati allo script per mezzo dell’array associativo $_GET, nel caso del metodo get, oppure $_POST nel caso del metodo post. Nell’esempio della pagina cerca.php, il valore dell’attributo parola è accessibile nello script PHP tramite la variabile $_GET["parola"]