Co poszło nie tak? Odpowiedź tkwi pomiędzy wysyłaniem danych przez użytkownika a wprowadzaniem informacji do bazy danych. Zlekceważyłeś bardzo ważny krok, jakim jest weryfikacja formularzy.
W dzisiejszych czasach, większość serwisów internetowych wymagających wprowadzania danych, używa weryfikacji formularzy, aby zapobiec wprowadzeniu błędnych danych. Chociaż niemożliwe jest sprawdzenie wiarygodności wprowadzanych danych, weryfikacja pozwala na sprawdzenie typu danych i co za tym idzie zredukowanie 'złych' danych, wysyłanych do bazy.
Właśnie o tym będzie ten artykuł. Przez kilka następnych stron, skoncentruje się na stworzeniu uniwersalnej biblioteki funkcji weryfikujących dane po stronie klienta, aby oszczędzić ci trochę twojego cennego czasu. Efektem końcowym mojej pracy będzie obiekt JavaScript, który będziesz mógł łatwo dołączyć do twoich skryptów. Obiekt ten będzie zawierał podstawowe metody weryfikujące formularz. Projekt może nie spełniać wszystkich twoich wymogów, ale na pewno czegoś się dowiesz, szczególnie jeśli jeszcze nie jesteś zaznajomiony z programowaniem obiektowym w JS.
Zaczynajmy!
Cześć, wydaje mi się, że trochę spłycony opis tworzenia obiektów :)
Sam ostatnio zainteresowałem się tą sprawą, jakby ktoś chciał przeczytać to zapraszam:
http://www.yarpo.pl/2011/01/11/tworzenie-obiektow-w-js/
BTW.
// metoda whoRules()
function whoRules()
po co komentarz? Co on dodał do kodu? Komentarze - dobre, bywają przydatne. Komentarze złe, są złe.
Temam walidacji arcyażny, poruszać należy, metoda zaprezętowana w artykule też ujdzie, ale do obiektow i programowania obiektowego w JS autor ma jeszce daleko. Prezętowany sposób kodowania jest chyba najgorszym jaki widziałem. Zpareztętowanie poprawnego rozwiazania to materiał na kolejny artykuł. Wspomne tylko 'prototype'
FormValidator = function (arg1, arg2) {
// konstruktor
}
FormValidator.prototype.IsChecked = functoin (obj ) {
// kod sprawdzajacy checkboxa
}
itd ....
Warto też zwrócić uwagę na JSON-a ( JavaScript Object Notation ) i 'przestrzenie nazw', które pozwalają uniknąć kolizji nazw, a są balnalne w implementacji w JS.
W prę\ezętowanych artykułach sugeruje postawić na jakość, nie ilość. Ktoś powinien sprawdzać je pod kątem merytorycznym. W końcu czytają je różni ludzie, często niedoświadczeni, a "czego Jaś się nie nauczy, tego Jan nie będzie umiał".
Można także weryfikować poszczególne pola.
<input type="text" name="'.$nazwa.'" onkeyup="if(!(/^[\d\w]{2,8}$/gi).test(this.value)) { '.$nazwa.'_error.style.display='block'} else { '.$nazwa.'_error.style.display='none'}" />
<span id="'.$nazwa.'Info">Źle Źle Źle !!!</span>
<textarea name="'.$nazwa.'" cols="33" rows="10" onkeyup="'.$nazwa.'Info.innerText=\'znakow \'+this.value.length+\' z '.$maxZnakow.'\';if(this.value.length>'.$maxZnakow.'){ this.value=this.value.substring(0,'.$maxZnakow.'); }"></textarea>
<span id="'.$nazwa.'Info"></span>