www.ivanobambini.it 
Nome utente:
Password:
Nuovo utente

Check your website
HOME | chi sono | portfolio | altro | dove sono | contatti | links |

pointer
I motori di ricerca
-Breve storia
-Come funzionano
-Siti dinamici, Flash, frames
-CMS e indicizzazione
-Spam e guerra agli spammer
-Sull'attendibilita'
-Segnalare un sito
pointer
La professione SEO
-SEO, cosa significa
-Costruire una campagna SEO
-WEB directory e SEO
-Gli algoritmi dei motori
-Keyword density
-Link popularity
-Doorway pages e Cloaking
pointer
Il PageRank di Google
-Introduzione
-Come funziona il PageRank
-Come si calcola il PageRank
-PageRank e struttura dei link
-Conclusioni
pointer
Strumenti utili
-Cosa vedono gli spider
-Risorse e servizi online
-Webmaster tools
-Esempio di analisi di siti web
-Glossario
AltropointerCostruire un form

Prelevare la struttura

L'operazione più comune in un sito web è la creazione di un form. Un form può avere due finalità:
  1. Inviare dati che, senza essere memorizzati in un database, sono utilizzati per operazioni successive (esempio, inviare una e-mail, indirizzare a una pagina web).
  2. Aggiungere dati in un database, oppure aggiornare dati preesistenti.
Occupiamoci per il momento della prima condizione di questo secondo caso: aggiunta in un database.

Una visione semplicistica del compito istintivamente sarebbe portata a procedere in questo modo: si crea un form in una pagina HTML, e lo si spedisce ad una pagina ASP o PHP, che processa i dati inviati, ne controlla la validità, e li inserisce nel database.

Semplice, ma sbagliato. La prima azione -creare una pagina HTML- contraddice già la nostra regola numero 5: il codice non deve contenere duplicazioni. Ora, dichiarare nomi e caratteristiche dei campi in un form per scrivere in un database quando queste informazioni sono già presenti nel database, costituisce appunto una duplicazione del codice, oltre ad essere potenziale fonte di errori involontari.
Se infatti si cambia qualcosa nel database, dobbiamo intervenire nella pagina HTML per riflettere tali cambiamenti. Inoltre, la seconda condizione (modifica) che per forza di cose richiede una pagina dinamica, sarebbe a sua volta un ulteriore duplicato.

Sia ASP che PHP contengono istruzioni in grado di aprire una tabella e leggere i nomi dei campi e le loro proprietà. La sintassi cambia leggermente nei due linguaggi, ma le proprietà che ci interessano sono sempre le stesse: nome del campo, tipo di campo (numerico, carattere, blog, logico, data, etc...), lunghezza massima consentita, obbligatorietà. Cioè, tutte le informazioni che dovremmo scrivere nel form in HTML.

Avendo disponibili queste proprietà, che è possibile prelevare anche se la tabella è vuota, noi siamo in grado di costruire la label di ogni campo, il tipo di input, il tipo di convalida, e inibire i tasti che immettono caratteri non consentiti. Passiamo in rassegna le problematiche, una ad una:

  • Label
    Se siamo noi a creare il database, è buona norma evitare sigle astruse e scrivere invece in chiaro i nomi dei campi. Quindi, ad esempio, non DATARIF, ma data_di_riferimento, non CODCLI, ma codice_cliente. Se invece il database esiste già e contiene appunto sigle astruse, si può sempre costruire una query che con gli alias traduca in italiano i singoli campi: il risultato finale sarà comunque lo stesso.

  • Tipi di campo
    Possono variare da database a database, così come ogni database può trattarli in maniera differente, ma si possono raggruppare in insiemi. Per ognuno di questi insiemi è possibile ricorrere a un differente tipo di input, come illustra la tabella seguente:
Testo con un limite massimocasella di input con la proprietà maxlength settata sulla lunghezza massima consentita per il campo, e lunghezza fisica calcolata sempre su questo valore, per offrire visivamente un'idea approssimativa dell'input consentito
Testo lungo senza limitetextarea
Data, oppure data e oragruppo di caselle di input che contenga le istruzioni necessarie per scartare le date non valide. Oppure, uno dei tanti tool provvisti di calendario
NumeroCasella di input, anche con allineamento a destra e, intercettando il tipo di numero (intero, con decimali, o valute), abbinato possibilmente a qualche script in grado di inibire alla fonte i tasti non consentiti
Flagcheckbox
  • Obbligatorietà
    Intercettando se il campo corrispondente ammette valore NULL, e dato per scontato che l'obbligatorietà a livello di database coincide con quella dell'input, si tratta di dotare visivamente di asterisco i campi obbligatori e produrre per il form uno script client di convalida appoggiato all'evento onsubmit. Tale script, anche se statico, deve essere creato dinamicamente, ed occorre forzare l'ingresso del server occultando la parola script. Quindi
    <%="<script>"%> in ASP, <?="<script>"?> in PHP.
    Casi particolari, come l'indirizzo e-mail, richiedono un trattamento aggiuntivo, in quanto oltre all'obbligatorietà occorre verificare anche la presenza e la posizione della chiocciola (@) e del punto.
Rigorosamente, tutte le caselle di input avranno come name e id il nome del campo, cioè la proprietà name prelevata. I vantaggi più evidenti di questo modo di procedere sono tre:
  1. Non abbiamo bisogno di scrivere le query, nè quella per costruire il form, nè quella per salvarlo: è sufficiente creare un ciclo che interroghi la tabella estraendo i nomi dei campi.
  2. Se si apportano modifiche al database, non è necessario rimettere mano al codice (regola numero 6).
  3. Il codice è astratto rispetto all'oggetto che tratta, quindi può essere riutilizzato con altri database.
Infine: che dire dell'action? Non c'è motivo di indirizzare il form verso un'altra pagina. Sono rare le circostanze in cui questo è consigliabile (regola numero 1); nella stragrande maggioranza dei casi, il file deve essere sempre lo stesso, e contenere il codice javascript di convalida e le istruzioni per il salvataggio all'inizio, la parte visibile alla fine. Solo quando l'operazione si è conclusa positivamente si inserisce eventualmente il reindirizzamento.

Si tratta di una prassi consolidata che nel nostro caso, affiancata al prelievo dalla struttura del database, presenta un vantaggio aggiuntivo non secondario. Come abbiamo detto all'inizio, il form può servire per aggiungere o modificare dati. L'interfaccia da utilizzare deve essere assolutamente la stessa per entrambi i casi. Lo stato aggiungi o modifica proviene dalla pagina che chiama il form; la differenza consiste solo nel fatto che il primo stato non richiede alcun parametro, il secondo richiede l'ID della riga da modificare. Dopo di che, se ci troviamo in modalità modifica, la query che genera il form sarà la stessa che recupera i dati della riga corrispondente. Quindi nel primo caso i valori di input saranno vuoti oppure di default, nel secondo saranno valorizzati.

Ma ai nostri fini non cambia nulla, se non il fatto che il form deve comunicare a se stesso in quale modalità si trova: come vedremo più avanti, anche la routine di salvataggio può essere una sola, pur contemplando questa differenza.



  • Prelevare la struttura
  • Tabelle con dipendenze
  • Il salvataggio dei dati
  • Alcuni esempi


  • Questo menu e le sezioni corrispondenti non hanno alcuna attinenza con il tema del sito, né apparente logica interna.
    Il loro contenuto è casuale e variabile, e consiste in tools prelevati da altri siti, strumenti di lavoro, link, esperimenti.

    Costruire un form
    -Prelevare la struttura
    -Tabelle con dipendenze
    -Il salvataggio dei dati
    -Alcuni esempi
    Tools
    -Web site templates
    -Color mixer
    -Google map
    -Remote procedure call
    -Standard unicode
    -Slide servizi web
    News e utilities
    -Cultura: eventi e mostre
    -Microsoft B-Central
    -Convertitore di valuta
    -Fusi orari
    -Previsioni meteo
    Media
    -Radio player
    -Movie trailers
    -Photo gallery
    -Come funziona la gallery
    Inizio pagina Inizio pagina
    [HOME] [chi sono] [portfolio] [altro] [dove sono] [contatti] [links]

    Ultimo aggiornamento pagina: 23/02/2007 21:26:41