Array, Funzioni e interazione con l utente

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

D B M G Il linguaggio HTML

Modulo o Form in Html

Interazione con l utente : i moduli.

Creare l array presentato nei lucidi ([pippo, pluto, etc])

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

04/05/2011. Lezione 6: Form

Guida introduttiva al PHP

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.a HTTP request e HTTP response (form e link)

HTML: FORM. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Il linguaggio PHP. Parte I Introduzione. Paolo Milazzo

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

HTML e interattività FORM

Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche

DURANTE LA NAVIGAZIONE NEI SITI WEB I VISITATORI NON SOLO POSSONO CONSULTARE INFORMAZIONI STATICHE

WEP WEb Programming. 4 PHP: dati e form

Dott.ssa Adriana Pietramala

07 PhP parte 1 AVVISI DI SERVIZIO. Materiale didattico. Apertura Wamp

2011 Politecnico di Torino 1

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

Appunti su ASP (Active Server Pages)

Lezione 6: Form 27/04/2012

BASI DI DATI Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

I FORM. L'attributo action contiene l'url del file php a cui devono essere inviati i file per essere elaborati.

Esercitazione 8. Basi di dati e web

Corso di Web Programming

ESEMPI DI FORM (da

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Tito Flagella - Il protocollo HTTP

Applicazione ASP di esempio

HTML FORM E PHP. Programmazione Web 1

Esercitazione Google Maps

I Tag dell html. Parte quarta

10 Creare. collegamenti ipertestuali

Introduzione a PHP Gestione dei Dati e della Conoscenza

Il linguaggio HTML - Parte 3

Lezione nr. 5. Per creare un modulo è necessario avere delle conoscenze di base del linguaggio HTML. Niente di difficile ovviamente!

Esercizi su HTML5 e form

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

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

Alla base del web: il protocollo HTTP

A. Lorenzi Pagine ASP

Laboratorio Progettazione Web Array in PHP Lezione 7. Andrea Marchetti IIT-CNR 2011/2012

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

Fondamenti di Informatica II 29. Elementi di programmazione web e linguaggi di script (2)

PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per

Utilizzare PHP 5. Le variabili GET e POST

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione

PHP 3. Interazione con il browser

C3 IL DBMS MICROSOFT ACCESS

La Back Office Console consente di costruire lo scheletro degli schema.

World Wide Web. Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML. Il Successo del Web. Protocolli di accesso

SISTEMI OPERATIVI, RETI, INTERNET

Il Protocollo HTTP e la programmazione di estensioni Web

MS Access: Tutorial Tabelle, Relazioni

Introduzione al MATLAB c Parte 3 Script e function

Sicurezza Protezioni in una pagina Web

PHP. Per poter interagire con i dati che si trovano sul server remoto occorrono strumenti server-side.

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

PHP e MySQL. Scripting server-side per accesso a DB MySQL

Lavorare con MySQL Parte Seconda.

GRUPPO DOMANDE N. 1. Quesito n. 1 Descrivere sinteticamente le finalità e le modalità d uso dei seguenti comandi UNIX / LINUX: LS, KILL, PS.

Form HTML. <form> campi del modulo </form>

Lezione nr. 7. >> Come posso recuperare un valore da un campo TEXT?

Introduzione alla programmazione

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

Esercizi ed appunti PHP

Transcript:

Array, Funzioni e interazione con l utente Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it

Gli array sono contenitori in grado di memorizzare una sequenza di elementi indicizzati. Rispetto alla variabili possono contenere tanti valori diversi. Gli array di PHP sono di tipo associativo, ovvero associano un elemento ad una chiave Indice array o chiave 0 1 2 3 4 pippo pluto paperino paperone topolino elementi array

Gli array si creano con il costrutto array() $myarray = array ( pippo, pluto, paperino, paperone, topolino ); Abbiamo creato un array di cinque elementi, alla posizione 0 abbiamo pippo, e cosi via fino alla quinta posizione (elemento 4).

Gli array si possono creare anche assegnando i valori ai singoli elementi $myarray[0]= pippo ; L indice, se non specificato diversamente, è numerico ed inizia da 0. Altrimenti possiamo definire esplicitamente le chiavi sia numeriche che non. $myarray1 = array(1=> pippo,0=> pluto,3=> paperino, 4=> paperone,2=> topolino ); $myarray2 = array ('personaggio1'=>"pippo",'personaggio2'=>"pluto",'persona ggio3'=>"paperino",'personaggio4'=>"paperone",'personagg io5'=>"topolino")

L accesso agli elementi può avvenire tramite l indice $myarray[1] ; indica l elemento pluto o tramite la chiave definita $myarray2[ personaggio1 ];

Il costrutto foreach permette di effettuare cicli sugli elementi dell array foreach(array as item) dove item indica l indice dell array Esempio: foreach ($myarray as $item) echo $item <BR> ;

$array[] = $newelement: Viene aggiunto il nuovo elemento alla fine dell array $myarray[]= archimede ;

Un elemento di un array può contenere a sua volta un array, creando cosi un array multidimensionale <? $myarray=array(array("pippo","pluto"),array ("topolino","paperino")); echo $myarray[0][1];?>

Contare gli elementi: count(array) e sizeof(array) Randomizzazione di un array shuffle(array)) shuffle richiede che il generatore di numeri casuale sia inzializzato dall istruzione srand

<? $pizze=array( margherita, capricciosa, quattro stagioni ); srand((double)microtime() * 1000000); // generatore random shuffle($pizze); echo $pizze[0];?>

Le funzioni sort() e rsort() permettono di ordinare un array in base agli elementi sort($myarray); ordina in ordine crescente rsort($myarray); ordina in ordine decrescente Non restituiscono un valore ma ordinano direttamente l array passato come parametro. Esempio <? $myarray=( uno, due, tre ): sort($myarray);?>

explode() e implode() permettono di convertire un array in una stringa e una stringa in un array per mezzo di un carattere separatore. In questo esempio $mystring è il risultato di implode dell array dove gli elementi dell array vengono separati nella stringa dal carattere spazio $mystring = implode(,$myarray); Analogamente, $myarray è il risultato di explode di una stringa dove gli elementi dell array vengono distinti dal carattere barra $myarray= explode(,$mystring);

Le funzioni sono blocchi di codice che possono essere chiamati da più punti dello script php function nome_funzione (arg_1,arg_2,...,arg_n) {. Script. return valore; } La funzioni possono avere argomenti in input (arg1,arg_2,... arg_n) e possono restituire un valore Le variabili definite dentro una funzione hanno come ambito la funzione stessa. Quindi al di fuori della funzione non esistono.

Creazione e chiamata di funzioni con restituzione di valori <?php function add() { $somma=3+5; return $somma; } echo add();?>

Chiamata di funzione senza restituzione di valori <? function stampa() { echo Funzione! ; } stampa();?>

<? function add1($a,$b) { $somma=$a+$b; return $somma; } echo add1(3,5);?>

Le funzioni possono ritornare più valori, sotto forma di array <? function tornaarray() { $myarray=array("pippo","pluto","paperino"); return $myarray; } $arraytornato=tornaarray(); echo $arraytornato[1];?>

Per condividere e riutilizzare porzioni di script e funzioni si usa frammentare il codice in più file in modo da poterlo includere quando serve. E utile per modularizzare il codice in modo da non dover ripetere stessi pezzi di script in piu parti (ad esempio connessione al database, header o footer di una pagina, form di login etc) include (nomefile); L istruzione include va posizionata all inizio dello script php o comunque prima dei riferimenti a variabili o funzioni definiti nel file da includere. L interprete PHP segnala errore se il file non viene trovato, proseguendo comunque l esecuzione require (nomefile) è analogo tranne che genera un errore irreversibile qualora il file non venga trovato

Il grosso vantaggio dell uso di tecnologie serverside sta nel poter gestire l interazione con l utente. L utente può interagire con una applicazione web (spedire parametri per la consultazione) principalmente con l uso di Moduli o FORM. Le Form sono costrutti di HTML e non di PHP. La parte di programma lato server permette di gestire i dati che vengono spediti al server tramite i costrutti delle Form.

L HTML permette di visualizzare e formattare opportunamente le FORM, mentre la parte lato server riceve i dati spediti via HTTP e li gestisce. Il collegamento tra lato client (HTML) e lato server avviene nella action dove viene specificato lo script che riceve e gestisce i dati Parametri <FORM name=esempio action= pagina.php METHOD=GET POST> <INPUT type=text name=username> <INPUT type=radio name=color value= Rosso > <INPUT type=submit>

Il passaggio dei parametri della Form può avvenire secondo due modalità: GET e POST. Il metodo GET prevede il passaggio dei parametri in una QUERY STRING, ovvero una stringa che racchiude i parametri accodata alla URL, quindi visibile dalla barra del browser. Lunghezza massima querystring 256 caratteri. Nel metodo POST i parametri vengono passati direttamente tramite protocollo HTTP, non sono visibili. Sono metodi equivalenti, ma il GET non viene usato in caso di password o in caso di molti parametri o passaggio di stringhe molto lunghe. Ogni metodo viene trattato in modo diverso dal lato server

Con il metodo GET i parametri vengono passati nella URL che riferisce la pagina chiamata dalla ACTION Esempio: http://localhost/submit.php?dato1=pippo&dato2=pluto Il carattere? separa il nome della pagina dai parametri che vengono passati. I parametri sono nella forma nomeparametro=valore separati dal simbolo & Tutta la stringa dopo il simbolo? prende il nome di querystring o stringa di interrogazione

PHP può accedere ai parametri in tre modi: $_POST[nomepar] per il metodo POST $_GET[nomepar] per il metodo GET Oppure accedendo all array globale delle richieste: $_REQUEST[nomepar] per entrambi i metodi. In questo modo lo script PHP è indipendente dal metodo usato dalla FORM HTML Tutti i parametri di passaggio nelle form sono nell ambiente predefinito di php e sono quindi visualizzabili con la funzione phpinfo()

Radio button I valori inseriti come opzioni nei campi radio button si ottengono selezionando negli array $_POST/$_GET o $_REQUEST il nome del campo In HTML: Rosso <INPUT type=radio name=mioradio value="rosso"> Verde <INPUT type=radio name=mioradio value="verde"> In PHP: $miopar1=$_request[mioradio];

I campi checkbox, come gli altri, si accedono tramite gli array $_GET o $_POST o $_REQUEST selezionando il nome del campo della form In HTML: Rosso <INPUT type=checkbox name=miocheckred value="rosso"> Verde <INPUT type=checkbox name=miocheckverde value="verde"> In PHP: $miopar2=$_request[miocheckred];

Analogamente, i campi di selezione si accedono con il nome In HTML: <select name=selezione> <option> prima opzione</option> <option> seconda opzione</option> </select> In PHP: $miopar4=$_request[selezione]; echo $miopar4;

Nei campi di selezione multipli tramite il nome si accede ad un array che occorre indicare nel nome del campo select della form In HTML: <select name=selezione1[] multiple> <option value= prima > prima opzione</option> <option value= seconda > seconda opzione</option> </select> In PHP: $miopar4=$_request[selezione1][0]; echo $miopar4;

Similmente per i campi textarea <textarea name="miatext" rows=5> </textarea> In PHP: $miopar5=$_request[miatext]; echo $miopar5;

La gestione delle form prevede due passi: la visualizzazione della FORM in HTML e la gestione dei parametri in PHP. Possiamo immaginare di gestire questi passi in due pagine distinte, una in HTML solamente (quindi con estensione.html) e l altra come pagina PHP (.php). In questo caso avremo, ad esempio, miapaginaform.html che descrive la form e che nella action indica la pagina miapaginaform.php per la gestione dei parametri.

gestform.php <? $miavar=$_get[ nome ]; echo $miavar;?> gestform.php?nome= pippo <FORM name=miaform action=gestform.php method=get> <INPUT type=text name= nome >. gestform.html <INPUT TYPE=SUBMIT>

Talvolta questa modalità di gestione rischia di far proliferare eccessivamente il numero di pagine (html e php), si può quindi usare una sola pagina PHP sia per la visualizzazione della form che per la gestione dei parametri Per gestire sia la visualizzazione del form che la gestione nello stesso script occorre distinguere quando visualizzare la form e quando elaborare lo script. Occorrerà distinguere il caso di visualizzazione della parte della form dall altra per l elaborazione dei parametri. Questa distinzione verrà fatta in base al valore del campo di submit. Occorre quindi dare un nome al campo di submit e poi testarne il valore con $_POST[submit]

gestform.php if (isset($_post[submit])) { // trattamento parametri.. } else { //visualizza la form echo <FORM name=miaform method=post action=gestform.php > ; <INPUT TYPE=submit name=submit>}

if (isset($_post[ submit ])) { echo trattamento parametri ; // trattamento parametri } else { //visualizza la form La pagina richiama se stessa come action echo <FORM name=miaform method=post action=miaform.php > ; echo <INPUT name= miopar type= text > ; echo <INPUT type= submit name= submit > ; echo </FORM> ; } Il pulsante di submit ha un nome tramite il quale testiamo se la pagina e stata chiamata la prima volta o in seguito ad una sottomissione

Si può richiamare la pagina stessa in modo parametrico usando la variabile predefinita $_SERVER[PHP_SELF]. E un modo più pulito e scalabile, se si cambia nome allo script non occorre cambiare il codice! <FORM name=miaform method=post action= <? echo $_SERVER[PHP_SELF]?> > ; <INPUT name=miopar type=text>; <INPUT type=submit name="submit">; </FORM>;

La prima fase del trattamento dei parametri in genere prevede un controllo sulle correttezza dei dati. Questo controllo può essere fatto in parte in javascript per una interazione più diretta con l utente ma, in parte o completamente, può essere fatta anche in PHP e quindi lato server. Possiamo quindi aggiungere alla nostra pagina di gestione delle form una funzione di controllo campi immessi

if (isset($_post[ submit ])) { checkform(); // controllo parametri } else { //visualizza la form echo <FORM name=miaform method=post action=miaform.php > ; echo <INPUT name=nome type=text> ; echo <INPUT name=cognome type=text> ; echo <INPUT type=submit name= submit > ; echo </FORM> ; }

function checkform() { if ($_POST[ nome ]== ) { echo inserire nome ; } else if ($_POST[ cognome ]== ) { echo inserire cognome ; } }