Sobes.tech
Junior

Kokie validacijos tipai egzistuoja internetinėms formoms?

sobes.tech AI

Atsakymas iš AI

  • Vartotojo pusės patvirtinimas (Client-Side Validation): Atliekamas naršyklėje prieš duomenų siuntimą į serverį. Užtikrina greitą grįžtamąjį ryšį vartotojui.

    • HTML5 atributai (required, minlength, maxlength, type="email/url/number", pattern).
    • JavaScript: rankinis patikrinimas, bibliotekų/rėmų naudojimas (pvz., jQuery Validation Plugin, VeeValidate, Formik).
    // Paprasto JavaScript patvirtinimo pavyzdys
    function validateForm() {
      let x = document.forms["myForm"]["fname"].value;
      if (x == "") {
        alert("Vardas turi būti užpildytas");
        return false;
      }
      return true;
    }
    
  • Serverio pusės patvirtinimas (Server-Side Validation): Atliekamas serveryje po duomenų gavimo. Svarbus saugumo ir duomenų vientisumo užtikrinimui, nes kliento patvirtinimą galima apeiti.

    • Duomenų tipų patikrinimas.
    • Duomenų formato patikrinimas.
    • Apribojimų (ilgis, diapazonas) patikrinimas.
    • Unikalumo patikrinimas (pvz., el. paštas ar vartotojo vardas).
    • Verslo logikos patikrinimas.
    # Pagrindinis serverio patvirtinimo pavyzdys (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: # Tuščias laukas
            return "Klaida: Vardas nėra užpildytas", 400
    
        # Pridėti kitus patikrinimus: formatą, ilgį ir kt.
    
        return "Forma sėkmingai išsiųsta"
    
    if __name__ == '__main__':
        app.run(debug=True)
    
  • Realaus laiko patvirtinimas (Real-time Validation): Kombinuotas klientų ir serverių patvirtinimas, kuris teikia grįžtamąjį ryšį vartotojui įvedimo metu. Dažnai įgyvendinamas naudojant AJAX užklausas į serverį arba sudėtingus klientų patikrinimus.

Privalumai ir trūkumai:

Patvirtinimo tipas Privalumai Trūkumai
Kliento pusė Greitas grįžtamasis ryšys, mažesnis serverio apkrova Nepatikima (gali būti apeita), priklauso nuo naršyklės
Serverio pusė Patikima, užtikrina saugumą ir duomenų vientisumą Lėtesnis grįžtamasis ryšys, didesnė apkrova serveryje
Realaus laiko Pagerintas naudotojo patirtis Sudėtinga įgyvendinti

Naudojant abu (kliento ir serverio) patvirtinimus, tai yra geriausia praktika, siekiant užtikrinti gerą naudotojo patirtį ir duomenų patikimumą. Kliento pusė naudinga greitam ir patogiam grįžtamajam ryšiui, serverio pusė – saugumui ir tikslumui.