Sobes.tech
Junior

Jaké typy validací existují pro webové formuláře?

sobes.tech AI

Odpověď od AI

  • Validace na straně klienta (Client-Side Validation): Provádí se v prohlížeči před odesláním dat na server. Zajišťuje rychlou zpětnou vazbu uživateli.

    • Atributy HTML5 (required, minlength, maxlength, type="email/url/number", pattern).
    • JavaScript: ruční kontrola polí, použití knihoven/frameworků (například jQuery Validation Plugin, VeeValidate, Formik).
    // Příklad jednoduché JavaScriptové validace
    function validateForm() {
      let x = document.forms["myForm"]["fname"].value;
      if (x == "") {
        alert("Jméno musí být vyplněno");
        return false;
      }
      return true;
    }
    
  • Validace na straně serveru (Server-Side Validation): Provádí se na serveru po obdržení dat od klienta. Kriticky důležitá pro bezpečnost a integritu dat, protože klientskou validaci lze obejít.

    • Kontrola typů dat.
    • Kontrola formátu dat.
    • Kontrola omezení (délka, rozsah).
    • Kontrola unikátnosti (například email nebo uživatelské jméno).
    • Kontrola obchodní logiky.
    # Příklad základní server-side validace (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: # Kontrola na prázdné pole
            return "Chyba: Jméno není vyplněno", 400
    
        # Přidat další kontroly: formát, délka atd.
    
        return "Formulář byl úspěšně odeslán"
    
    if __name__ == '__main__':
        app.run(debug=True)
    
  • Validace v reálném čase (Real-time Validation): Kombinace validace na straně klienta a serveru, poskytující zpětnou vazbu uživateli během zadávání dat. Často realizováno pomocí AJAXových požadavků na server nebo složitých klientských kontrol.

Výhody a nevýhody:

Druh validace Výhody Nevýhody
Client-Side Rychlá zpětná vazba, méně zatížení serveru Nespolehlivá (lze obejít), závisí na prohlížeči
Server-Side Spolehlivá, zajišťuje bezpečnost a integritu dat Pomalejší zpětná vazba, větší zatížení serveru
Real-time Vylepšené UX Složitější implementace

Použití obou (Client-Side a Server-Side) validací je nejlepší praxí pro zajištění dobré uživatelské zkušenosti a spolehlivosti dat. Client-Side pro pohodlí a rychlou zpětnou vazbu, Server-Side pro záruku bezpečnosti a správnosti.