6 CGI ќолданбасы

4.3 Формалармен жђмыс

CGI бђл WWW сервердіњ баќылауындаѓы сырты программаларды іске ќосу џшін арналѓан стандарттыњ кљмейлік интерфейс. Љндеуге арналѓан аќпаратты енгізу џшін ќђрылѓан

HTML ќђжатында пішіні орналасќан. Бђл форма ќажетті басќару органдарынан: мѕтіндік аќпаратты редакциялау љрістерінен, ауыстыру ќозѓыштардан, тізімдерден жѕне т. б тђрады . Енгізу пішіні бізге белгілі Microsoft Windows операциялыќ жџйеніњ диалогтыќ панелдерге ђќсайды. Ѕрбір басќару органына ерікті ат меншікт еледі. Сонымен бірге, бђл формада пішін толѓаннан кейін басатын батырма болу ќажет.

Ќолданушы пішінді толтырып жѕне сол батырманы басќан кезде форманыњ таќырыбында жолы кљрсетіліп, CGI ќолданбасына мѕліметтер беріледі. Бђл ќолданба љрістер/мѕндер атты тџрде берілген пішіндер љрістерінен HTTP протоколы арќылы мѕліметтер алады.

Алынѓан мѕліметтерді љндегеннен кейін CGI ќолданбасы HTML ќђжатын ќђрайды жѕне оны stdout шыѓару ќђрылѓысына жазады. Бђл ќђжат автоматты тџрде ќашыќтыѓы ќолданушыѓа беріледі.

HTML формалары wеb-ќђжат жариялаушылар мен оќырмандар арасында аќпарат алмасуѓа мџмкіндік жасайды. Бђѓан дейін біз web-ќђжаттарды тек экранѓа шыѓару ѕдістерін талќылап келген болсаќ, енді, керісінше оларѓа малімет ењгізу ѕрекеттерін ќарастырамыз. Формалар арќылы тђтынушыдан жалпы мѕтін тџрінде аќпарат сђрап алуѓа, "иѕ/жоќ" деген жауаптыњ бірін тандауѓа немесе бірнеше жолдыњ біріне тоќтауѓа болады.

Формаларды ѕртџрлі маќсаттарда ќолдану мџмкіндігі бар. Мысал ретінде, сайтќа кірген оќырмандардыњ ол туралы пікірлерін формаѓа енгізуі туралы айтуѓа болады, жалпы HTML формаларын пайдалану аймаѓы кљп тџрлі болып келеді.

<FORM> тэгі

Ѕрбір форма осы тэгпен басталады. Оныњ ќолданылатын форманы љњдеу программасы (скрипт) жѕне мѕліметтерді жљњелту ѕдісін кљрсететін екі атрибутын аныќтап алу ќажет.

· Атрибуты

· Атќаратын ќызметі

АСТІОН

Форма мѕліметтерін ќабылдап алып, оны љњдейтін URL -ды аныќтайды.

Егер бђл атрибут аныќталмаса, онда мѕліметтер форма орналасќан web параќ адресіне жіберіледі.

METHOD

Форманы оњдцеу программасына ќалайша аќпарат жљњелтілетінін кљрсетеді. Ѕдетте, оны мѕні POST болады, мђндайда форма мѕліметі URL-дан бљлек, жеке жљњелтіледі. Ал оныњ мѕні GET болса, онда мѕлімет URL мен бірге жіберіледі.

Мысал:

<FORM METHOD="post" ACTION='7 cgi-bin/commcnt^script" >

..........

</FORM>

Бђл мысалда броузерге мынадай нђсќау берілтен: толтырылѓан форманы post ѕдісін ќолдана отырып жљнелтіп, оны web-ќђжат орналасќан сервердіњ cgi-bin каталогында орналасќан comment script скрипті кљмегімен љндеу керек екендігі кљрсетілген. Бір web-параќќа орналасатын формалар сањы шектелмейді, біраќ та бір форманы екінші бір форманыњ ішіне кіріп кетпеуін ќадаѓалап отыру керек.

Форма жасау тeгтері

HTML, тілінде формадаѓы ѕр тџрлі љріс типтерін жасау џшін <TEXTAREA>, <SELECT> жѕне <IN-PUT> сыяќты џш тџрлі тэг ќколданылады. Олардыњ кез келген саны <FORM> ... </FORM> тѕрізді ќосарланѓан тэггер ішінде, яѓни контейнерде орналаса алады.

Тљмендегі кестеде солардыњ ќысќаша сипаттамалары кљрсетілген, кейінірек олар толыќ ќарастырылады.

· Тэг

· Атќаратын ќызметі

<NEXTAREA>

Кез келген тђтынушы бірнеше жолдан тђратын мѕтіндік аќпарат енгізе алатын љрісті аныќтайды.

<1NPUT>

Мѕлімет енгізуді кейбір љзге тџрлерін бip жол мѕтін енгізу, жалаушаларды кљтеріп ќою жѕне тџсіру, ажыратып ќосќышты тањдау жѕне мѕліметтерді жљнелтуге немесе форманы тазартуѓа арналѓан батырманы басу сияќты ѕрекеттерді орындауды ќамтамасыз етеді.

<SELEST>

Тђтынушыѓа жылжымалы жолаѓы бар терезедегі немесе суырылып шыѓатын меню ішіндегі бір жолды тањндау мџмкіндігін береді.

<TEXTAREA> тэгі

Бђл тэг бірнеше жолдан тђратын мѕтіндік аќпарат енгізуге арналѓан љріс ќђру џшін кажет.

<TEXTAREA> ...</TEXTAREA> тэгepi арасына, алдын ала келісім бойынша, енгізу љрісіне шыѓарылатын кез келген мѕтін жолдарын орналастыруѓа болады. Бђл тљгтіњ атрибуттары:

NAME - љpic атын аныќтайды, міндетті тџрде болуы тиіс;

ROWS — љріс биіктігі бойынша орналасатын жолдар санын береді;

COLS — љріс енін, яѓни жол џђзыњдыѓын символдар санымен береді.

Мысалы, ѕр жолына 15 символ мѕтін сиятын, екі жолдан тђратын љріс былай жасалады:

<HTML>

<BODY>

<FORM>

TEXTAREA Name-Студент ROWS=2 COLS=15>

Ќабдиева Ѕйгерім

</TEXTAREA>

</FORM>

</BODY>

</HTML>

Мђныњ нѕтижесі суретте кљрсетілген. ROWS жѕне COLS атрибуттары арќылы кез келген кљлемдегі љріс ќђруѓа болады. Бђл атрибуттар міндетті тџрде ќажет болмаѓанмен, олардыњ алдын ала келісім бойынша бекітілген белгілі бір мѕні жоќ, сондыќтан олардыњ мѕнін орќашанда ашыќ кљрсетуге тырысу керек.

SELECT тэгі

Бђл тэг суырылып шыѓатын меню немесе айналдыру жолаѓы бар опциялар (командалар) тізімін ќђру џшін ќолданылады. Опциялар тізімі мен меню пунктері SELECT контейнерініњ ішінде орналасады. <TEXTAREA> тэгі сияќты <SELECT> тэгінде де берілген атты аныќтайтын NAME атрибуты міндетті тџрде болуы тиіс. Опциялар саны SIZE атрибутында кљрсетіледі. Тљменгі кестеде <SELECT> тэгініњ атрибуттарыныњ атќаратын ќызметтері жайлы айтылѓан. Атрибут атќаратын ќызметі NAME аќпарат атын аныќтайды SIZE тањдау опциялары џшін терезеніњ биікгігін аныќтайды. Егер атрибуг кљрсетілмесе немесе оныњ мѕні 1- ге тењ болса, онда айнымалы опциялар тізімі шыѓады. Егер оныњ мѕні 1- ден артык, балса, онда опциялар айналдыру жолай бар терезеде кљрінеді. Ал егер атрибут мѕні тізімі элемеіттерініњ наќты санынан артыќ болса, онда бос жолдар ќосылады. Оларды тањдаѓан кезде, бoc жолдар ќайтарылады.

MULTIPLE тэгі

Бірден бірнеше опциялар тањдауѓа мумкіндік береді.

Опциялар тізімі <OPTION> тэгі арќылы <SE-LECT> контейнеріне кіргізіледі. Бђл тэгтіњ екі атрибуты болады, олар тљмендегі кестеде сипатталѓан.

· Атрибут

· Атќаратын ќызметі

VALUE

Тђтынушы опрцияны тањдаѓан жаѓдайда љњдеу баѓдарламасына ќайтарылатын мѕнді кљрсетеді.

SELECTED

Алдын ала кеиісім бойынша тањдалѓан опцияны кљрсетеді.

Мысал:

Тљменде ђќсас формалары бар екі HTML ќђжаттарыныњ мѕтіндері кљрсетілген. Екінші ќђжатта тізімнен алдын ала бір элемент тањдалып алынѓан.

<HTML>

<BODY>

Жыл мерзімін тањдањыз:

<FORM>

<SELECT NAME=YEAR>

<OPTION SELECTED VALUE-"winter" > ќыс

<OPTION VALUE="spring" > кљктем

<OPTION VALUE="summer"> жаз

<OPTION VALUE="autumn"> куз

</SELECT>

</FORM>

</BODY>

</HTML>

<HTML>

<BODY>

Жыл мезгілін тандањыз:

<FORM>

<SELECT MULTIPLE NAME—YEAR">

< OPTION SELECTED VALUE="WINTER> ќыс

<OPTION VALUE-"spring"> кљктем

<OPTIO"N VALUE="summer"> жаз

<OPTION VALUE="autumn" > кџз

</SELECT>

</FORM>

</BODY>

</HTML>

<INPUT> тэгі

<INPUT> тэгі <TEXTAREA> мен <SELECT>

тэгтеріндей контейнер емес, жалќы тэг болып есептеледі. Ол ѕр тџрлі тѕсілдерді пайдаланып, аќпарат жинаќтауѓа арналѓан. Сол тѕсілдерге
мѕтіндік љрістер, пароль ењгізу љрісі, ажыратып-ќосќыштар, жалаушалар, мѕліметтерді жљнелту жѕне формаларды тазарту батырмалары жатады.

INPUT тэгініњ тљмендегі кестеде кљрсетілгендей бірсыпыра атрибуттары болады.

· Атрибіт

· Атќаратын ќызметі

NAMESIZE

Енізу љрісініњ символдар санымен берілген енін кљрсетеді. МАXLENGTH

Љріскс енгізуге болатын ењ џлкен символдар санын аныќтайды-

VALUE

Мѕтіндік љріс џшін алдынала келісім бойынша шыѓарылатын мѕтінді аныќтайды. Жалаушалар мен ажыратып- ќоскыштар џшін љњдеу программасына ќайтарылатын мѕнді кљрсетеді. Формаларды жљнелту мен тазарту батырмалары џшін батырма џстіндегі жазуды аныќтайды.

CHECKED

Жалауша немес ажыратып ќосќыштыњ алдын ала келісім бойынша, іске косылѓан жагдайын орнатады. Басќа тэг
тџрлерінде INPUT ќолданылмайды TЏРE Енгізу љрісі типін орнатады.

Енгізу орісі тџрі, <ТУРЕ> атрибуты <INPUT> тэгініњ <ТЏРЕ> атрибуты мѕндері кестеде кљрсетілген.

Келесі формада TYPE атрибутыныњ TEXT мѕні ќолданылады.

<НТМІ>

<BODY>

<FORM> Телефон нљміріњізді енгізіњіз:

<INPUT TYPE="TEXT' NAME=" Phone"

SIZE="15" MAXLENGTH-«15» >

</FORM>

</BODY>

</HTML>

TYPE атрибутыныњ PASSWORD мѕнініњ ќолданылуы.

<HTML>

<BODY>

<FORM> Ќџпия сљз енгізіњіз:

<INPUTYPE="PASSWORD" NAME- " SECRET _WORD"

SIZE="30" MAXLENGTH="30">

</FORM>

</BODY>

</HTML>

TYPE атрибутыныњ CHECKBOX мѕнін ќарастырайыќ.

<HTML>

<BODY>

<FORM>

VALUE= «checkbox_valucl"> Bapиaнт

<BR>

<INPUT TYPE= «checkbox» NAME= "check box2"

VALUE= «chcckbox_value2» CHECKED>

Алдын ала тањдалѓан нђсќа

</FORM>

</BODY>

</HTML>

Келесі мысалда батырмалар жасалады, екі-екіден батырмасы бар екі форма кестеніњ кљршілес ђяшыќтарында орналасќан.

<HTML>

<BODY>

<TABLE ALIGN=CENTER BORDER CELL

SPACING =10>

<TR>

<TD> 1 форма:

<FORM>

<INPUTTYPE="RADIO" NAME= "CHOICE"

VALUE="CHOICE1"> yes

<INPUT TYPE="RADIO" NAME= "CHOICE "

VALUE="CH0ICE2"> no

</FORM>

</TD>

<TD> 2 форма:

<FORM>

<INPUT TYPE-" RADIO" NAME= "CHOICE"

VALUE="CHOICE1" CHECKED> yes

<INPUT TYPE-"RADIO" NAME= "CHOICE"

VALUE="CHOICE2"> no

</FORM>

</TD>

</TR>

</TABLE>

</BODY>

</HTML>

Келесі (формада TYPE атрибутыныњ RESET мѕні, яѓни енгізілген мѕліметтерді тазарту жолы ќолданылѓан, нѕтижесі суретте кљрсетілген.

<HTML>

<BODY>

<FORM> Аты-жљyіњізді енгізіњіз:

<INPUTTYPE="text"> <BR>

Телефоныњыз: <INPUTTYPE="te>;t"> <BR>

<INPUTTYPE="reset" VALUЕ="Форманы тазарту">

</FORM>

</BODY>

</HTML>

Енді TYPE атрибутыныњ SUBMIT мѕнін ќолданайыќ

<HTML>

<BODY>

<FORM>

<TEXTAREA> Маган ссн џнайсыњ! </rEXTAREA>

<BR>

<INPUTTYPE="submit" УАШЕ="мѕлімегтерді жљнелту!">

</FORM>

HTML ќђжатындаѓы пішінді істеу џшін сіз <Form> жѕне </Form> операторларыныњ арасында <INPUT>, <TEXTAREA> жѕне <SELECT> операторлар тџрінде басќару органдарыныњ сипаттамалары болады.

<Form> операторыныњ параметрлері (12 кесте):

Кесте 12. <Form> операторыныњ параметрлері

Параметр | Сипаттамасы
ACTION | Пішініњ џстінен ѕрекеттерді орындау џшін URL адресі
METHOD | WWW серверіне пішіннен мѕліметтерді беру тѕсілі
ENCTYPE | Мѕліметтер берілетін MIME типі.

Пішіні џшін ќђрылѓан басќару органдары

Пішінде ѕртџрлі басќару органдарын (енгізу љрістерін, ауыстырып ќосќыштарын, батырмарын ) ќђру џшін <INPUT>, <TEXTAREA> жѕне <SELECT> операторларын ќолданады.

<INPUT> операторы мѕтіндік аќпаратты енгізу љрістері, ауыстырып ќосќыштар, батырмалар, сонымен бірге WWW серверіне навигатор арќылы локалдыќ файлды жіберу џшін арналѓан.

<INPUT> операторыныњ параметрлері (13 кесте):

Кесте 13. <INPUT> операторыныњ параметрлері

Параметр | Сипаттамасы
TYPE | Басќару органныњ типі. Бђл параметрдіњ мѕніне байланысты ѕр тџрлі басќару органдары (батырмалар, ауыстырып ќосќыштар жѕне т.б ) ќђрылады.
NAME | Басќару органныњ аты. Бђл ат пішінніњ љњдеу программасына жібереледі жѕне басќару органдарыныњ (ауыстырып ќосќыштар џшін) кџйін аныќтау џшін ќолданылады немесе басќа мѕліметтерді (мысалы, мѕтіндік љріске енгізілген ќатарды алу џшін ) алу .
VALUE | Басќару органдары џшін бастапќы кџйі немесе бастапќы мѕні. Пішінніњ бастапќы кезінде басќару органын иницализациялау џшін ќолданылады.
CHECKED | Бђл параметр ауыстырып ќосќыштардыњ бастапќы мѕнін орнату џшін ќолданады.
MAXLENGTH | Мѕтіндік аќпаратты редакциялау љрісінде енгізуге болатын символдардыњ максималды саны.
ALIGN | Пішінніњ жанында орналасќан мѕтінді туралау
SRC | Графикалыќ кескініњ URL адресі, егер ол басќару органында орналаса.

TYPE параметрі ќђрылатын басќару органныњ типін аныќтайды жѕне келесі мѕндерге ие бола алады:

Кесте 14. <TYPE> операторыныњ параметрлері

TYPE параметрініњ мѕні | Басќару органныњ типі
TEXT | Тексттік аќпаратты енгізу џшін арналѓан бірќатарлы љріс. Бђл љрістіњ мљлшері SIZE жѕне MAXLENGTH параметрлерімен аныќталады.
PASSWORD | Бђл басќару органы пароль сияќты аќпаратты енгізу џшін арналѓан.
CHECKBOX | Check Box ауыстырып ќошќыш. Ауыстырып ќосќыштардыњ бір-бірінен тѕуелсіз жинаѓында пайдалану џшін ќажет.
RADIO | Тѕуелді ауыстырып ќосќыштар тобы џшін арналѓан ауыстырып ќосќыш. Бірнеше мѕндердіњ ішінен біреуін тањдау џшін ќолданылады.
FILE | Файлды беру жѕне тањдау џшін арналѓан басќару органы.
BUTTON | Берілген жазуы бар батырма.
SUBMIT | Толѓан пішіндегі мѕліметтерді WWW серверіне жіберу џшін арналѓан батырма.
RESET | Бђл батырманыњ кљмегімен ќолданушы VALUE операторымен берілген кірісљрістерініњ мазмђнын жѕне ауыстырып ќосќыштардыњ кџйін бастапќы мѕніне ќояды.
IMAGE | Пішініннен серверге мѕліметтерді жіберу џшін SRC параметрмен берілген ерікті графикалыќ кескінді ќолдануѓа болады.
HIDDEN | Бейнеленбейтін жасырын љріс. Бђл љрістіњ мазмђны серверге беріледі жѕне талдануы мџмкін.

<TEXTAREA> операторы

Кљп жолдыќ мѕтінді енгізу џшін <TEXTAREA> жѕне </TEXTAREA> операторын ќолдану ќажет.

<TEXTAREA> операторы џшін мына параметрлер берілген (15 кесте):

Кесте 15. <TEXTAREA> операторыныњ параметрлері

Параметр | Сипаттамасы
NAME | Пішінніњ программа љњдегіш жіберілетін жѕне мѕтінніњ енгізу жолдарын алу џшін ќолданылатын кљпжолды љрістіњ аты.
ROWS | Вертикаль бойынша љріс мљлшері (сисволдармен).

<SELECT> операторы.

<SELECT> операторы кљмегімен алдын ала инициацияланѓан ерікті мѕтіндік жолдар тізімін пішінге кірістіруге болады. Тањдап алынѓан ќатар WWW серверіне, пішінніњ басќа љрістердіњ мазмђнымен бірге жіберіледі.

<SELECT> операторы џшін 2 параметрі бар: NAME жѕне SIZE. NAME параметрі тањдап алѓан жолмен бірге

WWW серверіне берілетін тізімніњ атын береді. SIZE параметрі кљмегі жолымен берілген тізімніњ ђзындыѓын беруге болады.

Тапсырма – 1. Ќалыптар-«Формалар»

Келесі кодтарды ќолданып батырмалар жасањыз

<html>

<body>

<button>

<table border=1>

<tr>

<td>Батырма

<tr>

<td>кестедегі

</table></button>

<button disabled title="Мен батырмамын">Мен басылмаймын!</button>

<button style=height:60;width=60;>60x60</button>

</body>

</html>

Келесі кодтарды ќолданып ќалыптар жасањыз Мысалы

<head>

<title>Форма мысалы</title>

</head>

<body dgcjljr="#FFFFFF" text="#000000">

<h1> ЖАЌ №1 ќђс фабрикасы</h1>

<form method="post" Action="111.html">

<PRE>

<input type=hidden name=hiddentext value="Бђл жасырын мѕтін">

Тэгі <input type=text name=frame size=30 malendht=30>

Инициалы <input type=text name=lrame size=30 malendht=30>

Пароль <input type=password name=pswd size=30 malendht=30>

Ќабылдайтын адрес <input type=text name=address size=60 malendht=60>

Мљлшері <input type=text name=Qty size=10 malendht=10>

Тџрі <select name=eggtype size=1>

<option selected>Тауыќ

<option>Џйрек

<option>Ќаз

</select> <select name=eggsize size=1>

<option value=1> Ірі

<option value=2> Ђсаќ

<option value=3 selected> Тањдаулы

</select>

Жеткізу <input type=radio name=shipBy value=F>Пошта арќылы жіберу <input type=radio name=shipBy value=U checked> "DNL" арќылы

<input type=radio name=shipBy value=C>Курьерден

Тауар ќђжаттамасы ќажет <input type=checkbox name=Receipt value=YES>

Ќосымша аќпарат :<BR>

<textarea name=instructions rows=2 colw=60></textarea>

</pre>

<input type=submit name=SubButton value="Тапсырысты ќабылдау">

<input type=reset value="Басынан бастау">

</form> </body> </html>