Formularele sunt pagini Web speciale, având rubrici care trebuie completate sau validate. Continutul rubricilor (câmpurilor) este transferat serverului Web. Procesul de transfer este comandat prin apãsarea unui buton (butonul submit) existent în orice formular. Când primeste fluxul de informatii, serverul Web lanseazã o aplicatie asociatã formularului denumitã script CGI (Common Gateway Interface) care prelucreazã datele primite. Pentru a putea lucra cu formulare autorul paginii trebuie sã obtinã autorizatia instalãrii pe serverul Web a scriptului CGI asociat. Implicatiile executãrii unui script CGI eronat pot fi grave, din aceastã cauzã verificarea si testarea acestuia trebuie realizate cu grijã.
Scriptul CGI poate trimite informatiile primite prin e-mail, le poate stoca pe server într-o bazã de date existentã sau într-un fisier.
Zona din pagina Web care cuprinde câmpurile formularului este cuprinsã între marcaje <FORM> . . . </FORM>. Marcajul <FORM> are douã atribute obligatorii :
- METHOD defineste modul în care sunt transmise datele serverului. Atributul poate lua douã valori: METHOD=post dacã datele vor fi trimise scriptului CGI ca si fisier standard de intrare (stdin în limbajul C); METHOD=get dacã datele introduse vor fi transmise serverului într-o variabilã de mediu a acestuia (QUERY_STRING).
- ACTION specificã scriptul CGI care prelucreazã informatia.
Exemplu:
<FORM METHOD="post" ACTION="http://dnt.ro/cgi-bin/international/transport/formul">
- defineste caracteristicile unui câmp al formularului.
Atributele marcajului <INPUT> sunt :
- TYPE=tip defineste tipul câmpului
- NAME=nume defineste numele simbolic al valorii câmpului
- VALUE=valoare defineste continutul prestabilit al câmpului
- CHECKED=opt buton/casetã validatã în mod prestabilit
- SIZE=n numãrul de caractere al casetei de text afisate
- MAXLENGTH=m numãrul maxim de caractere acceptate.
HTML 4 permite definirea a nouã tipuri de câmpuri.
- Tipul TEXT împreunã cu atributul SIZE permite definirea unui câmp pentru introducerea unui sir de caractere :
<INPUT TYPE=text SIZE=25 NAME="nume">
- Tipul PASSWORD (parolã) permite introducerea unei parole. Caracterele introduse nu vor fi afisate, în câmp apãrând doar caractere * :
<INPUT TYPE=password NAME="parola" SIZE=10>
- Tipul CHECKBOX (casetã de validare) permite desenarea unei casete izolate de validare :
<INPUT TYPE=checkbox NAME="clientnou" VALUE="da">
Efectul validãrii casetei va fi transmiterea spre server a valorii da.
- Tipul RADIO permite generarea unui ansamblu de butoane cu interblocare care au acelasi nume (NAME=valoare)
<INPUT type=radio name="semestrul" checked value="0"> I (octombrie-februarie) <INPUT type=radio name="semestrul" value="1"> II (martie-iunie)
- Tipul buton SUBMIT are ca si efect transmiterea spre server a valorilor introduse în câmpurile formularului.
Exemplu:
Exemplu de paginã Web :
<HTML>
<HEAD>
<TITLE>Formular</TITLE> </HEAD>
<BODY link="#0000FF" vlink="#800080" background="Image4.gif">
<H1 ALIGN=center>Intrarea în magazinul virtual</H1>
<CENTER>
<FORM action="http://dnt_cj.ro/cgi-bin/magavirt/intrare" METHOD="POST">
<BR><B>Numele :  </B><INPUT TYPE=text size=25 name="nume">
<BR><B>Prenumele :  </B><INPUT TYPE=text size=25 name="prenume">
<BR><BR>
<B>Codul de acces : <INPUT TYPE=password size=10 name="cod_acces">
<BR><BR>
<INPUT TYPE=checkbox NAME="clinou">Intru prima datã în magazin
<BR><BR>
Plãtesc cu : <INPUT TYPE=radio NAME="plata" VALUE="0"><B>Card VISA</B> <INPUT TYPE=radio NAME="plata" VALUE="1"><B>Cec</B>
<INPUT TYPE=radio NAME="plata" VALUE="2"><B>Mandat postal</B>
<BR><BR>
<INPUT TYPE=submit value ="Intrãm în magazin!">
</CENTER>
</FORM>
</BODY>
</HTML>
Alinierea mai elegantã a câmpurilor pentru nume si prenume se poate realiza introducându-le într-un tabel :
<TABLE>
<TR>
<TH>Numele :</TH>
<TD><INPUT TYPE=text size=25 name="nume"></TD>
</TR>
<TR>
<TH>Prenumele : </TH>
<TD><INPUT TYPE=text size=25 name="prenume"></TD>
</TR>
<TR>
<TH>Codul de acces : </TH>
<TD><INPUT TYPE=password size=10 name="cod_acces"></TD>
</TR>
</TABLE>
- RESET permite utilizatorului sã steargã toate câmpurile formularului
<INPUT TYPE =reset VALUE=" Anulare ">
- FILE permite transmiterea spre server a unui fisier. Este recunoscut numai de NETSCAPE.
Fisier : <INPUT TYPE=file ENCTYPE="multipart/form-data" NAME="fisier" SIZE=30>
- IMAGE permite folosirea în locul butonului submit, pe care îl înlocuieste, a unei imagini
<INPUT TYPE=image SRC="poza.gif" ALT="Validez" BORDER=0>
- HIDDEN permite transmiterea informatiilor spre server fãrã ca utilizatorul sã le vadã pe ecran.
Marcajul <TEXTAREA>
- permite definirea unei zone în care se poate scrie un text mai mare, dispus de regulã pe mai multe linii. &ICIRC;n acest mod se definesc de exemplu zonele în care cel care a deschis o paginã îsi poate scrie impresiile despre aceasta. Marcajul <TEXTAREA> va avea trei atribute, NAME, ROWS (linii) si COLS (coloane).
Exemplu:
<TEXTAREA NAME=rezumat ROWS=5 COLS=45></TEXTAREA>
<TABLE>
<TR>
<TH ALIGN=left>Impresia dv. :</TH>
</TR>
<TR>
<TD><TEXTAREA NAME=rezumat ROWS=5 COLS=45></TEXTAREA> </TD>
</TR>
</TABLE>Includerea teextului "Impresia dv. :" si a zonei de text într-un tabel a fost necesarã pentru a le putea alinia.
Marcajul <SELECT>
- permite definirea listelor (meniurilor) derulante. Meniul derulant prezintã o valoare. Executia unui clic pe aceasta va provoce afisarea listei de optiuni, vizitatorul paginii putând selecta optiunea doritã.
Exemplu:
<BR><BR> Mergem în raionul cu produse
<SELECT NAME=raion>
<OPTION SELECTED VALUE=niciunde>(alegeti raionul)
<OPTION VALUE=alimente>Produse alimentare
<OPTION VALUE=bautura>Bãuturi
<OPTION VALUE=cosmetice>Cosmetice
<OPTION VALUE=menaj>Articole de menaj
<OPTION VALUE=imbrac>Îmbrãcãminte
<OPTION VALUE=electro>Articole electrocasnice
<OPTION VALUE=gradina>Articole pentru grãdinãrit
</SELECT>
<BR><BR>Astfel se pot de exemplu construi meniuri derulante de pagini Web:
<SELECT NAME=url>
<OPTION SELECTED VALUE=niciunde>(alegeti un site Web)
<OPTION VALUE=http://www.cnn.com/>CNN Online
<OPTION VALUE=http://www.yahoo.com/>Yahoo
</SELECT>Aplicatia de pe server va primi adresa selectatã si va putea apoi afisa pagina cerutã.
Formularele prezentate au atributul METHOD=post. Atributul METHOD=get oferã posibilitatea lansãrii unor scripturi CGI aflate pe servere de cãutare (Yahoo, Excite, AltaVista etc.).
Exemplu:
<TABLE>
<TR>
<TD> Yahoo </TD>
<TD><FORM ACTION=http://search.yahoo.com/bin/search METHOD=get>
<INPUT TYPE=text SIZE=35 NAME=p>
<INPUT TYPE=submit VALUE="Cauta"></FORM> </TD>
</TR>
<TR>
<TD> Excite </TD>
<TD><FORM ACTION =http://www.excite.com/search.gw METHOD=get>
<INPUT TYPE=hidden NAME=trace VALUE=a>
<INPUT TYPE=text SIZE=35 NAME=search>
<INPUT TYPE=submit VALUE="Cauta"></FORM> </TD>
</TR>
<TR>
<TD> AltaVista </TD>
<TD><FORM ACTION =http://www.altavista.digital.com/cgi-bin/query METHOD=get>
<INPUT TYPE=hidden NAME=pg VALUE=q>
<INPUT TYPE=hidden NAME=what VALUE=web>
<INPUT TYPE=hidden NAME=kl VALUE=en>
<INPUT TYPE=text SIZE=35 MAXLENGTH=800 NAME=q WRAP=virtual>
<INPUT TYPE=submit VALUE="Cauta"></FORM> </TD>
</TR>
</TABLE>Întrucât sirul de caractere care trebuie trimis scriptului CGI are o structurã diferitã pentru fiecare dintre serverele de cãutare mentionate, este esentialã transcrierea corectã a textului paginii.
![]()