[JS] Wymuszanie wypełniania pól formularza

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
Boolter
Posty: 2
Rejestracja: wt sty 10, 2006 10:48 pm

[JS] Wymuszanie wypełniania pól formularza

Post autor: Boolter »

Witam. Mam problem. Chodzi o to, że chce aby w formularzu byly wypełnione wszystkie pola oprocz tel.kom. tzn. tel.kom. jesli ktos chce to podaje jesli nie to nie. Mam serwer i korzystam z czegos co sie nazywa FormMail.pl o czym nie mam zielonego pojecia.

Prosze pomozcie mi napisac skrypt ktory zmusi uzytkownika strony do wypelnienia wszystkich pol, jesli tego nie zrobi to o wyswietlenie bledu i wskazanie ktore pola nei zoastaly wypelnione. Oto poniższy formularz. Jeśli juz ktos mi to napisze zeby to troszke wytlumaczyl zebym wiedzial mniej wiecej co i jak.

Kod: Zaznacz cały

<FORM NAME="Zamówienie" ACTION="/cgi-bin/FormMail.pl" METHOD="post"> 
<input type="hidden" name="recipient" value="[email protected]"> 
<input type="hidden" name="subject" value="barczynski.pl - pytanie"> 
<input type="hidden" name="env_report" value="REMOTE_HOST,REMOTE_ADDR,HTTP_USER_AGENT"> 
<input type="hidden" name="title" value="Potwierdzenie wysłania"> 
<input type="hidden" name="return_link_url" value="http://barczynski.pl/kontakt.htm"> 
<input type="hidden" name="return_link_title" value="Powrót do strony głównej"> 
<input type="hidden" name="bgcolor" value="#3A6B1E"> 
<input type="hidden" name="text_color" value="#FFFFFF"> 
<input type="hidden" name="link_color" value="#FFFFFF"> 
Twój email<br><input type=text name="email"><br><br> 
Imię i Nazwisko<br><input type=text name="realname"><br><br> 
Tel.kom.<br><input type=text name="realname"><br><br> 
Wiadomość<br><textarea name="Wiadomość" rows="4" wrap="VIRTUAL" cols="30"></textarea><br> 
<input type=hidden name="missing_fields_redirect" value="http://barczynski.pl/error.html">
Z góry dziękuje !! i prosze Was pomozcie ! :(

1. Do prezentacji fragmentu kodu korzystaj z odpowiedniego BBCode [poprawione]
2. W temacie, korzystając z tagów, podawaj język, do którego tyczy się topic [poprawione]
Hawk
Przelotem
Przelotem
Posty: 209
Rejestracja: ndz gru 22, 2002 9:34 pm

Re: [JS] Wymuszanie wypełniania pól formularza

Post autor: Hawk »

Zalezy czy chcesz przeprowadzic weryfikcaje po stronie klienta czy serwera. Jesli chcesz to sprawdzac w przegladarce musisz uzyc odpowiedniego kodu JavaScript (co IMHO byloby szybszym rozwiazaniem gdyz nie wymaga wysylania niczego na serwer), przykladowe rozwiazanie mozesz znalezc na http://webmaster.helion.pl/kurshtml/jsi ... vascr7.htm. Jesli chodzi o sprawdzanie po stronie serwera - w przypadku gdy uzywasz gotowego skryptu jedyne co Ci pozostaje to dokladne zapoznanie sie z dokumentacja do niego, tam wszystko powinno byc napisane.
atom
Nowy
Nowy
Posty: 145
Rejestracja: wt gru 20, 2005 1:55 pm
Kontakt:

Re: [JS] Wymuszanie wypełniania pól formularza

Post autor: atom »

Napiszę troche o walidacji po stronie klienta i serwera... Jeśli wiesz o co chodzi pomiń mojego posta ;)

Genaralnie, programista powinien tak napisać kod, aby uzytkownik nie mógł wprowadzić niepoprawnych danych do bazy danych. Poprawność danych można sprawdzać już na etapie przeglądarki (javascript) - dzieki temu ograniczysz ruch po sieci, bo validacja bedzie sie odbywała po stronie klienta.

Tylko że nie wszystko da się sprawdzić po stronie klienta... Np. wprowadzamy przedmiot identyfikowany po nazwie i nie chcemy aby w bazie były dwa przedmioty o takiej samej nazwie. Nie za bardzo jest sens i możliwość sprawdzać po stronie klienta czy przedmiot o takiej nazwie już istnieje w bazie. Dlatego albo napiszesz metody (np. java, php, asp) które dokonają Twoje walidacje albo ustawisz ograniczenia na bazie danych i będziesz przechwytywał wyjątki które dostaniesz przy próbie wstawienia/edycji danych do bazy - i potem odpowiednie komunikaty wyślesz do przeglądarki.

Najbardziej kuloodporny kod powinien zawierać walidację po stronie klienta, serwera i bazy danych. Wszystko zależy od zastosowań i wymagań klienta. Dokumentacji na ten temat jest wiele, wystarczy poszukać...
yarpo
Nowy
Nowy
Posty: 168
Rejestracja: wt lut 08, 2005 6:29 pm
Lokalizacja: Gdańsk
Kontakt:

Re: [JS] Wymuszanie wypełniania pól formularza

Post autor: yarpo »

Na stronie :
http://www.lo.zlotow.net/gielda/dodaj.php
znajdziesz to, czego szukasz. Skrypt jest mój, więc spoko moźesz skopiować. Po prostu zapisz sobie stronę, to ci się ściągnie i plik ze skryptem.

A co do tego, źe najlepiej po stronie serwera. I owszem, ale to jak chcesz zabezpieczyć siebie. Po stronie klienta, jak chcesz ułatwić zycie internautom - nie musza po raz kolejny wypelniac formularza.

A w ogole najbezpieczniej to jest i w JS i w PHP [lub innym server-side], wtedy ryzyko spada prawie do zera:-)
stami
Nowy
Nowy
Posty: 29
Rejestracja: śr sty 11, 2006 4:35 pm

Re: [JS] Wymuszanie wypełniania pól formularza

Post autor: stami »

Zabezpieczenie tylko w JS nie polecam bo co w przypadku jeśli ktoś wyłączy obsługę JavaScript w przeglądarce?

Dwie linie obrony:
1. JS - aby weryfikacja przebiegła szybciej
2. PHP (lub inny) - aby nie przesylac danych błędnych lub powtarzających się w bazie.
atom
Nowy
Nowy
Posty: 145
Rejestracja: wt gru 20, 2005 1:55 pm
Kontakt:

Re: [JS] Wymuszanie wypełniania pól formularza

Post autor: atom »

yarpo pisze:A co do tego, źe najlepiej po stronie serwera. I owszem, ale to jak chcesz zabezpieczyć siebie. Po stronie klienta, jak chcesz ułatwić zycie internautom - nie musza po raz kolejny wypelniac formularza.
No tak, ale walidując po stronie serwera, możesz zrobic też dobrze użytkownikowi i w przypadku błędu, powrócić na formatkę z polami wypełnionymi przez użytkownika i dodatkowo wyświetlić komunikat co powinien poprawić ;) Więcej przy tym roboty ale użytkownik pewnie chętniej będzie korzystał z naszego serwisu.
ODPOWIEDZ