L'input dell'utente di un modulo di contatto deve essere convalidato?

0

Sui siti Web delle società di software che visito per la prima volta, apro spesso la pagina "Contattaci" e provo a inviare il modulo di contatto con tutti i campi vuoti. Sono solo curioso se convalidano l'input dell'utente.

Se è appena inviato o solo validato male (ad esempio solo la convalida di Javascript), mi sento spesso pensare

Oh, look how sloppy they are! Can't even validate user input. That calls itself a software company? No, I don't think I want to buy any software services of them.

Un mio amico ha un modulo di contatto così "sciatto". Puoi inviare un modulo completamente vuoto. Gli ho chiesto perché non convalida l'input dell'utente e ha detto:

Look, I want that customers can contact me. They should enter any information they want. If they only want to enter a message and leave the other fields empty, why should I care? They enter the relevant information anyway. I do not want to add any barriers when contacting me.

Non gli ho chiesto quanti messaggi vuoti ha, comunque.

Tuttavia, qual è l'opzione migliore ora? Entrambi gli argomenti (controlla come la compagnia gestisce gli input dell'utente e non aggiungendo barriere nel contattare) sembrano avere un senso per me.

Voglio che l'utente possa contattarmi facilmente, ma ho ancora l'impressione di essere preciso durante la programmazione delle pagine web.

    
posta Uooo 04.07.2013 - 08:11
fonte

4 risposte

4

Dal punto di vista UX

and try to submit the contact form with all fields empty
[...]
If they only want to enter a message and leave the other fields empty, why should I care?

Tu e il tuo amico non state parlando degli stessi scenari.

Lasciando che l'utente invii tutti i campi vuoti su un modulo di contatto è un errore, perché non ci sono casi validi in cui il cliente ti contatterà senza dire nulla. Se non ha nulla da dire, perché sta inviando un modulo?

L'unico scenario possibile in cui il cliente invia effettivamente un modulo di contatto vuoto è che ha premuto Invio per errore quando lo stato attivo era su un campo di testo a riga singola (o per errore ha premuto il pulsante di invio).

La convalida, a questo livello, almeno quella lato client, è un must e ha uno scopo specifico. Se un cliente invia un modulo di contatto vuoto, deve essere informato che qualcosa non va e la presentazione deve essere evitata.

Rendere obbligatorio tutto il campo su un modulo di contatto non è una soluzione neanche. Quando voglio dire a qualcuno che c'è un errore di battitura nella home page del loro sito web, non voglio pensare all'argomento del messaggio, non voglio dare il mio indirizzo email, non lo faccio t voglio dare il mio numero di telefono, e non voglio specificare il nome della mia ragazza, perché, dannazione, tutto quello che voglio dire è che c'è un errore di battitura.

Dal punto di vista tecnico

L'elaborazione dei moduli di contatto inviati è un'operazione complicata che richiede molto tempo. Filtrare tecnicamente le richieste non necessarie migliora la produttività della persona incaricata di leggere quei messaggi.

Non è necessario visualizzare i messaggi vuoti nel pannello di amministrazione. Direi anche che i messaggi di lunghezza inferiore a, diciamo, dieci caratteri, sono inutili e non dovrebbero essere visualizzati neanche.

D'altra parte, fare correttamente la risposta di validazione è un compito difficile: devi implementare la validazione stessa lato server e, facoltativamente, lato client, e rispondere correttamente con un messaggio di errore (spesso) localizzato o più pulito, più UX modo orientato.

Per motivi di semplicità e data la specificità del caso, non farei alcuna risposta di convalida lato server, solo lato client. Se l'utente che non ha JavaScript vuole inviare un modulo di contatto vuoto, va bene: gli amministratori non vedranno mai tali invii, ma il cliente sarà convinto che il modulo è stato inviato correttamente. Questo caso è troppo specifico (ovvero l'utente non ha JavaScript, commette un errore durante l'invio di un modulo e questo errore non influenza il sistema) da gestire in modo specifico.

    
risposta data 04.07.2013 - 08:42
fonte
1

La convalida è importante per due motivi:

  1. Se non hai alcuna convalida, potresti finire con il tuo database / casella di posta piena di messaggi inutili (messaggi che non hanno contenuto o messaggi di cui mancano le informazioni sul mittente o che non hanno senso).

  2. Iniezione SQL. Non avere alcuna convalida può compromettere il tuo banca dati.

Tuttavia:

No. 1 potrebbe non essere un problema se, come il tuo amico, non ti dispiacerebbe ottenere alcuni campi vuoti.

No. 2 potrebbe non essere un problema se non si salvano i dati dal modulo in un database (ho visto i moduli di contatto che utilizzano i dati per inviare una e-mail al dipartimento di supporto dell'azienda senza mai memorizzarli in un database, ad esempio .)

Quindi la risposta qui è (come tante volte): è una buona pratica, ma dipende dai particolari del progetto.

    
risposta data 04.07.2013 - 10:21
fonte
0

Dipende dai requisiti. In generale, dovresti trovare un equilibrio tra no e troppa convalida. Mi piacerebbe convalidare su campi che devono essere sempre significativi, come numeri di telefono, indirizzi e-mail e simili. I campi di testo liberi sono ovviamente privi di convalida. Direi che non convalidare su moduli vuoti è uno spreco di andata e ritorno (se viene salvato!). Una cosa che dovresti considerare per i moduli di contatto come con tutti gli input è la convalida / sanitizzazione contro lo scripting cross-site.

    
risposta data 04.07.2013 - 08:26
fonte
0

Devi convalidare il modulo prima dell'invio dell'utente. Perché se non hai convalidato correttamente i campi l'utente può inviare moduli vuoti senza dati.

    
risposta data 04.07.2013 - 09:18
fonte

Leggi altre domande sui tag