Migliorare il messaggio di errore

  

La buona notizia è che è possibile risolvere entrambi i problemi, fornendo semplicemente un messaggio alternativo nell'attributo value del campo nascosto, come nel seguente esempio:

Ora, come la forma viene convalidato, se il nome utente non viene fornito, l'utente riceverà il nostro messaggio di errore personalizzato invece del messaggio di errore di ColdFusion di default. C'è un bug in ColdFusion MX, dove i messaggi di errore personalizzati per i campi modulo di richiesta sono state ignorate. Questo è un problema noto con Macromedia e dovrebbe essere fissato nella loro prossima ColdFusion MX Updater 2, che dovrebbe essere disponibile per il download per il momento in questo articolo viene pubblicato. Anche se la stringa di cui l'attributo valore può solo essere qualsiasi testo che si desidera visualizzare, mettendo HTML supplementari all'interno della stringa è anche accettabile. Perché è semplicemente passato attraverso il browser, si potrebbe, per esempio, uso o tag per aggiungere un po 'più di formattazione ai tuoi messaggi di errore.

Okay, allora l'attributo valore ti permette di migliorare la formulazione del messaggio di errore, ma per quanto riguarda l'aspetto complessivo della schermata in cui viene offerto? Come funziona questo messaggio pregiudicare l'aspetto globale della vostra applicazione colorati, con i suoi colori pastello sfondo del corpo blu e colori del testo adatto, improvvisamente appare sullo schermo con il suo nero Times Roman testo su uno sfondo bianco? E per quanto riguarda barra degli strumenti di navigazione del tuo sito? Se un utente ha domande circa l'errore che appare, come può trovare la tua pagina per contattarci? Gli utenti non sono neppure vedere il piè di pagina standard con un link al Webmaster. Improvvisamente, questo ingegnoso strumento automatico non sembra utile, come ha fatto a prima vista. Anzi, molti sviluppatori hanno semplicemente abbandonato proprio per questo motivo. E 'un problema che può essere risolto, tuttavia, almeno per un maggior grado di lasciare la pagina in questo blackon pianura formato in bianco. È possibile controllare l'intero layout della pagina (colore, font, e così via) utilizzando normali tag HTML. È anche possibile inserire il vostro barre degli strumenti di navigazione e altre funzioni a destra della pagina. La soluzione è quella di aggiungere al tuo codice CFERROR type = "validazione", che consente di designare un modello di gestione degli errori di vostra creazione per formattare l'aspetto proprio di questi gli errori di convalida.

L'ultimo dei tre problemi individuati nella parte superiore per quanto riguarda l'utilizzo di questo server automatico di validazione lato può essere il peggiore di tutti, e per molti, è una ragione sufficiente per non anche raccomandare l'uso di server-side validazione automatica. Il problema è che il processo richiede all'utente di "usare il tasto indietro del browser Web per tornare alla pagina precedente e correggere i problemi elencati." È una buona cosa consiglia? Probabilmente no. In alcuni casi, facendo causa modo che le informazioni che è stato iscritto sul modulo da perdere! Immaginate la frustrazione di un utente a spendere un bel po 'di tempo compilando un modulo di registrazione che chiedeva di diversi pezzi di dati. S / egli sostiene, è detto che essa contiene un errore (forse solo un errore), e l'utente preme il pulsante Indietro solo per scoprire che il modulo viene cancellata! E si può fare assolutamente niente su questo problema. E 'generalmente connesse alla cache del browser questioni che non sono facilmente controllabili. Potreste pensare che questo non è un grosso problema comunque, perché non avendo la richiesta di convalida significa che l'utente non ha inserito nulla per il campo obbligatorio nel primo posto, ma ritengono che vi starete chiedendo per diversi campi di dati, di cui solo uno non riesce la convalida. Il problema non è così grave, se la richiesta è solo per il nome utente e password. Ma in una forma più complessa, che potrebbe effettivamente diventare un grosso problema. Solo essere sensibili alla sfida. Per fortuna, esistono alternative alla convalida sul lato client che analizzeremo in seguito. Per ora, avete altri tipi di convalida che è possibile eseguire utilizzando questo server automatico di validazione lato. Dopo aver capito come funziona il processo in generale, è necessario conoscere le altre direttive.

Oltre alla convalida _REQUIRED, molti più fornire alcune delle convalide semplice che abbiamo elencato in precedenza in questo articolo. Così semplice come queste opzioni possono essere visualizzati, è necessario essere a conoscenza di alcune questioni per la maggior parte di essi. Molti di questi temi ruotano intorno al fatto che, oltre alla semplice validazione dei dati inseriti, il processo di validazione cambia anche i dati, in alcuni casi prima del suo passaggio sulla pagina d'azione e in modi che non possono essere ovvio, né previsto, come L'elenco seguente descrive:

_integer: Se il numero inserito dall'utente contiene virgole o segni del dollaro, questi personaggi vengono eliminati per la validazione e non sono passato alla pagina di azione. La documentazione dice anche che il numero di giri è entrato se include valori decimali, ma in realtà, si tronca semplicemente li.

_float: Consente di rimuovere le virgole e segni di dollaro stesso modo in cui _integer fa, ma converte anche il numero (come illustrato nella pagina d'azione) in modo che essa ha sei posti dopo la virgola, riempiti con zeri.

_range: Si attende la gamma di valori da cui l'attributo valore min = max = xxx yyy, separati da uno spazio. Tratta anche i numeri stessi _float fa (che consente valori decimali e convertendo il numero in modo che dispone di sei posti giusti di decimali, così come rimuovere le virgole e segni di dollaro). _range Inoltre possibile specificare un solo contorno. (Ma si deve fare uno spazio dopo il numero, come in min = 5. Essa non può min stato = 5 senza spazio, almeno prima della versione 5, in quanto così facendo potrebbe causare un errore grave.) Infine, perché il intervallo è specificato l'attributo valore, non è in grado di offrire un messaggio personalizzato per una serie di convalida non riuscita.

_DATE: Accetta un'ampia gamma di formati, come il 12/2/01, 12/2/2001, e anche 12-2-01, 12 / 2, 2 dicembre, 2 dicembre, e così via. Più importante, converte la data di entrata in un formato ODBC data: 12/13/01 diventa (d '2001-12-13 '). Questo va bene se sei memorizzare il valore in un database ODBC (perché consente di risparmiare il necessario per convertire la data di questo formato), ma se è necessario per la visualizzazione di una pagina di azione (o memorizzati in un database ODBC) , si deve convertire. Essere a conoscenza delle DateFormat () la funzione, che è disponibile per l'uso per convertire la nuova versione di nuovo ad una normale formato data. Se l'anno è lasciato una data, la presente direttiva non si assume l'anno in corso. Se solo un numero unico è entrato, però (forse l'intenzione una data nel mese in corso), non funziona affatto. Questo numero unico è respinta in quanto una data non valida. _DATE Non accetta le date in formato europeo (giorno prima del mese), se è l'unico modo che la data potrebbe essere valida: 13/12/01, quindi, viene accettata e diventa (d '2013-12-01 '). Anche così, utilizzando l'opzione _eurodate è preferibile utilizzare solo _DATE se gli utenti entrano le date nel formato europeo. Stranamente, se il valore immesso è o non è una data valida (13/13/13) o non una data a tutti (x), il messaggio di default per entrambi è semplice: Il valore immesso per il campo formfield ( 'value') è non correttamente formattato. Non è in realtà ciò che deve essere una data, né tanto meno uno valido. Ciò suggerisce che in realtà si dovrebbe fornire un messaggio personalizzato.

_eurodate: Condivide tutte le sfaccettature della _DATE. L'unica differenza è che il formato di default atteso è l'ordine europeo del giorno, seguito da mesi (e poi, eventualmente, anno).

_time: Come si _DATE, questa direttiva non convalida solo il tempo, ma anche lo converte in un formato di tempo ODBC: 1:12 diventa (t '01: 12:00 '). Come con _DATE, questa conversione va bene se sei l'archiviazione dei dati in un database ODBC (in quanto consente di risparmiare la necessità di convertirlo in questo formato), ma se è necessario per la visualizzazione di una pagina di azione (o è memorizzato in un non-database ODBC), è necessario convertire nuovamente utilizzando la disposizione TimeFormat () function. _time accetta a / am / am e P / am / pm per un periodo di designazione. Se la designazione è lasciato, assume am. È inoltre possibile inserire solo un'ora e un designatore periodo, come il 10, il che presuppone che ora (10:00:00). Se solo un numero unico è entrato senza un designatore periodo, tuttavia, forse perché l'utente intende significare un tempo al mattino, che il valore è respinta come un tempo valido. Stranamente, se una data è inserito, esso accetta, ma copritrici al valore (t '00: 00:00 '), a mezzanotte significato. (Tale risultato può essere logico, ma è probabile che non previsto dalla maggior parte degli sviluppatori.) A poche altre questioni di carattere generale si applicano a uno o più di questi server-side convalide, come il seguente elenco descrive:

Come mostrato negli esempi precedenti in questo articolo, dove siamo stati la convalida sia l'campi username e password, è possibile, naturalmente, convalidare più di un campo in un momento in una forma. È sufficiente aggiungere un campo nascosto-tag per ogni campo che si desidera convalidare. Il messaggio di errore visualizzato riflette tutti gli errori di convalida che si verificano.

È inoltre possibile specificare più di una convalida per ogni campo. Per indicare che un campo di età è tanto necessario e deve essere un intero, per esempio, è sufficiente creare due nascosti i tag campo denominato age_required e age_integer, rispettivamente.

Aggiunta di una regola di convalida a un campo non lo rende un campo obbligatorio. È necessario aggiungere un distinto _REQUIRED campo nascosto se si vuole garantire un accesso utente.

Si può essere preoccupati per l'effetto sul tempo di elaborazione server-side, se è sempre eseguire questa convalida. Qualsiasi tempo perduto è trascurabile, in realtà, rispetto alle più importanti prestazioni drenanti sfaccettature. You do affrontare una questione sfortunata, però, che deve restare sempre al corrente di: pagine azione CF sempre guardare un modulo per determinare se esso contiene i campi che termina con i suffissi. Inoltre, quindi rimuove i campi dall'elenco dei campi del modulo utilizzato nel tag di aggiornamento del database CFINSERT e CFUPDATE. Ciò potrebbe causare un problema se si dispone di un campo nel database, come Joined_Date (cioè la data in cui un utente si è iscritto a vostro servizio) . CF vedrebbe ogni campo di modulo che contengono quel nome (Joined_Date) come una convalida per un "si è iscritto a" campo. Peggio, perché sarebbe quindi rimuovere quel campo Joined_Date prima della trasformazione CFINSERT o CFUPDATE, è possibile che la colonna non viene mai inserito / aggiornato. Ancora una volta, solo essere a conoscenza della questione. È spesso una fonte di molto difficile da risolvere bug. So che è un breve riassunto del server automatico di validazione lato. E 'una caratteristica che ha i suoi vantaggi e svantaggi. Ma una preoccupazione principale dovrebbe essere quello che, a causa di convalida sul lato server costringe l'utente a backup per correggere eventuali errori, in realtà non dovrebbe essere usato se il modulo chiede all'utente per più di un paio campi di input. (E si vede poi che codifica manuale di validazione lato server viene utilizzato per altri scopi del tutto.) Invece, se avete bisogno di validare i campi di modulo diversi, è possibile fornire una migliore esperienza utente utilizzando la convalida lato client, e le funzioni automatiche in CF rendono questo abbastanza facile da fare, anche se non sai JavaScript.

un articolo presentato da Jill Babcoff


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo "Migliorare il messaggio di errore" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 289 users browsing the articles directory