Dato un form contenente <input type="text" name="weight" size="20" />

Documenti analoghi
Tipi di input widget. Textbox. <form action="action_page.php"> <b>name:</b> <input type="text" name="name" size="20" maxlength="40" > <br><br>

PHP: Funzioni di output

Dato un form contenente <input type="text" name="weight" size="20" />

Gestione dei dati tramite script PHP

Dato un form contenente <input type="text" name="weight" size="20" />

Array multidimensionali

Il linguaggio PHP. Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati

Il linguaggio PHP. Elementi base

Laboratorio Progettazione Web PHP e FORMs HTML - Lezione 8. Andrea Marchetti IIT-CNR 2011/2012

Array, Funzioni e interazione con l utente

D B M G Il linguaggio HTML

Array. // utente pippo $utente1 = array( username => pippo, password => pippo123, ruolo => amministratore );

Guida introduttiva al PHP

@2011 Politecnico di Torino 1

Programmazione Web D B M G. Il linguaggio HTML

Lato client: vuol dire che le operazioni programmate vengono svolte e visualizzate direttamente sul computer dell'utente collegato

Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp

1. (6 punti) Spiegare il significato, in modo dettagliato, del pezzo di codice seguente di una servlet:

Laboratorio Progettazione Web Il linguaggio PHP Array. Andrea Marchetti IIT-CNR AA 2014/2015

Corso di Laboratorio di Sistemi Operativi

HTML Interazione con l utente

PHP & MySQL. Giselda De Vita

Laboratorio Progettazione Web Array in PHP. Andrea Marchetti IIT-CNR 2013/2014

2011 Politecnico di Torino 1

Il linguaggio PHP. Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati

Programmazione Web D B M G. Il linguaggio PHP

Programmazione Web D B M G. Il linguaggio HTML

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

D B M G. Basi di dati. Programmazione Web: HTML. Programmazione Web. Il linguaggio Politecnico di Torino 1

D B M G. Basi di dati. Programmazione Web: HTML. Programmazione Web. Il linguaggio Politecnico di Torino 1

@2011 Politecnico di Torino 1

@2011 Politecnico di Torino 1

Corso di PHP. Prerequisiti. 2.1 Variabili. Conoscenza HTML Tecnica della programmazione Principi di programmazione web. M. Malatesta 2.

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript

Programmazione web lato client con JavaScript. Marco Camurri 1

Modulo o Form in Html

PHP funzioni. Prof. Francesco Accarino

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript

PHP ESSENTIALS #5. By WI400 Team. : stringhe

HTML HTML HTML HTML. Un documento HTML contiene: Testo. Comandi HTML (tag). Collegamenti ad altri documenti.

Laboratorio Progettazione Web Il linguaggio PHP Array. Andrea Marchetti IIT-CNR AA 2016/2017

Problema. Scrivere un programma PHP che prelevato un codice da una FORM verifica se tale codice è un numero.

BASI LINGUAGGIO. Programmazione Web 1

scrivere window.alert(). 2 Nell esempio sarebbe scritto solo var hello, senza pertanto attribuire alla variabile hello alcun valore

Tipi di dato, variabili, istruzioni

La connessione ai database MySQL tramite script PHP versione 5.5

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

Javascript: il browser

HTML. Es: La prossima parola è in <b>neretto</b> Es: La prossima parola è in neretto

Javascript: il browser

Laboratorio Progettazione Web Il linguaggio PHP Array. Andrea Marchetti IIT-CNR AA 2017/2018

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML. Il Linguaggio HTML

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML. Il Linguaggio HTML

Array, Funzioni e interazione con l utente

Corso di PHP. Prerequisiti. 6.2 PHP e il web 2. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

HTML. Es: La prossima parola è in <b>neretto</b> Es: La prossima parola è in neretto

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

2011 Politecnico di Torino 1

STRUTTURA BASE DELLA PAGINA HTML

Procedura di login e sessione

Python. Loriano Storchi.

Laboratorio Progettazione Web Il linguaggio PHP Array. Andrea Marchetti IIT-CNR AA 2015/2016

PHP. Linguaggio di scripting lato server (progettato specificatamente per il Web)

Laboratorio Progettazione Web Il linguaggio PHP le istruzioni. Andrea Marchetti IIT-CNR 2013/2014

Corso di PHP. Prerequisiti. 3 - Le strutture di controllo. Istruzioni semplici Controllo del flusso di programma

Controllo di flusso negli script: if-then-else

BASI LINGUAGGIO. Programmazione Web 1

Il tag form indica l'inizio della costruzione di un modulo. Necessita del tag di chiusura

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

Corso di PHP. Prerequisiti. 4.2 Array associativi. Variabili semplici e strutturate Concetto di array Strutture di controllo

Laboratorio di Informatica I

I campi di un form: come utilizzare il tag Input

Problema: calcolare il massimo tra K numeri

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica di base Laboratorio di HTML Dott. Serena Villata A.A. 2004/05

HTML Sintassi di HTML Tag principali per i contenuti I Forms

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Dichiarazione di variabili

Caratteri e stringhe

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

HTML e interattività FORM

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Lezione 2. Massimiliano Palese IEEE Student Member

Caratteri e stringhe

PHP 3. Interazione browser server. PHP e EGPCS 2. PHP e EGPCS 1. Interazione con il browser

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

JavaScript. Caratteristiche del JavaScript. Javascript consente di rendere dinamiche le pagine HTML

Reti di calcolatori Prova scritta 22 giugno 2018

Linguaggi di scripting

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

Gli Array. Dichiarazione di un array

Esercizi su JavaScript, DOM e Web Storage

Interazione con l utente : i moduli.

Transcript:

Dato un form contenente <input type="text" name="weight" size="20" /> Lo script PHP inserisce l input dell utente in una variabile speciale chiamata $_REQUEST['weight']il cui argomento è uguale al corrispondente attributo name del form. NB Le variabili in PHP sono case-sensitive. Ora $_REQUEST['weight']è utilizzabile come una variabile nello script. In effetti, $_REQUEST per PHP è un array e $_REQUEST[ weight ] è l elemento di $_REQUEST identificato dalla chiave weight. In PHP, infatti (v. seguito), ogni elemento di un array può essere visto come una coppia indice/valore. L indice non è necessariamente numerico, ma può anche essere una stringa.

PHP: Registrazione di variabili globali Una variabile è definita attraverso una stringa avente $ come iniziale. Nelle versioni PHP precedenti alla 4.2 i dati passati dai form erano direttamente utilizzabili come variabili globali (register_globals= On nel file di configurazione php.ini). Dalla versione 4.2 il default è Off per aumentare la sicurezza degli script. Per ovviare al problema ci sono vari modi: Mettere on register_globals nel file php.ini (richiede diritti di amministratore) Attivare localmente le variabili globali attraverso il comando import_request_variables('gpc')in apertura di script (gpc fa riferimento alle variabili speciali $_GET, $_POST, $_COOKIE) Usare esplicitamente le variabili speciali $_REQUEST, $_GET, $_POST come visto in precedenza NB $_REQUEST generalizza $_GET, $_POST e $_COOKIE e può essere usata per gestire i dati trasmessi con tutti e tre i metodi

PHP: Controllo dell input Le principali strutture di controllo di PHP (if, switch, while, for) hanno la stessa sintassi che hanno in C. Analogamente i blocchi di codice sono racchiusi in parentesi graffe e ogni istruzione è chiusa da punto e virgola. I commenti sono introdotti da // (vale fino a fine riga) Funzione isset() Verifica se una variabile è stata instanziata o se ha un valore NULL (con funzione analoga al valore usato per le basi di dati) if (isset($var)) { // $var ha un valore. } else { //$var non ha un valore. } // comprese stringhe vuote e FALSE NB Per le variabili logiche la convenzione è la stessa del C (FALSE <-> 0 TRUE<-> x<>0) : if($a) è vera se $a è diversa da 0

Funzione strlen() Un altro modo per vedere se una variabile è istanziata è usare la funzione strlen() che restituisce la lunghezza, in caratteri, della variabile. Se è pari a zero, la variabile non è istanziata. if (strlen($var) > 0) { // $var ha un valore. } else { // $var non ha un valore. } Funzione is_numeric() Verifica se la variabile usata come argomento è di tipo numerico.

E possibile attivare l uso di metodi per la gestione corretta di caratteri speciali derivanti dall input che in HTML devono essere preceduti da \ Questi metodi si chiamano Magic Quotes e sono di tre tipi: magic_quotes_gpc, usato per filtrare dati da form, URL, and cookie (gpc sono le iniziali di GET, POST, COOKIE); magic_quotes_runtime, che filtra dati estratti da file esterni e database. Se Magic Quotes è attivo sul server, è possibile neutralizzarne l effetto usando la funzione stripslashes()che elimina le \ dalla stringa inserita come argomento. $var = stripslashes($var); magic_quotes_sybase usata raramente.

Un \\ inserito da magic_quotes_sybase diventa un singolo backslash usando la funzione stripslashes(). E comodo usare Magic Quotes quando si consulta una base di dati per evitare che caratteri speciali interrompano la trasmissione dei risultati di una query E possibile emulare Magic Quotes se è disabilitato usando la funzione duale a stripslashes(): addslashes() NB Da Php 5.4 MagicQuotes non è più supportato. Quando si usano stringhe generate da form, è consigliabile usare la funzione trim() che elimina gli spazi eventualmente presenti all inizio e alla fine della stringa. $name = trim($name);

PHP: Array Gli array sono strutturati come coppie chiave-valore in cui ogni coppia è un elemento dell array. Il valore (contenuto informativo) di ogni elemento può essere costituito da un numero, una stringa o anche un altro array. Ogni elemento è associato a una chiave (indice) per cui la struttura di un array è simile a quella di una tabella di dati.

Array Esistono due tipi di array: Array indicizzati Usano come chiave un numero (sono di fatto gli array utilizzati in tutti i linguaggi di programmazione) Array associativi Usano come chiave una stringa il cui contenuto consente di identificare univocamente il corrispondente valore dell array. $sigle Chiave MI TO Valore Milano Torino $sigle[ MI ] $sigle[ TO ] NB Le chiavi di un array devono essere tutte diverse, i valori possono ripetersi (es. un array inizializzato tutto a zero).

Array Ogni elemento è individuato dal nome dell array e dalla chiave fra parentesi quadre. Se la chiave è una stringa andrà indicata fra singoli apici. Se è numerica gli apici non sono necessari. $sigle[ MI ] $temperatura[2] Se si vuole stampare l elemento di un array associativo è necessario racchiuderlo fra graffe per evitare errori di parsing. Non è necessario fare lo stesso per un array indicizzato. echo Il panettone è fatto a {$sigle[ MI ]} echo L elemento con indice 2 dell array temperatura è $temperatura[2] Un array associativo può avere sia numeri che stringhe come chiavi, purché le chiavi siano uniche.

Creazione di array Un array può anche essere definito all interno di uno script: Assegnando il valore di un elemento alla volta $sigle[ MI ]= Milano ; Costruendo un intero array in un singolo passo con la funzione array() $stati = array ('IA' => 'Iowa', 'MD' => 'Maryland'); Senza specificare la chiave $artisti = array ('Vasco Rossi','Beatles','Mina'); Inserendo solo l indice numerico del primo elemento $days = array(1=> 'Sunday','Monday','Tuesday'); Creando un array di numeri in sequenza $ten = range (1, 10);

Accesso ad array Un array non può essere stampato con il comando echo $vettore Il ciclo foreach può scandire gli elementi di un array // Sintassi del ciclo foreach foreach ($array as $value) { Fai qualcosa con $value. } // Esempio di ciclo foreach che accede a chiavi e valori. foreach ($array as $key => $value) { echo Il valore dell elemento $key è $value."; } La funzione count($array) è equivalente a sizeof($array) e restituisce il numero di elementi contenuti in $array

PHP: Array multidimensionali $states=array('tx'=>'texas','ut'= 'Utah', ); $provinces=array('qc'=>'quebec','ab'=>'alberta', ); possono essere fusi in un singolo array bidimensionale $abbr=array('us'=>$states, 'Canada'=>$provinces); In questo caso ogni elemento di $abbr potrà essere individuato attraverso due chiavi, ognuna delle quali permetterà di accedere ad uno dei due array. echo "Lo stato con sigla TX è: $abbr['us']['tx']" NB Un array bidimensionale in PHP non è una matrice; ogni riga può avere un diverso numero di elementi. Concettualmente è più simile ad una lista di liste.

Tipi di input widget Textbox <form action="action_page.php"> <b>name:</b> <input type="text" name="name" size="20" maxlength="40" > <br><br> <input type="submit" > </form>

Tipi di input widget Menu a tendina (scelta esclusiva) <form action="action_page.php"> <select name="cars"> <option value="volvo">volvo</option> <option value="saab">saab</option> <option value="fiat">fiat</option> <option value="audi">audi</option> </select> <br><br> <input type="submit"> </form>

Tipi di input widget Checkbox (elenco di possibili scelte non mutuamente esclusive) <form action="action_page.php"> <input type="checkbox" name="vehicle[]" value="bike">i have a bike <br> <input type="checkbox" name="vehicle[]" value="car">i have a car <br> <input type="submit"> </form>

<html> // Crea un form che invia un array al server <head> <title>tell Us About Yourself</title> </head> <body> <form action = "handle_about.php" method="post"> <fieldset> <legend>enter your information in the form below:</legend> <p> <b>name:</b> <input type="text" name="name" size="20" maxlength="40"/> </p> <p> <b>interests:</b> <input type="checkbox" name="interests[]" value="music" /> Music <input type="checkbox" name="interests[]" value="movies" /> Movies <input type="checkbox" name="interests[]" value="books" /> Books <input type="checkbox" name="interests[]" value="skiing" /> Skiing <input type="checkbox" name="interests[]" value="napping" /> Napping </p> </fieldset> <div align="center"> <input type="submit" name="submit" value="submit My Information" /> </div> </form> </body> </html>

E possibile evitare di inserire «manualmente» una checkbox per ogni opzione che si vuole elencare utilizzando PHP: si definisce un array con le opzioni fra cui si vuole scegliere e poi un ciclo foreach per generare la sequenza di checkbox. E infatti possibile scrivere script che mescolano HTML e PHP inserendo le sezioni PHP in un tag <?php codice?> Per essere sicuri che l interprete PHP venga attivato in corrispondenza delle sezioni PHP il file che si crea dovrà avere estensione.php.

<html> // Crea un form che invia un array al server (VERSIONE PHP) <head> <title>tell Us About Yourself</title> </head> <?php $hobbies=array('music','movies','books','skiing','napping');?> <body> <form action = "handle_about.php" method="post"> <fieldset> <legend>enter your information in the form below:</legend> <p> <b>name:</b> <input type="text" name="name" size="20" maxlength="40"/> </p> <p> <b>interests:</b> <?php foreach($hobbies as $value) { echo '<input type="checkbox" name="interests[]" '." value=$value> $value <br>"; }?> </p> </fieldset> <div align="center"> <input type="submit" name="submit" value="submit My Information" /> </div> </form> </body> </html>

// handle_about.php <?php // If everything was filled out, print the message. if ($_POST['name'] && $_POST['interests']) { $name=$_post['name']; echo"thank you, <b>$name</b>. You entered your interests as:<ul>"; // Print each interest. foreach ($_POST['interests'] as $value) { // Loop through each. echo "<li>$value</li>\n"; } Echo '</ul>'; // Close the list. } else { // One form element was not filled out properly. echo '<p><font color="red">please go back and fill out the form again. </font></p>'; }?>

Ordinamento di array $names = array ('George Michael', 'Ann', 'Buster'); sort($names); ordina i valori eliminando la correlazione con le chiavi rsort($names); ordinamento inverso asort($names); ordina i valori mantenendo la correlazione con le chiavi arsort($names); ordinamento inverso ksort($names); krsort($names); ordina in base alle chiavi ordinamento inverso

// Create the array. $movies = array ( 10 => 'Casablanca', 9 => 'To Kill a Mockingbird', 2 => 'The English Patient', 8 => 'Sideways', 7 => 'Donnie Darko' ); // Display the movies in their original order. echo '<p>in their original order:<br /><pre>rating Title'; foreach ($movies as $key => $value) { echo "$key\t$value\n"; } echo '</pre></p>'; // Display the movies sorted by title. echo '<p>sorted by title:<br /><pre>rating Title'; asort($movies); foreach ($movies as $key => $value) { echo "$key\t$value\n"; } echo '</pre></p>'; // Display the movies sorted by rating. echo '<p>sorted by rating:<br/ ><pre>rating Title'; krsort($movies); foreach ($movies as $key => $value) { echo "$key\t$value\n"; } echo '</pre></p>';

Alcuni esempi tratti da: http://www.w3schools.com/html/ Tutorial con esercizi e simulatore interattivo.

Esercizio 1 Realizzare una pagina HTML che contenga un form che consenta all utente di inserire una data (giorno mese anno ora) mediante quattro menu a tendina, attivando poi uno script PHP che fornisca un messaggio di conferma del tipo: Il suo appuntamento è fissato per il giorno. alle ore. Provare ad usare sia il metodo GET che il metodo POST e osservare le differenze.

Esercizio 1b Realizzare uno script in HTML/PHP che contenga un form che consenta all utente di inserire una data (giorno mese anno ora) mediante quattro menu a tendina i cui valori sono definiti all interno di un array, attivando poi uno script PHP che fornisca un messaggio di conferma del tipo: Il suo appuntamento è fissato per il giorno. alle ore. Provare ad usare sia il metodo GET che il metodo POST e osservare le differenze.

Esercizio 1c Usando il metodo GET, richiamare lo script PHP che dà conferma dell appuntamento introducendo a mano la URL con i parametri della richiesta-