Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Internet è una rete internazionale formata dall’interconnessione di molte migliaia di reti di computer. La sua
storia inizia nel 1958 quando negli Stati Uniti venne creata, nell’ambito del Dipartimento della Difesa,
un’agenzia di nome DARPA (Defence Advanced Research Projects Agency).
I primi studi portarono alla definizione della rete “Arpanet” (acronimo di "Advanced Research Projects
Agency NETwork”, "Rete dell'Agenzia per i progetti di ricerca avanzati”). Questa rete può essere considerata
l’antenata di Internet:
Principali date:
Protocollo: procedure e regole da seguire nel trasmettere e ricevere dati su una rete in modo che gli utenti
possano usare i computer per scambiare informazioni in modo ordinato.
Tutti i protocolli di Internet sono gratuiti e aperti; il più importante è TCP/IP, basato sulla tecnologia a
commutazione di pacchetto.
Il protocollo TCP gestisce l’organizzazione dei dati e il controllo della trasmissione degli stessi, dividendo i dati
in tanti pacchetti più piccoli, che verranno poi ricomposti una volta giunti a destinazione. Per spostare i
pacchetti di dati, TCP ha bisogno del protocollo IP (se il pacchetto non viene ricevuto correttamente, si chiede
ritrasmissione). Il protocollo IP agisce al livello 3 della pila ISO/OSI e interconnette reti eterogenee per
tecnologia e prestazioni.
Un vantaggio che i pacchetti possano seguire percorsi differenti consiste nel fatto che non è necessario
conoscere il cammino da seguire: instradare correttamente i pacchetti è infatti compito del router.
Web: il World Wide Web (ragnatela estesa globale) è uno spazio definito all’interno di Internet, nato nel
CERN nel 1991 come sistema per semplificare lo scambio di informazioni all’interno del centro. Il metodo
usato si basava sul protocollo FTP.
Il 13 marzo 1989, Tim Berners Lee scrisse un documento dal titolo “Information Management: a Proposal”
che proponeva un’evoluzione del web basata su:
L’architettura risultante è client-server; gli utenti possono usufruire delle informazioni presenti in Internet
tramite i browser.
1991: il CERN rende Internet libero da ogni copyright. Nasce ufficialmente il World Wide Web.
1994: il CERN trasferisce il Web al W3C (World Wide Web Consortium) a cui partecipano il MIT e l’INRIA.
Microsoft diffuse il suo nuovo browser, Internet Explorer, che vinse la “guerra dei browser” contro il
programma della Netscape.
1998: Netscape rilascia il codice sorgente del suo programma; nasce il progetto Mozilla.
Ipertesti: nascono nel 1965 con l’idea di collegare molti elementi in relazione non lineare tra loro grazie agli
iperlink (riferimenti).
• Connessione.
• Richiesta documento.
• Risposta.
• Disconnessione.
Differenza tra processo e thread: un processo è un programma in esecuzione, un thread è un processo che
appartiene ad un programma o ad un altro processo.
Per interfacciarsi con un sito web, normalmente bisognerebbe conoscerne l’indirizzo IP (esempio: 10.5.5.32);
con il DNS, ogni host può essere composto da stringhe di caratteri.
Esempio: voglio collegarmi al sito web del MIUR (indirizzo IP: 89.97.132.214) ma non conosco il suo indirizzo
IP. Posso aprire un browser e digitare www.miur.it; sarà compito del DNS convertire quell’URL in
“89.97.132.214” e consentirmi di collegarmi al sito web desiderato.
• .com: organizzazioni commerciali.
• .edu: enti di ricerca e università.
• .gov: enti governativi.
• .int: organizzazioni sorte a seguito di trattati internazionali.
• .mil: enti militari.
• .net: enti di gestione della rete.
• .org: enti di volontariato o associazioni senza fini di lucro.
Il DNS è costituito da un sistema di archivi distribuiti nella rete e collegati tra loro: i name server.
FTP: è un protocollo per il trasferimento dei file; servono un client, un account e uno spazio web a cui si vuole
trasferire il file. Funzionalità aggiuntive dei Client FTP includono:
Compilatori: traducono il codice sorgente in moduli scritti in codice macchina; restituiscono quindi un
programma funzionalmente equivalente a quello dato.
Interpreti: traducono di volta in volta l’istruzione in esecuzione in linguaggio macchina; devono essere
sempre attivi durante l’esecuzione del programma applicativo. I comandi eseguiti da un interprete possono
essere sintattici (in base alla forma con cui sono scritti) o semantici (in base al significato del termine).
Sintassi di un linguaggio: insieme delle regole che concorrono a definire le frasi del linguaggio tra tutte le
stringhe di simboli possibili.
Grammatica: struttura algebrica che consente di generare tutte le frasi lecite di un linguaggio.
Correttezza: proprietà di cui gode un programma che termina e calcola esattamente la funzione che si voleva
calcolare.
Esistono errori semantici (analisi del problema e costruzione dell’algoritmo che lo risolve) e sintattici (codifica
in un preciso linguaggio di programmazione).
Il programma compilato ha una velocità di esecuzione maggiore di un programma interpretato, che a sua
volta è portatile.
HTML: non è un linguaggio di programmazione, ma è un linguaggio di formazione della pagina che sfrutta
particolari marcatori (tag) per identificare la struttura della pagina da visualizzare.
Bisogna distinguere il contenuto (HTML) dalla formattazione (CSS), in quanto il codice sarebbe meno leggibile
e meno modulare.
Immagini raster e immagini vettoriali: le raster hanno dimensione e risoluzione propria, quindi se zoomate
sgranano; le vettoriali sono definite attraverso equazioni matematiche, quindi possono essere ingrandite
all’infinito senza subire perdite di definizione.
<!doctype html>
<html lang=”it”>
<head>
<meta charset=”utf-8” />
<title>Hello world</title>
</head>
<body>
</body>
</html>
Per validare un sito web, si può usare il Markup Validation Service messo a disposizione dal W3C:
www.validator.w3.org .
Contenuti della pagina web: i tag si distinguono in elementi di blocco (block-level, provocano interruzioni di
paragrafo) ed elementi di linea (inline, si posizionano sulla stessa riga).
N.B.: i tag <tag /> non hanno bisogno del relativo tag di chiusura, in quanto terminano nelle parentesi
angolari. In più, non si ha distinzione tra maiuscole e minuscole: <BODY>, <body> e <BoDy> hanno lo stesso
significato.
• <hn>: con n da 1 a 6, definisce l’importanza e quindi la dimensione del carattere del titolo.
• <p>: inserisce un paragrafo con spaziatura prima e dopo.
• <hr />: horizontal rule, inserisce una linea orizzontale di separazione. Non serve un tag di chiusura.
• <ul>: unordered list, lista non ordinata di elementi.
• <ol>: ordered list, lista ordinata di elementi.
• <li>: list item, elementi della lista. È possibile creare elenchi complessi annidando <ul> e <ol>,
sfruttando gli attributi start e type.
• <table>: inizializza una tabella. L’attributo border=”1” definisce il numero di pixel (nell’esempio, 1)
che formano lo spessore della cella.
• <tr>: table row, riga della tabella.
• <td>: table data, cella all’interno della riga.
• <th>: table header, intestazioni nelle celle. È possibile, per <td> e <th>, definire gli attributi colspan
(numero di colonne occupate da una cella) e rowspan (numero di righe occupate da una cella).
• <dl>, <dt>, <dd>: liste a glossario.
• <div>: elemento di blocco multifunzione, è un contenitore generico. A differenza di <p>, non
presenta spaziatura con gli elementi subito precedente e subito successivo.
• <span>: contenitore generico di testo, è un elemento in linea e non di blocco.
• <center>: riga o paragrafo centrato.
• <a>: attachment, indica un link o un allegato la cui fonte è indicata nell’attributo href=”fonte”.
o <a href=”sito o path del file”>Parola chiave</a>.
▪ mailto:indirizzo@dominio.com
▪ tel://numeroditelefono
o title=”” definisce un tooltip che viene mostrato al passaggio del mouse sul link.
o target=”” definisce in quale finestra verrà aperta la pagina di destinazione.
▪ _blank: nuova finestra.
▪ _self: stessa finestra.
▪ _parent: nel frame di origine o di destinazione.
▪ _top: livello superiore.
I seguenti sono definiti tag stilistici, poiché conferiscono un minimo stile al sito web senza passare dal CSS.
Segnalibri: sono identificati dall’attributo id=”testo” e riconoscono univocamente un elemento nella pagina
web. Per riferirsi a un id (per rimandare a quella sezione del sito tramite il tag <a>) bisogna usare #testo.
<h1 id=”inizio”>Testo</h1>
…
<a href=”#inizio”>Torna all’inizio della pagina</a>
• < ➔ <
• > ➔ >
• & ➔ &
• € ➔ €
• è ➔ è
• È ➔ È
• à ➔ à
• Per i caratteri Unicode ➔ &#numerocodice;
• Il punto è virgola è fondamentale.
Fogli di stile CSS: Cascading Style Sheet, foglio di stile a cascata, definisce il controllo sulla visualizzazione della
pagina HTML e del suo layout (font, colori, allineamenti…).
CSS3: versione con cui nasce la possibilità di inserire maggiore stile, come i bordi arrotondati, le transizioni
eccetera.
• Fogli esterni (o collegati).
o <head>
<link href=”stile.css” rel=”stylesheet” type=”text/css” media=”screen” />
</head>
o A uno stesso sito si possono incorporare più fogli di stile, che agiranno in cascata (maggiore
priorità all’ultimo inserito).
o Possono essere utilizzati in più file html, essendo separati dal file su cui si sta lavorando (si
possono tranquillamente implementare con <link>).
• Fogli incorporati.
o Sono inseriti direttamente all’interno del tag <head> della pagina web.
o <html>
<head>
<STYLE TYPE=”text/css”>
H1 {
font-family: Arial;
font-size: 23px;
color: #0099CC
}
</STYLE>
</head>
…
</html>
• Fogli in linea.
o Si inseriscono direttamente all’interno di un tag per stilizzare solo quello, sfruttando
l’attributo style.
o <h1 style=”text-align: center; color: blue”>Hello world!</h1>
selettore {
proprietà: valore;
proprietà: valore;
proprietà: valore;
}
Un selettore può essere un tag html, una classe definita in class=”nomeclasse” o un id univoco definito in
id=”nomeid”.
tag {
proprietà: valore;
}
.nomeclasse {
proprietà: valore;
}
#nomeid {
proprietà: valore;
}
Il selettore universale è *.
*{
proprietà: valore;
}
Colori: si possono scrivere a lettere (se base) o in esadecimale (#000000 è nero, #FFFFFF è bianco).
Rosso: #FF0000
Verde: #00FF00
Blu: #0000FF
Uso delle classi nel CSS: creando il seguente codice nel file .css,
.bluetext {
color: blue;
text-align: center;
}
Tutti i tag html aventi class=”bluetext” avranno testo blu e centrato. La stessa logica si applica agli id
(#bluetext), che però contrassegnano un elemento univoco all’interno del file html. È possibile applicare più
classi a un tag html (<h1 class=”bluetext title big”>Hello world!</h1>, definendo poi tre stili diversi (.bluetext,
.title e .big).
Pseudo-classi: si usano per i collegamenti ipertestuali (link) e sono applicati solo se sono soddisfatte
determinate condizioni.
Selettore discendente:
#nomeid li {
display: inline;
}
Lo stile si applica solo agli elementi <li> presenti nel tag avente id=”nomeid”; i tag <li> fuori id=”nomeid” non
saranno considerati.
!important: è una dichiarazione che indica al browser che la regola deve essere applicata senza condizioni.
Va inserita all’interno della dichiarazione clear, prima della chiusura del punto e virgola.
#piede {
height: 40px;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
text-align: center;
line-height:1.4em;
display: block;
clear: both !important; //Il piede andrà posizionato senza elementi a destra o a sinistra
}
Layout: interfaccia grafica, modo in cui sono distribuiti i vari contenuti della pagina web. Nasce qui il web
semantico, che conferisce un miglioramento nella leggibilità del codice, maggiore facilità di modifica,
diminuzione degli errori e migliore indicizzazione da parte dei motori di ricerca.
Tag semantici:
Layout fisso e layout fluido: nel layout fisso ogni elemento ha una larghezza fissa, espressa in pixel; nel layout
fluido, la dimensione degli elementi è definita in percentuale, quindi il layout si adatta alla finestra del
browser occupandone tutto lo spazio.
JAVASCRIPT
Nel 1995 l’ing. Brendan Eich creò un linguaggio di scripting per il browser Netscape Navigator, basato su Java,
con nome in codice Mocha: Javascript.
L’inserimento di codice Javascript all’interno del codice HTML rende la pagina più “intelligente”, permette
cioè al browser di eseguire dei controlli e delle elaborazioni molto utili in locale senza bisogno di collegarsi al
server Web.
All’interno di una pagina Web si possono incorporare comandi organizzati in funzioni che vengono poi
interpretate ed eseguite dal browser al momento dell’apertura della pagina: i Javascript.
Javascript è un linguaggio interpretato (ogni comando viene eseguito passo passo direttamente dal browser),
lato client (per il lato server si usa PHP) e case sensitive (c’è distinzione tra maiuscola e minuscola).
Alcuni scopi degli script nelle pagine HTML sono:
• gestire gli eventi provocati dall’utente con il clic del mouse oppure a seguito della navigazione
all’interno di un sito.
• fornire messaggi di avvertimento o risposte circa le scelte effettuate.
• acquisire le scelte dell’utente e lanciare l’esecuzione dell’azione conseguente.
• controllare la validità dei dati inseriti in un modulo (form).
• apportare modifiche all’aspetto di una pagina Web durante la visualizzazione con il browser.
<script language=”javascript”>
function nomeFunzione(parametri) {
…
…
…
}
</script>
function scriviTesto(testo) {
document.getElementById("descrizione").innerHTML=testo;
}
Lo script è composto da una sola funzione, chiamata scriviTesto che, a sua volta, è formata da un solo
comando.
Sull’immagine viene ricreata la mappa immagine (area) che permette di individuare gli oggetti. Per
esempio, il tag che identifica l’oggetto è rappresentato dalla forma grafica (shape) di forma
poligonale (poly) con il codice suddetto. Quindi l’area è un poligono formato da segmenti consecutivi;
esso ha come vertici (80,0),(260,0),(260,200),(80,170); quando l’utente passa con il mouse sopra
l’area viene richiamata la funzione scriviTesto, alla quale viene passato il testo da visualizzare; se
l’utente fa clic viene rimandato alla pagina di cui è specificato l’URL.
Il linguaggio Javascript può essere usato per assegnare valori a variabili o eseguire calcoli; valgono tutti gli
operatori aritmetici, di confronto, logici e di assegnazione.
nomeVariabile = valore;
• If(condizione) {
istruzioni
} else {
istruzioni
}
• for(contatore=valoreIniziale; contatore<valoreFinale; incremento) {
istruzioni
}
• while(condizione) {
istruzioni
}
• switch (espressione) {
case valore1:
istruzioni1
break;
case valore2:
istruzioni2
break;
……
default:
istruzioni predefinite
}
Canvas: Il canvas è un elemento del linguaggio HTML che consente di tracciare linee, figure geometriche,
immagini e disegni all’interno di uno spazio in una pagina Web. In generale, in informatica, il termine canvas
(tela) indica una superficie su cui disegnare oggetti statici e dinamici. Le modalità di lavoro con i canvas sono
essenzialmente due: il tracciamento di forme e disegni con riempimenti, ombre e contorni secondo i
parametri definiti nel codice, oppure il “disegno a mano libera” direttamente sulla “tela” del canvas.
Alcuni tipi nel tag <input> in HTML prevedono una validazione implicita:
API: interfacce per la programmazione di un’applicazione; sono come piccole applicazioni autonome
all’interno della pagina web, che girano senza che il browser scarichi software aggiutivo. Le API mettono in
comunicazione due applicazioni in modo che si possano scambiare dati e ciascuna possa usare le funzionalità
dell’altra.
Cookie: biscotto, è un pacchetto di informazioni che viene salvato sul computer dell’utente. In successive
sessioni di collegamento a Internet (normalmente per un periodo di tempo limitato) il browser può accedere
ed utilizzare questi dati. Utilizzare i cookie permette a un sito di ricordare alcune informazioni dell’utente: in
alcuni casi può essere molto comodo (per esempio si evita che un utente debba inserire ogni volta il nome
utente e la password), ma può generare problemi di sicurezza.
In HTML5 la funzionalità di Webstorage permette di memorizzare dati in maniera simile ai cookie:
<script>
function controlli(video) {
var video = document.getElementById("Video1");
video.play();
video.pause();
video.currentTime = 0;
video.currentTime += value;
video.volume +=0.1;
}
</script>
Grafica vettoriale: come detto in precedenza, è indipendente dalla risoluzione ed è scalabile. Per tracciare
un’immagine in svg è necessario usare il tag <svg> (dove <canvas> si riferiva a immagini raster).
Geolocalizzazione: utilizzabile a partire da HTML5, dietro consenso da parte dell’utente, con i metodi
dell’oggetto navigator.geolocation:
Application cache: strumento per la creazione di applicazioni fruibili anche in assenza di una connessione a
internet; vengono stabiliti a priori i file che devono essere salvati sul computer in modo da permettere la
navigazione off-line.
Due funzioni utili in Javascript sono quelle per mostrare o nascondere un elemento (di cui viene passato l’id
quando si richiama la funzione, come parametro):
• function mostra(idOggetto) {
document.getElementById(idOggetto).style.display = 'block';
}
• function nascondi(idOggetto) {
document.getElementById(idOggetto).style.display = 'none';
}
XML
eXtensible Markup Language, è un linguaggio utilizzato per rappresentare, trasmettere e memorizzare dati
strutturati. Un dato strutturato, cioè un record, può essere visto come un insieme di dati semplici organizzati
secondo una struttura prefissata.
Il linguaggio XML è dunque un linguaggio di marcatura descrittiva, più espressivo e flessibile di HTML e
standard per lo scambio di informazioni semi-strutturate. Le informazioni possono essere fortemente
strutturate (classi Java), destrutturate (testo libero) o semi-strutturate.
SGML: Standard Generalized Markup Language, è il padre degli attuali linguaggi di marcatura. È un
metalinguaggio estremamente espressivo e configurabile ma non studiato espressamente per il Web, in
quando non gestisce i link e il conflitto sui nomi delle etichette. HTML è definito in termini di SGML.
Obiettivi di XML:
XML risponde al bisogno di rappresentare la struttura logica di un documento (per esempio la suddivisione
in titoli, capitoli, paragrafi, note, citazioni, ecc..): usa una marcatura descrittiva e non procedurale, dettata
dalla struttura logica del documento. Viene usato il concetto di tipo del documento specificato attraverso
una Document Type Definition (DTD), che specifica la struttura della marcatura ammessa.
In definitiva, XML è un linguaggio per scrivere dati, assegnando loro un significato (semantica) e
rappresentandoli tramite <tag>.
Ruolo del W3C (World Wide Web Consortium): ogni proposta subisce un processo di produzione:
• Working draft (WD): proposta su cui una sotto commissione sta lavorando.
• Proposed (PR) e Candidate Reccomendation (CR): proposta sostanzialmente completa e in attesa di
approvazione.
• Reccomendation (REC): proposta approvata, diventa uno standard.
XML descrive i dati e i loro attributi, organizzandoli in un normale file di testo; questa caratteristica rende la
rappresentazione dei dati indipendente dal dispositivo e dal sistema operativo utilizzati dall’utente finale.
Regole generali:
Un documento XML è composto da tre parti: un file XML che contiene i dati; un DTD che descrive la struttura
logica che devono rispettare i dati contenuti nel file XML (cioè quali sono i tag che posso utilizzare su quel
documento XML per considerarlo ben formato); un documento XSL (come si visualizzano i dati).
• Caratteri.
• Attributi.
• Entità.
• Sezioni CDATA (testo libero).
• Commenti.
• Istruzioni di processamento.
Le etichette devono essere annidate correttamente; tutti gli attributi vanno inseriti tra virgolette; le righe di
commento vanno delimitate da <!--Commento -->.
<?xml version=”1.0” encoding=”ISO-8859-1”?>: l’attributo version dichiara la versione del linguaggio XML
utilizzato; l’attributo encoding è opzionale e specifica il codice utilizzato per i caratteri (UTF-8, UTF-16, ISO-
8895-1).
Non ci sono regole predefinite per decidere quali dati è opportuno mantenere a sé stanti e quali definire
come attributi: la scelta può variare a seconda del tipo di dato trattato. In generale gli attributi vengono
utilizzati per i dati che possono identificare univocamente un record (come accade per le chiavi in un
database).
Il DTD è utile per definire la struttura dei dati prima di costruire il file XML; può essere inserito direttamente
all’interno del file XML oppure salvato con estensione .dtd e poi collegato al file XML.
<!DOCTYPE lista [
<!ELEMENT lista (sito+)>
<!ELEMENT sito (nome, URL, descrizione, categoria)>
<!ELEMENT nome (#PCDATA)>
<!ELEMENT URL (#PCDATA)>
<!ELEMENT descrizione (#PCDATA)>
<!ELEMENT categoria (#PCDATA)>
<!ATTLIST sito IDSito ID #REQUIRED>
]>
!DOCTYPE definisce l’oggetto lista, formato da vari !ELEMENT; “sito+” indica che possono comparire più
elementi “sito”, formati da quattro dati indicati con parentesi tonde. !ATTLIST definisce un attributo per
l’elementi sito, obbligatorio (#REQUIRED).
XML Schema: Gli schemi XML (in inglese, XML Schema) rappresentano una diversa modalità di definizione
della struttura di un documento XML, in alternativa alla definizione del tipo di documento DTD.
Lo schema XML ha estensione .xsd (XML Schema Definition) e i tag sono caratterizzati da “xs:”
<xs:sequence> </xs:sequence>
<xs:element> </xs:element>
Il tag principale è <xs:schema> </xs:schema>, che possiede un attributo xlmns (XML namespace) che dichiara
il namespace (spazio dei nomi) che si intende usare.
XSL: eXtensible Stylesheet Language, descrive le modalità di visualizzazione dei dati, quindi il foglio di stile,
secondo la sintassi XML.
• XSLT (XSL Trasformation): trasformare XML in HTML, RTF o PDF; può agire lato server (PHP) o lato
client (se il browser supporta questa funzionalità).
• Xpath: accedere e navigare nel documento; inserite nel tag <xsl:for-each select=”…”>.
Controlli XSL:
• <xsl:if> permette di controllare se gli elementi verificano una condizione
• <xsl:choose>, <xsl:when>, <xsl:otherwise> per la selezione binaria
• <xsl:sort> per ordinare gli elementi selezionati
RSS: Really Simple Syndication, tecnologia standard per la distribuzione di contenuti Web basata sul
linguaggio XML.
PHP
Hypertext Preprocessor, preprocessore di ipertesti; è un software che può essere liberamente installato e
utilizzato.
<?php
// Elenco di istruzioni in PHP
?>
Agisce nella programmazione lato server (dove HTML e Javascript agiscono lato client): un browser Web
visualizza il file HTML in una finestra, interpretando i tag e le istruzioni Javascript. Per poter interagire invece
con i dati che si trovano sul server remoto, si devono utilizzare altre tecnologie che effettuino le operazioni
dal lato server, cioè occorre usare gli strumenti serverside.
PHP è un linguaggio che estende le funzionalità del Web server consentendo l’interpretazione di file con
estensione .php contenenti il codice dell’applicazione. L’interprete PHP viene aggiunto al server Web come
un modulo esterno. In questo modo le funzionalità del server Web sono ampliate: oltre ai file con estensione
.html può gestire file che hanno estensione .php. Questo nuovo tipo di file contiene, oltre ai marcatori HTML,
anche il codice del linguaggio PHP.
Quando il client richiede una pagina con estensione .php, il server Web non spedisce al browser direttamente
il file; prima interpreta le istruzioni scritte in PHP, recupera gli eventuali dati richiesti prelevandoli dai file o
dai database del server e in seguito restituisce una pagina Web visualizzabile dal browser. Poiché questa
pagina è costruita al momento della richiesta, si chiama pagina dinamica oppure pagina Web lato server.
Il linguaggio di scripting PHP consente di includere piccoli programmi (script) all’interno delle pagine Web
dove sono presenti i marcatori (tag) del linguaggio HTML.
Variabili: identificate da un nome preceduto dal dollaro $; sono case sensitive e implicitamente dichiarate in
base ai valori loro assegnati.
<?php
$eta = 19; // contiene un intero
$titolo = "I promessi sposi "; // contiene una stringa
$prezzo= 31.2; // contiene un floating point
?>
Il testo può essere racchiuso tra doppi apici (le variabili all’interno vengono espanse nel loro valore) o tra
apici singoli (le variabili all’interno non vengono espanse). Il punto è un operatore di concatenazione.
<?php
$nome = "Giovanni";
$saluto = "Buongiorno $nome"; // contiene: Buongiorno Giovanni
echo "$saluto <br />";
$saluto = 'Buongiorno $nome'; // contiene: Buongiorno $nome
echo "$saluto <br />";
$saluto = "Buongiorno " . $nome; // contiene: Buongiorno Giovanni
?>
Strutture di controllo:
• If (condizione) {
// Istruzioni condizione vera
} else {
// Istruzioni condizione falsa
}
• while ( condizione ) {
// istruzioni eseguite mentre condizione si mantiene vera
}
• for( inizializzazione; condizione; aggiornamento ) {
// istruzioni eseguite se condizione è vera
}
Variabili predefinite: sono dette superglobals, scritte tutte in maiuscolo e sono raggruppate in array
associativi.
Le informazioni che si ricavano dalle seguenti superglobals sono conservate nei file di log:
MySQL: sistema di gestione di basi di dati con accesso tramite comandi SQL. In un sito Web dinamico i dati
risiedono in un database sul server gestito da MySQL e, ogni volta che un utente ne fa richiesta, questi dati
vengono recuperati e mostrati nelle pagine Web realizzate sul server tramite i marcatori (tag) del linguaggio
HTML e inviate al browser dell’utente client. Le due parti dell’applicazione Web, lato server e lato client, si
collegano usando gli script in linguaggio PHP che svolgono i seguenti compiti: connessione al DB MySQL, invio
dei comandi SQL e acquisizione delle risposte; scrittura dei dati ricevuti dal DB all’interno delle pagine Web
in formato HTML in modo che siano interpretate dal browser dell’utente.
1. Il browser Web esegue una richiesta di una pagina Web in formato PHP.
2. Il server Web riconosce che la richiesta fa riferimento a un file con estensione .php e quindi attiva
l’interprete PHP per eseguire gli script in esso contenuti.
3. Lo script PHP contiene i comandi per collegarsi al database MySQL e inviare le richieste tramite i
comandi SQL.
4. Il server MySQL risponde restituendo i dati richiesti.
5. Lo script PHP scrive questi dati all’interno di una pagina Web e la restituisce al server Web.
6. Il server Web invia al browser dell’utente la pagina richiesta in formato HTML, generata in modo
dinamico dallo script PHP.
PHP fin dalla sua nascita ha per default operato con il DBMS MySQL prima ancora che questo prodotto fosse
acquisito da Oracle. Attualmente viene spesso “pacchettizzato” con altro software open source, tra cui
MariaDB, un DBMS open, clone di MySQL. PHP non ha di norma necessità di alcuna specifica installazione
aggiuntiva per operare con MySQL, in quanto la possibilità di connettersi e di operare con esso è
implementata di default. In PHP esistono una serie di funzioni atte a svolgere tale compito riconoscibili dal
prefisso mysql; nella nuova versione 7 di PHP il supporto a tali funzioni ha cessato di esistere ed in tale
versione sono supportate solo le nuove funzioni mysqli.
L’utente root è il superutente di MySQL, ossia quello al quale sono possibili tutte le operazioni.
• PHP non è adeguatamente configurato (ad esempio l’estensione per gestire MySQL è stata
disabilitata in php.ini).
• Il server MySQL al quale stiamo tentando di connetterci è spento.
• L’intera macchina a cui ci si sta tentando di connettere è spenta.
• L’utente specificato nel comando non esiste nel sistema MySQL.
<?php
$host= “localhost”;
$username=“root”;
$password=“root”;
$db_nome=“db1”;
$tab_nome=“utenti”;
// connessione al server
mysql_connect($host, $username, $password) or die(‘Impossibile connettersi al server: ‘ .
mysql_error());
// accesso al database
mysql_select_db($db_nome) or die (‘Accesso al database non riuscito: ‘ . mysql_error());
// lettura dei dati dalla tabella
$sql = “SELECT * FROM $tab_nome”;
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
echo $row[‘cognome’] . “ “ . $row[‘nome’] . “ “ . $row[‘provincia’];
echo “<br />
}
?>
AJAX: Asynchronous Javascript And XML; tecnologia basata sull’interazione asincrona tra web client e web
server. Il web client (browser) effettua una richiesta al server ma, a differenza delle altre forme di interazione
previste, non si interrompe fino all’arrivo della risposta (response) da parte del server.
Tecnologia sincrona:
1. L’utente scrive un indirizzo Web nella casella del browser oppure fa clic su un link all’interno della
pagina Web.
2. Il browser invia una richiesta al server Web.
3. Il server elabora una risposta e la restituisce al client.
4. Il browser visualizza la risposta ricaricando tutta la pagina.
Tecnologia asincrona:
XML Http Request Object (XHR) è l’oggetto che permette la comunicazione asincrona tra client e server; non
è un oggetto standard del DOM W3C ma è standard WHATWG (Web Hypertext Application Technology
Working Group) ed è attualmente supportato da tutti i browser.
Attributi di XHR:
• readyState: 1 = Open; 2 = Sent; 3 = Received; 4 = Loaded.
• Status: 200 = ok; 404 = page not found
• statusText: Contiene l’etichetta dello status.
• responseXML: Contiene il documento XML caricato (oggetto XML document). È significativo solo se
readyState = 4, altrimenti è null.
• Onreadystatechange: Funzione invocata quando cambia l’attributo readyState.
• responseText: Contiene i dati caricati (stringa di caratteri). Assume il suo valore finale quando
readyState diventa uguale a 4.