Imposta sempre la lunghezza massima dell'inserimento del modulo?

0

Sfondo

Sto cercando di mettere insieme un'applicazione web a pagina singola con molti input di moduli. Ho riscontrato problemi con altre pagine Web in cui è presente un brutto errore SQL inviato all'utente se il vincolo maxlength del campo nella tabella è stato violato. Mi piacerebbe sapere come gestire questo tipo di convalida.

Domande

  1. Devo fare in modo che l'input del modulo HTML abbia una dimensione limitata per ogni campo di input (al contrario del targeting dei campi significativi)?

  2. Il maxlength del campo di input dovrebbe essere legato programmaticamente ai vincoli dei campi del database (tramite una query delle tabelle di sistema del database) o sarebbe irrealistico?

Sto cercando sia le migliori pratiche che ciò che è gestibile (non voglio dover fare molto lavoro extra se la progettazione del database cambia). È più facile decodificare l'errore SQL post-invio e informare l'utente?

Domande correlate

use of additional validation like "between 6 and 20 characters" less frequent, as this increases maintenance work on changes

    
posta Chic 10.03.2015 - 17:25
fonte

1 risposta

2
  1. Sì, probabilmente dovresti inserire maxlength constraints su ogni campo in cui esistono tali vincoli. La ragione per farlo è principalmente in modo che l'utente possa ottenere un riscontro immediato, invece di dover inviare la richiesta e che l'applicazione gli dica che non possono farlo (sebbene ciò possa accadere in alcuni casi);

  2. Il tentativo di derivare maxlength dallo schema del database è necessariamente andando a legare l'implementazione / definizione del database tecnico con l'HTML di front-end - cioè, si avrà, in una forma o nell'altra, il codice di generazione della vista deve essere a conoscenza delle strutture di dati sottostanti e del modo in cui le tabelle del database sottostante vengono mappate sull'interfaccia utente. Tale accoppiamento, nella mia esperienza, aumenta effettivamente il peso dell'introduzione di un cambiamento. Potrebbe anche fornire il valore sbagliato, poiché HTML5 maxlength è definito in termini di punti di codice Unicode, mentre la lunghezza massima nei database è spesso definita per UTF-16 o lunghezza in byte;

Nella mia esperienza, una volta impostata la lunghezza massima di alcuni dati, dovrebbe cambiare solo raramente e, a causa di ciò, il carico di manutenzione è accettabile.

Inoltre, anche se si inserisce maxlength e minlength nel modulo HTML, sarà comunque necessario convalidare sul lato server, perché chiunque potrebbe ancora inviare un modulo con dati che non verrebbero convalidati nel modulo HTML.

    
risposta data 10.03.2015 - 17:44
fonte

Leggi altre domande sui tag