Sobes.tech
Junior

Millised validatsiooni tüübid on olemas veebivormidele?

sobes.tech AI

Vastus AI-lt

  • Kliendi poole valideerimine (Client-Side Validation): Teostatakse brauseris enne andmete saatmist serverile. Tagab kiire tagasiside kasutajale.

    • HTML5 atribuudid (required, minlength, maxlength, type="email/url/number", pattern).
    • JavaScript: käsitsi kontrollimine, teekide/raamistikute kasutamine (näiteks jQuery Validation Plugin, VeeValidate, Formik).
    // Näide lihtsast JavaScripti valideerimisest
    function validateForm() {
      let x = document.forms["myForm"]["fname"].value;
      if (x == "") {
        alert("Nimi peab olema täidetud");
        return false;
      }
      return true;
    }
    
  • Serveri poole valideerimine (Server-Side Validation): Teostatakse serveris pärast andmete saamist. Oluline turvalisuse ja andmete terviklikkuse tagamiseks, kuna kliendi valideerimist saab vältida.

    • Andmetüüpide kontroll.
    • Andmete formaadi kontroll.
    • Piirangute kontroll (pikkus, vahemik).
    • Unikaalsuse kontroll (näiteks e-post või kasutajanimi).
    • Ärilogika kontroll.
    # Põhjalik serveri valideerimise näide (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: # Tühi väli
            return "Viga: Nimi ei ole täidetud", 400
    
        # Lisa teisi kontrollimisi: formaadi, pikkuse jms.
    
        return "Vorm on edukalt saadetud"
    
    if __name__ == '__main__':
        app.run(debug=True)
    
  • Reaalajas valideerimine (Real-time Validation): Kombinatsioon kliendi ja serveri valideerimisest, mis annab kasutajale tagasisidet andmete sisestamise ajal. Sageli teostatakse AJAX-päringute abil serverile või keerukate klient-põhiste kontrollidega.

Eelistused ja puudused:

Valideerimise tüüp Eelistused Puudused
Kliendi pool Kiire tagasiside, vähem koormust serverile Ebausaldusväärne (saab mööda minna), sõltub brauserist
Serveri pool Usaldusväärne, tagab turvalisuse ja andmete terviklikkuse Aeglasem tagasiside, suurem koormus serverile
Reaalajas Paranenud kasutajakogemus Keeruline rakendada

Mõlema (kliendi ja serveri) valideerimise kasutamine on parim praktika, et tagada hea kasutajakogemus ja andmete usaldusväärsus. Kliendi pool on mugav kiireks ja mugavaks tagasisideks, serveri pool aga turvalisuse ja õigsuse tagamiseks.