BIOINFO3 - Lezione 311 PAGINA HTML Confrontiamo il codice sorgente della pagina restituitaci dal programma con il programma originale Come si può notare,

Slides:



Advertisements
Presentazioni simili
UNO STRUMENTO PER INTERAGIRE CON GLI UTENTI DELLE PAGINE WEB
Advertisements

INFORMATICA Altre Istruzioni di I/O
LINGUAGGIO DI PROGRAMMAZIONE C
PHP.
Utilizzare PHP 5 Corso Interazione Uomo – Macchina AA 2005/2006.
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Connessione con MySQL.
Esercitazione 2 Array, funzioni, form
Programmazione Procedurale in Linguaggio C++
Modulo o Form in Html.
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
Esercitazione 6 MySQL Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
Corso di Informatica A.A
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Il linguaggio ASP Lezione 4 Manipolare i database con ASP Lutilizzo dei FORM per laggiunta dei dati.
ASP Lezione 1 Concetti di base. Introduzione ad ASP ASP (che è la sigla di Active Server Pages) è un ambiente di programmazione per le pagine web. La.
Lezione 2 Programmare in ASP
Corso di PHP.
Esercitazione sulla creazione di una raccolta locale Tutorial.
BIOINFO3 - Lezione 24 ARRAY
Elaborazioni server-side: dalle CGI al PHP
Introduzione alle ASP: primi passi negli script. Frosini Andrea Università degli studi di Siena Dipartimento di Scienze Matematiche.
BIOINFO3 - Lezione 121 Alter Table Alter table permette di cambiare la struttura di tabelle esistenti. Ad esempio e` possibile aggiungere o cancellare.
Creare pagine web Xhtlm. Struttura di una pagina.
Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR -
BIOINFO3 - Lezione 261 ESERCIZIO Esercizio. Leggere delle sequenze di DNA (una per riga, a partire da inizio riga) e stampare solo le sequenze lunghe più
BIOINFO3 - Lezione 381 ESERCIZIO Dato un programma con la sola istruzione: $a=Hasta la vista! Quanto vale length($a) ?15 substr($a,0) ? substr($a,$b) ?
PARSERIZZAZIONE DI FILE
BIOINFO3 - Lezione 341 INTERAZIONE CON UN SERVER MYSQL Quando abbiamo parlato dei database relazionali SQL vi avevo già accennato che linterazione (invio.
BIOINFO3 - Lezione 361 RICERCA DI SIMILARITA TRA SEQUENZE Un altro problema comunissimo in bioinformatica è quello della ricerca di similarità tra sequenze.
BIOINFO3 - Lezione PARSING RISULTATI DI BLAST Nella lezione di ieri abbiamo visto come automatizzare lesecuzione di BLAST. Oggi proviamo.
BIOINFO3 - Lezione 321 ACCESSO REMOTO AL SERVER SIBILLA Attraverso Internet è possibile accedere al server sibilla.cribi.unipd.it. Potrete così effettuare.
BIOINFO3 - Lezione 101 GLI IPERTESTI Una delle innovazioni introdotte da HTML e dal WWW in generale, rispetto ad un testo normale è sicuramente la possibilità
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
BIOINFO3 - Lezione 41 ALTRO ESEMPIO ANCORA Progettare il comando di creazione di una tabella di pubblicazioni scientifiche. Come chiave usare un numero.
BIOINFO3 - Lezione 291 PATTERN MATCHING Imparato cosa sono e come si usano le espressioni regolari per individuare dei pattern, vediamo come si usano in.
BIOINFO3 - Lezione 301 CGI-BIN Abbiamo visto che CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. In particolare.
BIOINFO3 - Lezione 271 PATH DEL FILE Bisogna fare molta attenzione al path del file da aprire. Per non sbagliare converrebbe passare sempre il path assoluto.
REDIREZIONE INPUT E OUTPUT
BIOINFO3 - Lezione 251 ARRAY ASSOCIATIVI E possibile assegnare tutti gli elementi dellarray con ununica istruzione %anni=(Marco,30,Luigi,33,Anna,28,Chiara,25);
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Web Form Presentazione 2.3 Comunicazione integrata in rete| Prof. Luca A. Ludovico.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Pagine ASP parte 1 Introduzione Stefano Schacherl.
Lezione 3 Struttura lessicale del linguaggio
CORSO Di WEB DESIGN prof. Leonardo Moriello
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Introduzione a Javascript
HTML 4.01 Apogeo. I tag di base Capitolo 1 I tag SintassiEsempi:
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
INTRODUZIONE. Javascript è un linguaggio di scrittura che permette di aggiungere veri e propri programmi alle tue pagine web.
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
Laboratorio di Servizi Web - servlet - Ardissono 1 Chiarimenti su Servlet Note aggiuntive su architettura di applicazione web che usa Servlet per gestire.
CORSO INTERNET la Posta elettronica
Lezione 6: Form.  In alcuni documenti HTML può essere utile creare dei moduli (form) che possono essere riempiti da chi consulta le pagine stesse (es.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Eprogram informatica V anno.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
ASP – Active Server Pages - 1 -Giuseppe Tandoi ASP – Active Server Pages Tecnologia per lo sviluppo di pagine dinamiche.
Transcript della presentazione:

BIOINFO3 - Lezione 311 PAGINA HTML Confrontiamo il codice sorgente della pagina restituitaci dal programma con il programma originale Come si può notare, tutto ciò che è stampato dal programma pippo.pl (esclusa la prima riga) sullo standard output viene inviato al browser via rete come codice HTML da interpretare. Il browser crea quindi la pagina desiderata!

BIOINFO3 - Lezione 312 RICAPITOLANDO La prima istruzione di print sullo STDOUT eseguita dal programma serve a dire al browser che tutto ciò che riceverà successivamente deve essere interpretato come codice HTML print "Content-type:text/html\n\n"; (ricordarsi i due caratteri di a-capo!) tutto ciò che viene stampato successivamente dal programma è quindi trasferito dal server web, attraverso la rete direttamente al browser ed interpretato da questo come codice HTML BROWSER client HTTPD server html cgi-bin programma Output: pagina web Output

BIOINFO3 - Lezione 313 PASSAGGIO DI DATI NELLURL Abbiamo già visto come esistano delle variabili di Perl in cui ricevere gli argomenti. Possiamo eseguire il programma via WEB passando degli argomenti subito dopo il nome del programma e il simbolo di ? questi sono ancora resi disponibili al programma nella N.B. Bisogna sostituire gli spazi tra gli argomenti con il carattere $ARGV[0] 1 $ARGV[1] prova

BIOINFO3 - Lezione 314 INVIO DI DATI DA FORM (METODO GET) LURL con i dati già prefissati può essere utilizzato direttamente come link ipertestuale in una pagina WEB. Ora vediamo invece come sono passati al programma i dati inseriti da un utente in una form, utilizzando il metodo GET. Nella form HTML in cui si chiama il programma dovrà essere specificata la clausola method=GET.

BIOINFO3 - Lezione 315 FORM Inseriamo i dati richiesti e premiamo il bottone INVIA DATI

BIOINFO3 - Lezione 316 METODO GET Con il metodo get il browser crea lURL del programma da eseguire prendendo lURL specificata nellaction della form, aggiungendoci ? e i dati inseriti dallutente nei campi di input della form nel seguente formato. nomecampo 1 =valoreinserito 1 &nomecampo 2 =valoreinserito 2 &…... N.B. Anche i valori dei campi di tipo hidden o password sono passati in questo modo e quindi sono chiaramente visibili, con le ovvie conseguenze!

BIOINFO3 - Lezione 317 VARIABILI DAMBIENTE Lo script Perl ha a disposizione molte variabili dambiente che gli forniscono informazioni sulla modalità CGI-BIN, tra cui proprio i dati ricevuti dalla form. Queste variabili si trovano in un array associativo %ENV e sono settate dal web server httpd prima di mandare in esecuzione il programma CGI richiesto, che così le troverà pronte al momento dellinizio della sua esecuzione $ENV{DOCUMENT_ROOT} La root directory del server $ENV{HTTP_HOST} Lhost name del server $ENV{REMOTE_ADDR} Lindirizzo IP del client (il visitatore!) $ENV{QUERY_STRING} I dati passati con il metodo GET $ENV{REQUEST_METHOD} Il metodo:GET o POST ……….

BIOINFO3 - Lezione 318 %ENV Con il seguente programma si stampano i valori delle variabili dambiente allinizio dellesecuzione di un CGI Notare il contenuto della variabile di ambiente QUERY_STRING, che trasmette al programma tutto ciò che segue il ? nellURL che attiva il CGI-BIN

BIOINFO3 - Lezione 319 RICEZIONE DATI DELLA FORM Questa prima parte del programma serve a creare un array associativo %FORM con i dati ricevuti. Si crea una cella dellarray associativo per ogni campo di input della form. Il nome del campo funge da indice dellarray associativo %FORM, mentre il valore corrispondente è quello inserito dallutente in quel campo di input della form

BIOINFO3 - Lezione 3110 RICEZIONE DATI DELLA FORM Abbiamo visto che in $ENV{QUERY_STRING} sono contenuti i dati $ENV{QUERY_STRING}=nome=Nicola&cognome=Cannata Si splitta la stringa sul carattere & inserendo il Ora si esegue un ciclo foreach per ogni elemento La variabile $e contiene via via il contenuto delle singole celle $e=$values[0]=nome=Nicola e si splitta la stringa $e sul carattere di = Nel primo ciclo ($nome,$valore)=(nome,Nicola) e si assegna $FORM{$nome}=$valore $FORM{nome}=Nicola Nel secondo ciclo $e=$values[1]=cognome=Cannata ($nome,$valore)=(cognome,Cannata) e si assegna $FORM{$nome}=$valore $FORM{cognome}=Cannata

BIOINFO3 - Lezione 3111 ARRAY %FORM Alla fine di questo gruppo di istruzioni il programma cgi-bin ha a disposizione larray associativo %FORM da cui ricavare tutti i dati inseriti dallutente nella form (e ovviamente anche i campi hidden). Le chiavi dellarray associativo sono i nomi dei campi di input. Nel programma benvenuto.pl ora si possono usare tranquillamente tali valori ad esempio per stamparli

BIOINFO3 - Lezione 3112 IL METODO POST Abbiamo finora visto la trasmissione di dati ad un programma cgi-bin: direttamente sullURL del programma dopo il ?. Gli argomenti sono ricevuti da una form con il metodo GET. I dati sono aggiunti sempre allURL dopo il ? e vengono ricevuti come stringa da splittare (prima sul carattere di & e poi sul carattere di =) nella variabile di ambiente $ENV{QUERY_STRING}. In entrambi i casi i dati vanno a fare parte integrante dellURL. Con il metodo POST i dati non sono invece visibili nellURL (e ciò può essere utile per campi hidden o di tipo password). Il programma cgi riceverà i dati direttamente sul suo standard input (STDIN) ancora nel formato nomecampo 1 =valoreinserito 1 &nomecampo 2 =valoreinserito 2 &…... programma STDOUT STDIN Dati

BIOINFO3 - Lezione 3113 CODIFICA DEI DATI I dati che il programma riceve sono preventivamente sottoposti ad una codifica per poter essere trasmessi in rete. Sicuramente avrete già visto che tutti gli spazi in un URL sono trasformati in +. Altri caratteri sono trasformati nella forma %xx dove xx è il codice ASCII del carattere (in esadecimale). Se a qualcuno interessassero tutti i codici ASCII gli consiglio di visitare il sito Ad esempio: (space) + \t (tab) %09(9 decimale) \n (new-line) %0A(10 decimale) / %2F ~ %7E & %26(38 %40(64 decimale) % %25(37 decimale) N.B. Per quanto riguarda il carattere & non vengono codificati quelli che fungono da separatore tra le coppie nomecampo=valoreinserito ma solo eventuali altri contenuti nel nome del campo o nei valori inseriti

BIOINFO3 - Lezione 3114 LA FORM Proviamo a scrivere una form che trasmetta al programma cgi i dati col metodo POST E proviamo ad inserire dei dati contenenti spazi e caratteri speciali

BIOINFO3 - Lezione 3115 IL CGI-BIN Scriviamo il programma provapost.pl che deve ricevere i dati

BIOINFO3 - Lezione 3116 IL RISULTATO Eseguiamo il programma premendo il bottone INVIA DATI

BIOINFO3 - Lezione 3117 COSA E SUCCESSO? La prima istruzione print "Content-type:text/html\n\n"; sappiamo ormai benissimo che serve a segnalare al browser la natura dei dati che sta per ricevere! Listruzione read(STDIN,$buffer,$ENV{CONTENT_LENGTH}); non labbiamo invece mai incontrata. Essa legge dal file associato alla handle passata come primo parametro (quindi dallo standard input STDIN) un numero di caratteri corrispondente a quanto specificato dal terzo parametro (la variabile dambiente $ENV{CONTENT_LENGTH} settata dal server, che in questo caso vale 47 ) assegnando i caratteri prelevati alla variabile secondo parametro (e quindi a $buffer) Nello STDIN del programma cgi provapost.pl quindi erano stati scritti 47 caratteri dal server e precisamente due coppie nome=valore separate da &: nome=Qui+Quo+%26+Qua & =qqq%40paperopoli.com

BIOINFO3 - Lezione 3118 ARRAY %FORM Le istruzioni successive servono ancora alla creazione di un array associativo %FORM destinato a contenere i dati, in modo analogo a quanto visto per il metodo spezza la stringa dei dati (in $buffer) sul carattere & inserendo ciascuna coppia nome=valore Nel nostro esempio nome=Qui+Quo+%26+Qua, =qqq%40paperopoli.com ) ovvero $pairs[0]= nome=Qui+Quo+%26+Qua $pairs[1]= =qqq%40paperopoli.com SI effettua quindi un ciclo foreach su ciascun elemento (chiamandolo $pair) ed effettuando un secondo split sul carattere = ($nome,$valore)=split(/=/,$pair);

BIOINFO3 - Lezione 3119 ARRAY %FORM Nel primo ciclo: $nome= nome $valore= Qui+Quo+%26+Qua Nel secondo ciclo: $nome= $valore= qqq%40paperopoli.com Prima di effettuare lassegnamento allarray associativo si devono decodificare i caratteri speciali $valore=~ tr/+/ /; (è equivalente a $valore=~ s/+/ /g; ovvero trasforma ogni carattere + contenuto in $valore in uno spazio (ad esempio Qui+Quo+%26+Qua diventa Qui Quo %26 Qua ) $valore=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; è un po piu complesso ma permette di trasformare ogni stringa %xx nel carattere avente il codice ASCII xx. Il numero esadecimale dopo il % è catturato nella variabile $1 grazie alle parentesi tonde. La funzione hex restituisce il numero decimale corrispondente e la funzione pack lo trasforma nel carattere con quel codice ASCII decimale. Il parametro e permette di avere delle espressioni nella parte che viene sostituita. Senza la e ogni stringa %xx sarebbe stato sostituita da pack("C",hex($1)) e non dal risultato dellespressione. Senza la g sarebbe stata sostituita solo la prima stringa %xx ma non le successive!

BIOINFO3 - Lezione 3120 RICAPITOLANDO Nel nostro caso, nel primo ciclo avremo finalmente ripristinato il dato originale inserito dallutente. $valore= Qui Quo & Qua Al termine di questo gruppo di istruzioni, che vi consiglio di prendere così comè e di inserirlo in tutti i vostri programmi cgi che ricevono dati con il metodo POST da una form, nellarray associativo %FORM avremo le due chiavi nome, , associate rispettivamente ai valori Qui Quo & Qua e $FORM{nome}= Qui Quo & Qua $FORM{ }= E tali valori potranno essere usati a piacere dal programma, ad esempio per inserirli in un database MySQL o per fare delle ricerche.

BIOINFO3 - Lezione 3121 ESERCIZIO Ora vi invito a scrivere un programma perl, attivato via cgi da una form con il metodo POST, che: stampi in una tabella (con bordo) a due colonne: Nella prima riga le intestazioni della tabella: nome nella prima colonna e valore nella seconda. Nelle righe successive: nella prima colonna il nome del campo della form e nella seconda il valore inserito dallutente. Se lutente non avesse inserito alcun valore inserire uno spazio HTML ( ) per non rovinare esteticamente la tabella. I nomi dei campi devono apparire in ordine alfabetico

BIOINFO3 - Lezione 3122 ESERCIZIO Si richiami il programma con la form generata dal seguente codice HTML

BIOINFO3 - Lezione 3123 ESERCIZIO Ecco la form

BIOINFO3 - Lezione 3124 ESERCIZIO Ed ecco come non deve rispondere il programma cgi-bin, poiché lascia dei buchi nella tabella in corrispondenza ai valori non inseriti nella form

BIOINFO3 - Lezione 3125 ESERCIZIO Ecco invece la versione corretta della tabella, senza gli antiestetici buchi!

BIOINFO3 - Lezione 3126 ESERCIZIO Ecco infine il codice del programma!

BIOINFO3 - Lezione 3127 IL MODULO CGI Ora esiste anche un modulo del Perl (si tratta di oggetti preconfezionati da usare a scatola chiusa; ne vedremo un altro per gestire linterazione con MySQL) che permette di estrarre in modo molto semplice i parametri ricevuti da una form. Una volta che avete capito come funziona il passaggio dei parametri, potete usare semplicemente questo modulo (sia per GET che per POST)!!! # richiesta di usare il modulo CGI # $i è un nuovo oggetto CGI } # ricavo i parametri della form # paper era un campo di tipo FILE # il file UPLOADATO viene salvato in una stringa

BIOINFO3 - Lezione 3128 ESERCIZIO Esercizio 16. Progettare una form HTML con tre campi di input (dimensione 10 caratteri, massimo numero di caratteri letto 10) organizzati in una tabella senza bordo di 2 colonne e 3 righe: login (di tipo text), password e re-type password (di tipo password). Premendo il bottone REGISTRATI ORA viene attivato un programma iscrivi.pl a cui sono trasmessi i dati della form con il metodo POST. Il programma deve confrontare i due campi di password e se uguali restituire una pagina HTML con titolo REGISTRAZIONE EFFETTUATA e con una scritta (ad esempio in ) Sono stati registrati i dati dellutente login-dellutente. Altrimenti (se le due password sono diverse) restituire una pagina HTML con titolo REGISTRAZIONE FALLITA e con la scritta ATTENZIONE! La password digitata la seconda volta non coincide con la prima. Premere BACK e reinserire i dati

BIOINFO3 - Lezione 3129 RIEPILOGO Installazione e requisiti dei programmi CGI-BIN Attivazione e passaggio di argomenti sullURL Attivazione da una form: metodo GET Attivazione da una form: metodo POST Come ricevere i dati nei tre casi Il modulo CGI