Sobes.tech
Junior

Que tipos de validação existem para formulários web?

sobes.tech IA

Resposta da IA

  • Validação do lado do cliente (Client-Side Validation): Realizada no navegador antes de enviar os dados ao servidor. Proporciona um feedback rápido ao utilizador.

    • Atributos HTML5 (required, minlength, maxlength, type="email/url/number", pattern).
    • JavaScript: verificação manual dos campos, uso de bibliotecas/frameworks (por exemplo, jQuery Validation Plugin, VeeValidate, Formik).
    // Exemplo de validação simples em JavaScript
    function validateForm() {
      let x = document.forms["myForm"]["fname"].value;
      if (x == "") {
        alert("O nome deve ser preenchido");
        return false;
      }
      return true;
    }
    
  • Validação do lado do servidor (Server-Side Validation): Realizada no servidor após receber os dados do cliente. É crucial para a segurança e integridade dos dados, pois a validação do lado do cliente pode ser contornada.

    • Verificação de tipos de dados.
    • Verificação do formato dos dados.
    • Verificação de restrições (comprimento, intervalo).
    • Verificação de unicidade (por exemplo, email ou nome de utilizador).
    • Verificação de lógica de negócio.
    # Exemplo de validação básica do lado do servidor (Flask)
    from flask import request, Flask
    
    app = Flask(__name__)
    
    @app.route('/submit', methods=['POST'])
    def submit_form():
        name = request.form.get('name')
        if not name: # Verificação de campo vazio
            return "Erro: O nome não está preenchido", 400
    
        # Adicionar outras verificações: formato, comprimento, etc.
    
        return "Formulário enviado com sucesso"
    
    if __name__ == '__main__':
        app.run(debug=True)
    
  • Validação em tempo real (Real-time Validation): Combinação de validação do lado do cliente e do servidor, que fornece feedback ao utilizador à medida que insere dados. Frequentemente implementada com requisições AJAX ao servidor ou verificações complexas no cliente.

Vantagens e desvantagens:

Tipo de validação Vantagens Desvantagens
Cliente (Client-Side) Feedback rápido, menor carga no servidor Pouco fiável (pode ser evitado), depende do navegador
Servidor (Server-Side) Fiável, garante segurança e integridade Mais lento, maior carga no servidor
Em tempo real (Real-time) Melhor UX Complexidade de implementação

O uso combinado de validações do lado do cliente e do servidor é a melhor prática para garantir uma boa experiência do utilizador e a fiabilidade dos dados. O lado do cliente para conveniência e feedback rápido, o lado do servidor para garantir segurança e correção.