Introduzione allo sviluppo Web. Studium Generale, a.a. 2013-2014, II semestre

Documenti analoghi
Introduzione allo sviluppo Web. Studium Generale, a.a , II semestre

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work

<?php include './include/page.php';

Introduzione allo sviluppo Web. Studium Generale, a.a , II semestre

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1

UTILIZZO DEI COOKIES (informativa conforme al Provvedimento del Garante Privacy del 8 Maggio 2014)

creare la tua vetrina MMSHOPS

La pagina Web modulo.html utilizza le specifiche di stile descritte nel foglio feedback.css.

Richiesta pagina PHP (es: index.php)

PHP e Structured Query Language

ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma

ammesso solo con il tuo consenso. Le modifiche apportate hanno lo scopo di semplificare il controllo di quali

Laboratorio di Informatica


Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

ISCRIZIONE GARE NUOTO ON LINE ISTRUZIONI OPERATIVE PER LE SOCIETA

GUIDA ALLE FUNZIONI DELL AREA RISERVATA DEL SITO

Gestire le sessioni con le Servlet

Bibliografia: Utenti e sessioni

Questo sito internet fa uso di cookie, al fine di rendere i propri servizi il più possibile efficienti e semplici da utilizzare.

Introduzione al MATLAB c Parte 2

informazioni che si può leggere bene, chiaro con caratteri di scrittura simile a quelli usati nella stampa, ma scritti a mano chi riceve una lettera

19. LA PROGRAMMAZIONE LATO SERVER

istruzioni per l uso

Guida utente alla compilazione delle richieste di contributo on-line per le Associazioni dei Consumatori

Marketing di Successo per Operatori Olistici

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Introduzione a Dev-C++

Stampa unione - prof. Enzo Mardegan - 2

Tener traccia del client

INTERNET EXPLORER Guida introduttiva CAPITOLO 1 Fig. 1

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Manuale Amministratore bloodmanagement.it

GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB

File, Modifica, Visualizza, Strumenti, Messaggio

Guida informatica per l associazione #IDEA

CONTENUTI 1. INTRODUZIONE CONCETTI BASICI SU EQUINOX CMS XPRESS ACCESSO A EQUINOX CMS XPRESS PAGINA D INIZIO...

COME CREARE UN SONDAGGIO CON SCELTA SU MOODLE

Impara a usare Microsoft DCCN in quattro semplici passaggi. Iscriversi al servizio è un operazione veramente semplice e richiede pochi minuti:

MODULO 5 ACCESS Basi di dati. Lezione 4

MANUALE BREVE PER IL DOCENTE TUTOR

Crea questionari on-line, test e quiz in pochi minuti!

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

NOZIONI BASE SHELL E SCRIPT LINUX

Guida all utilizzo del forum di direzionebandacs.altervista.org

lettera raccomandata. Ecco alcune parole ed espressioni che possono aiutarti a capire meglio il testo.

GUIDA AI PROBLEMI DI ACCESSO E VISUALIZZAZIONE

PRIMO PASSO: entrare nel sito web.spaggiari.eu

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

ISTR- XX Uso del Blog

Cimini Simonelli - Testa

Configurazione di un nuovo account di posta in Outlook Express

Leggere un messaggio. Copyright 2009 Apogeo

Cerca Compra Vendi. Guida passo per passo all utilizzo del sito

MANUALE TECNICO n AGGIORNATO AL INSTALLAZIONE ACCESSO SERVER FARM SU WINDOWS 7

ISTRUZIONI PER LA CORRETTA REGISTRAZIONE AL SITO PER POTER ACCEDERE ALL'AREA PRIVATA

ISSA EUROPE PTSOFTWARE 2.0

INFORMATIVA SUI COOKIE

ARCHIVIA PLUS - ARCHIFILE

Opuscolo Outlook Express

Centro Iniziative Sociali Municipio III

Guida all uso di Java Diagrammi ER

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Appendice 1 : configurazione di alcuni Client di Posta (P.Restelli) Rho, Luglio 07, 2006 CORSI ON-LINE. La nuova Posta Elettronica IMAP del C.S.B.N.O.

Primi passi in Moodle

Piccola premessa. Ma ora passiamo subito al dunque e leggete le prime lezioni.

Guida alla gestione dei Verbali d esame online

Interfaccia di base di GroupWise WebAccess

FUNZIONALITA AREA RISERVATA - Prenotazione Ricoveri, visite e esami in convenzione

Cookie Policy per

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Lezione 6: Form 27/04/2012

Come installare un nuovo account di posta elettronica in Outlook 2010

AREA RISERVATA tamoil.it

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

Guida all uso del portale per il software Bilancio di previsione 2012

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Come utilizzare il nuovo HelpDesk Maggioli Informatica

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Giovedì, 27 ottobre 2005 Workshop per le società di ricerca e selezione c/o Agenzia Regionale per il Lavoro Lombardia: Come pubblicare domande -

Come leggere la posta con il programma Windows Mail (Windows Vista) Come leggere la posta con il programma Outlook Express (Windows XP / 2000)

Manuale Utente Albo Pretorio GA

Form Editor. Dove NomeProfilo è personalizzabile.

Introduzione allo sviluppo Web. Studium Generale, a.a , II semestre

Modulo 7 Reti informatiche

Selezionando la sezione Avviso Bonario, si apre la schermata seguente:

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla!

FISH Sardegna ONLUS. Manuale Utente.

I Servizi self-service: procedura per la compilazione del modello 730-1

Dott.ssa Adriana Pietramala

4.1 FAX Sollecito consegne via (Nuova funzione)

CERTIFICATI DIGITALI. Manuale Utente

APP - myavsalarm ABC - INSTALLATORE

Sicurezza delle applicazioni web: protocollo HTTP

MODALITÀ DI ACCESSO ALLA CASELLA DI POSTA ELETTRONICA CERTIFICATA

Transcript:

Introduzione allo sviluppo Web Studium Generale, a.a. 2013-2014, II semestre 1

Contatto Daniel Graziotin daniel.graziotin@unibz.it http://ineed.coffee/teaching/introdu zione-allo-sviluppo-web 2

Esame Esame ufficiale Giovedì 26 Giugno, 17-19 E231 Invio progetti: Venerdì 20 Giugno, mezzanotte daniel.graziotin@unibz.it 3

Esame Formato Archivio (es:.zip) del sito Estratto nella root / del mio webserver Autocontenuto (no file esterni) NON date per scontato che si chiami localhost 4

I Form Moduli standard per passare informazioni dall utente al sito sul server Classici Form: Login e password Campo "Cerca" su un sito o su Google "A cosa stai pensando?" di Facebook Un sondaggio online 5

I Form In HTML, un form si crea con <form method="metodo" action="pagina-destinazione"> Serie di campi di testo, aree di testo, radio, checkbox <input type="submit" value="invia" /> </form> 6

I Form Guardiamo il file andata.php <form method="get" action="/ritorno.php"> Nome <input type="text" name="nome" /> Cognome <input type="text" name="cognome" /> E-mail <input type="text" name="email" /> Frase segreta <input type="password" name="password" /> Commenti <textarea name="commento"></textarea> <br/> <br/> <br/> <br/> <br/> </form> <input type="submit" value="invia" /> 7

I Form andata.php Aggiungiamo il seguente campo legato all etá Età <input type="text" name= "$eta" /> <br/> 8

I Form Guardiamo il file andata.php <form method="get" action="/ritorno.php"> Nome <input type="text" name="nome" /> Cognome <input type="text" name="cognome" /> Età <input type="text" name= "$eta" /> E-mail <input type="text" name="email" /> Frase segreta <input type="password" name="password" /> Commenti <textarea name="commento"></textarea> <br/> <br/> <br/> <br/> <br/> <br/> <input type="submit" value="invia" /> </form> 9

I Form Andiamo su http://localhost/andata.php Compiliamo il form con dei dati a caso e premiamo Invia 10

I Form Cosa succede? 11

I Form Guardiamo la barra degli indirizzi del browser 12

I Form http://localhost/ritorno.php?nome=daniel&cognome= Graziotin&eta=27&email=daniel%40ineed.coffee&pass word=lamiapassword&commento=che+bel+sito 13

I Form - GET GET /ritorno.php?nome=daniel&cognome=graziotin&eta=2 7&email=daniel%40ineed.coffee&password=LaMiaPas sword&commento=che+bel+sito HTTP/1.1 Accept-Language: en-gb,en;q=0.8,en- US;q=0.6,it;q=0.4,de;q=0.2 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1978.0 Safari/537.36 14

I Form - GET http://localhost/ritorno.php?nome=daniel&cognome= Graziotin&eta=27&email=daniel%40ineed.coffee&pass word=lamiapassword&commento=che+bel+sito Sezioniamo la richiesta HTTP GET 15

I Form - GET http://localhost/ritorno.php?nome=daniel&cognome=graziotin &eta=27&email=daniel%40ineed.coffee&password=lamiapass word&commento=che+bel+sito http://localhost/ritorno.php? nome = Daniel & cognome = Graziotin & $eta = 27 & email = daniel%40ineed.coffee & password = LaMiaPassword & commento = Che + bel + sito 16

I Form - GET method = "GET" action="/ritorno.php" name = "nome" name = "cognome" name = "$eta" name = "email" name = "password" name = "commento" http://localhost/ritorno.php? nome = Daniel & cognome = Graziotin & $eta = 27 & email = daniel%40ineed.coffee & password = LaMiaPassword & commento = Che + bel + sito 17

I Form - GET? Indica l inizio dei parametri I parametri sono coppia nome = valore & separa i parametri e loro valori (dal 2 in poi) %40 rappresenta @ + simboleggia lo spazio http://localhost/ritorno.php? nome = Daniel & cognome = Graziotin & $eta = 27 & email = daniel%40ineed.coffee & password = LaMiaPassword & commento = Che + bel + sito 18

I Form - GET %40 rappresenta @ + simboleggia lo spazio (una volta era %20) http://en.wikipedia.org/wiki/percentencoding http://localhost/ritorno.php? nome = Daniel & cognome = Graziotin & email = daniel%40ineed.coffee & password = LaMiaPassword & commento = Che + bel + sito 19

I Form - GET PHP analizza la richiesta HTTP GET "http://localhost/ritorno.php?nome=daniel&cognome=graziotin&eta=27&e mail=daniel%40ineed.coffee&password=lamiapassword&commento=che+b el+sito" Scompatta la richiesta (è una stringa alla fine) Crea un array associativo ($array["chiave"] = valore) chiamato $_GET (importante il trattino basso) 20

I Form - GET Guardiamo ritorno.php $dati = $_GET; print_r($dati); // equivalente a print_r($_get); 21

I Form - GET ritorno.php $dati = $_GET; //print_r($dati); // equivalente a print_r($_get); $nome = $dati["nome"]; echo "Il tuo nome è ".$nome; // o $dati["nome"] o $_GET["nome"] 22

I Form - GET ritorno.php $dati = $_GET; $nome = $dati["nome"]; $cognome = $dati["cognome"]; $eta= $dati["$eta"]; $email = $dati["email"]; $password = $dati["password"]; $commento = $dati["commento"]; 23

I Form - GET ritorno.php echo "<p>il tuo nome è ".$nome. ", il tuo cognome è ".$cognome. "</p>"; echo "<p>la tua e-mail è ".$email. " e la tua password è ".$password. "</p>"; echo "<p>hai lasciato il seguente commento: <br/> ".$commento. "</p>"; 24

I Form - GET GET È comodo e veloce Lo usa anche Google! https://www.google.com/search?q=studium+generale /search La "pagina PHP" di Google (ma non è PHP)? q = Studium + Generale La variabile q ha come valore "Studium Generale" 25

I Form - GET GET È comodo e veloce Lo usa anche Google! Ma trasmette tutto sulla barra degli indirizzi del browser http://localhost/ritorno.php?nome=daniel&cognome=graziotin &email=daniel%40ineed.coffee&password=lamiapassword&co mmento=che+bel+sito Non è il massimo per la sicurezza (non solo su monitor) HTTPS 26

I Form - POST POST Un metodo HTTP come GET (GET, POST, PUT, DELETE) Trasmette le informazioni nel corpo della richiesta HTTP GET la trasmette nell indirizzo della richiesta Chi guarda il browser non vede i valori Via HTTPS vengono criptati 27

I Form - POST POST Come si fa col codice? Velocissimo andata.php <form method= "POST" action="/ritorno.php"> (GET diventa POST, il resto uguale) 28

I Form - POST POST Come si fa col codice? Velocissimo andata.php <form method= "POST" action="/ritorno.php"> ritorno.php $dati = $_POST; $_GET diventa $_POST, il resto uguale Ma solo perchè usiamo la variabile $dati 29

I Form - GET Funziona? Cosa dice la barra degli indirizzi? 30

I Form - GET Funziona? Cosa dice la barra degli indirizzi? http://localhost/ritorno.php 31

I Form - GET POST /ritorno.php HTTP/1.1 Accept-Language: en-gb,en;q=0.8,en-us;q=0.6,it;q=0.4,de;q=0.2 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1978.0 Safari/537.36 Content-Type: application/x-www-form-urlencoded Content-Length: 102 nome=daniel&cognome=graziotin&email=daniel%40ineed.coffe e&password=lamiapassword&commento=che+bel+sito 32

I Form - GET PHP analizza la richiesta intera HTTP POST "http://localhost/ritorno.php" Scompatta il corpo della richiesta (è una stringa alla fine) Crea un array associativo ($array["chiave"] = valore) chiamato $_POST (importante il trattino basso) 33

I Form Fonte: http://blog.leadmaster.com/2012/08/07 /new-feature-responses-are-dependenton-field-in-custom-forms/ 34

I Form Testo singola linea <input type="text" name="nome" /> Password <input type="password" name="nome" /> Segno di spunta <input type="checkbox" name="nome" /> 35

I Form Scelta singola tra opzioni Valore 1<input type="radio" name="nomegruppo" value="valore 1" /> Valore 2<input type="radio" name="nomegruppo" value="valore 2" /> Area di testo <textarea name="nome"></textarea> Inviare il form <input type="submit" value="spedisci" /> 36

I Form Ci sono altri moduli hidden, file, select, Approfondimenti HTML5 ne definisce a decine 37

Strutture di controllo e cicli Il bello della programmazione Prendere decisioni a seconda di certi valori Automatizzare PHP ha strutture di controllo e cicli 38

Strutture di controllo if-else Prendere decisioni Se l utente ha meno di 18 anni, non gli mostriamo la frase sconcia. Altrimenti mostriamo la frase sconcia. if e else 39

Strutture di controllo if-else Prendere decisioni Se l utente ha meno di 18 anni, non gli mostriamo la frase sconcia. Altrimenti mostriamo la frase sconcia. In ritorno.php if ($eta < 18) { echo "Sei minorenne"; } else { echo "Sei maggiorenne: frase sconcia!"; } 40

Strutture di controllo if-else If-else Forma if (condizione) { codice da eseguire se la condizione è VERA } else { codice da eseguire se la condizione è FALSA } 41

Strutture di controllo booleani Le condizioni sono espressioni booleane Tipo quelle matematiche, ma il risultato è VERO o FALSO (TRUE o FALSE) Operatori più comuni UGUALE, MINORE, MAGGIORE, NON, E, O 42

Strutture di controllo booleani TRUE (vero), FALSE (falso) Rappresentano gradi di verità. 43

Strutture di controllo booleani TRUE (vero), FALSE (falso) Rappresentano gradi di verità. Se una variabile $eta ha valore 18, vari "test" (proposizioni) $eta è 18 $eta è minore di 17 $eta è maggiore di 19 Hanno valori di verità (TRUE, FALSE, FALSE) 44

Strutture di controllo booleani == (UGUALE) Testa se due entità hanno lo stesso valore di verità (TRUE o FALSE) l entità di sinistra ha il valore di quella di destra 45

Strutture di controllo booleani == (UGUALE) Testa se due entità hanno lo stesso valore di verità (TRUE o FALSE) l entità di sinistra ha il valore di quella di destra 18 == 18 18 == 17 46

Strutture di controllo booleani == (UGUALE) Testa se due entità hanno lo stesso valore o valore di verità (TRUE o FALSE) l entità di sinistra ha il valore di quella di destra 18 == 18 (TRUE) 18 == 17 (FALSE) IMPORTANTISSIMO = assegna un valore a una variabile == testa il valore di verità 47

Strutture di controllo booleani == (UGUALE) Testa se due entità hanno lo stesso valore di verità (TRUE o FALSE) l entità di sinistra ha il valore di quella di destra $eta = 18; $eta == 19 $eta == 18 48

Strutture di controllo booleani == (UGUALE) Testa se due entità hanno lo stesso valore di verità (TRUE o FALSE) l entità di sinistra ha il valore di quella di destra $eta = 18; $eta == 19 (FALSE) $eta == 18 (TRUE) 49

Strutture di controllo booleani == (UGUALE) Testa se due entità hanno lo stesso valore di verità (TRUE o FALSE) l entità di sinistra ha il valore di quella di destra $nome = "daniel"; $nome == 19 $nome == $eta // $eta = 18 $nome == "daniel" $nome == "Daniel" 50

Strutture di controllo booleani == (UGUALE) Testa se due entità hanno lo stesso valore di verità (TRUE o FALSE) l entità di sinistra ha il valore di quella di destra $nome = "daniel"; $nome == 19 $nome == $eta $nome == "daniel" $nome == "Daniel" (FALSE) (FALSE) (TRUE) (FALSE) 51

Strutture di controllo booleani < (MINORE) > (MAGGIORE) Assume valore TRUE se l entità di sinistra è minore (maggiore) di quella di destra FALSE altrimenti $eta = 19; $eta < 18 $eta > 18 $eta < 19 $eta > 19 52

Strutture di controllo booleani < (MINORE) > (MAGGIORE) Assume valore TRUE se l entità di sinistra è minore (maggiore) di quella di destra FALSE altrimenti $eta = 19; $eta < 18 (FALSE) $eta > 18 (TRUE) $eta < 19 (FALSE) $eta > 19 (FALSE) $eta è UGUALE a 19, né minore né maggiore 53

Strutture di controllo booleani && (AND) Assume valore TRUE se l entità (o operazione booleana) di sinistra è TRUE E quella di destra è TRUE "unisce più operazioni $nome = "daniel"; $eta = 27; $nome == "daniel" && $eta == 27 $nome == "Daniel" && $eta == 27 54

Strutture di controllo booleani && (AND) Assume valore TRUE se l entità (o operazione booleana) di sinistra è TRUE E quella di destra è TRUE "unisce più operazioni $nome = "daniel"; $eta = 27; $nome == "daniel" && $eta == 27 (TRUE) $nome == "Daniel" && $eta == 27 (FALSE) 55

Strutture di controllo booleani && (AND) Assume valore TRUE se l entità (o operazione booleana) di sinistra è TRUE E quella di destra è TRUE "unisce più operazioni $nome = "daniel"; $eta = 27; $nome == "daniel" && $eta > 18 $nome == "daniel" && $eta < 18 56

Strutture di controllo booleani && (AND) Assume valore TRUE se l entità (o operazione booleana) di sinistra è TRUE E quella di destra è TRUE "unisce più operazioni $nome = "daniel"; $eta = 27; $nome == "daniel" && $eta > 18 (TRUE) $nome == "daniel" && $eta < 18 (FALSE) 57

Strutture di controllo booleani (OR) Assume valore TRUE se l entità (o operazione booleana) di sinistra è TRUE O quella di destra è TRUE Terra a terra: almeno una sola è TRUE $nome = "daniel"; $eta = 27; $nome == "daniel" $eta == 27 $nome == "Daniel" $eta == 27 58

Strutture di controllo booleani (OR) Assume valore TRUE se l entità (o operazione booleana) di sinistra è TRUE O quella di destra è TRUE Terra a terra: almeno una sola è TRUE $nome = "daniel"; $eta = 27; $nome == "daniel" $eta == 27 (TRUE) $nome == "Daniel" $eta == 27 (TRUE) 59

Strutture di controllo booleani (OR) Assume valore TRUE se l entità (o operazione booleana) di sinistra è TRUE O quella di destra è TRUE Terra a terra: almeno una sola è TRUE $nome = "daniel"; $eta = 27; $nome == "daniel" $eta > 18 $nome == "daniel" $eta < 18 60

Strutture di controllo booleani (OR) Assume valore TRUE se l entità (o operazione booleana) di sinistra è TRUE O quella di destra è TRUE Terra a terra: almeno una sola è TRUE $nome = "daniel"; $eta = 27; $nome == "daniel" $eta > 18 (TRUE) $nome == "daniel" $eta < 18 (TRUE) 61

Strutture di controllo booleani (OR) Assume valore TRUE se l entità (o operazione booleana) di sinistra è TRUE O quella di destra è TRUE Terra a terra: almeno una sola è TRUE $nome = "daniel"; $eta = 27; $nome == "Daniel" $eta < 18 (FALSE) 62

Strutture di controllo booleani! (NOT) Assume valore TRUE se l entità (o operazione booleana) che segue è FALSA Terra a terra: "il contrario di" $nome = "daniel"; $eta = 27;!($nome == "Daniel")!($nome == "daniel") 63

Strutture di controllo booleani! (NOT) Assume valore TRUE se l entità (o operazione booleana) che segue è FALSA Terra a terra: "il contrario di" $nome = "daniel"; $eta = 27;!($nome == "Daniel")!($nome == "daniel") (TRUE) (FALSE) 64

Strutture di controllo booleani! (NOT) Assume valore TRUE se l entità (o operazione booleana) che segue è FALSA Terra a terra: "il contrario di" $nome = "daniel"; $eta = 27;!($eta == 27) 65

Strutture di controllo booleani! (NOT) Assume valore TRUE se l entità (o operazione booleana) che segue è FALSA Terra a terra: "il contrario di" $nome = "daniel"; $eta = 27;!($eta == 27) (FALSE) 66

Strutture di controllo booleani! (NOT) Assume valore TRUE se l entità (o operazione booleana) che segue è FALSA Terra a terra: "il contrario di" $nome = "daniel"; $eta = 27;!($nome == "daniel" && $eta > 18)!($nome == "daniel" && $eta < 18) 67

Strutture di controllo booleani! (NOT) Assume valore TRUE se l entità (o operazione booleana) che segue è FALSA Terra a terra: "il contrario di" $nome = "daniel"; $eta = 27;!($nome == "daniel" && $eta > 18) (FALSE)!($nome == "daniel" && $eta < 18) (TRUE) 68

Strutture di controllo booleani Esistono altri operatori!= >= <= XOR 69

Strutture di controllo if-else Prendere decisioni Se l utente ha meno di 18 anni, non gli mostriamo la frase sconcia. Altrimenti mostriamo la frase sconcia. In ritorno.php if ($eta < 18) { echo "Sei minorenne"; // altri echo } else { echo "Sei maggiorenne: frase sconcia!"; // altri echo } 70

I cookies Cookie HTTP, questo mistero! I cookie sono delle informazioni scambiate tra il browser e il sito Web (il server) Stringhe che possono accompagnare le richieste (e le risposte) HTTP Generati dal server e (solitamente) memorizzati nel client 71

I cookies Un classico: quando si fa il login su un sito Web, il server genera un cookie che contiene l informazione "Su questo browser c è un utente chiamato Daniel. Questa informazione scadrà tra X ore" HTTP/1.0 200 OK Content-type: text/html Set-Cookie: nome=daniel; Expires=Mon, 30 Jun 2014 10:18:14 GMT "Caro browser, salva questo cookie nome=daniel e rimandamelo quando torni da me" 72

I cookies HTTP/1.0 200 OK Content-type: text/html Set-Cookie: nome=daniel; Expires=Mon, 30 Jun 2014 10:18:14 GMT <html> "Caro browser, salva questo cookie nome=daniel e rimandamelo quando torni da me" GET /index.php HTTP/1.1 Cookie: name=daniel; 73

I cookies Scrivere un cookie in PHP setcookie("nome del cookie", "valore", time() + secondi); time() ritorna l ora corrente in secondi (dal 1 Gennaio 1970) Aggiungiamo + secondi per specificare quando far scadere il cookie. setcookie("nome", "Daniel", time() + 3600); // cookie nome = Daniel che scadrà tra un ora 74

I cookies Leggere un cookie in PHP PHP decodifica i cookie per noi e li mette nell array associativa speciale, $_COOKIE; (come $_GET, $_POST) Per leggere il cookie settato prima, useremmo $_COOKIE["nome"]; 75

I cookies Importante! Diversamente dai form, i cookie sono a 3 "caricamenti di pagina" la prima volta 1. L utente fa qualcosa (es: riempie una form) e manda le informazioni al server 2. Il server riceve e chiede al browser di memorizzare un cookie 3. Il browser usa il cookie dalla prossima volta 76

empty() Per controllare se L utente ha inserito un valore nella form con GET o POST Esiste un cookie chiamato X Si usa la funzione PHP empty($variabile) empty($variabile) ritorna TRUE se $variabile è vuota o non esiste empty( $_COOKIE["nome"] ) è TRUE se non esiste il cookie "nome" 77

empty() empty($variabile) ritorna TRUE se $variabile è vuota o non esiste empty( $_COOKIE["nome"] ) è TRUE se non esiste il cookie "nome" Di conseguenza, la si usa con l operatore! (NOT), in modo da poter scrivere if (! empty($_cookie["nome"] ) { } // se il cookie "nome" non è vuoto // fai qualcosa, es: usa il valore 78

Strutture di controllo if-else ritorno.php $nome = $dati["nome"]; setcookie("nomevisitatore", $nome, time() + (2 * 60)); // 2 minuti 79

Strutture di controllo if-else index.php <?php if(!empty( $_COOKIE["nomeVisitatore"]) ){ echo "Ciao, ". $_COOKIE["nomeVisitatore"]; }?> 80

Strutture di controllo if-else Proviamo la magia 81

Strutture di controllo if-else TRUCCO 82

Strutture di controllo if-else con HTML misto <?php if ($eta < 18) {?> Sei minorenne <?php } else {?> Sei maggiorenne: frase sconcia! <?php }?> 83