ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
Алматы қаласы Білім басқармасының
МКҚМ «Алматы мемлекеттік политехникалық колледжі»
М.Т. БАЛГАЗИЕВА
ИНТЕРНЕТ ТЕХНОЛОГИЯ ЖӘНЕ WEB БАҒДАРЛАМАЛАУ
Лекциялық материалдар
Алматы 2016
2.
2
Пікір жазғандар:
Алджамбекова Ж.О– «Өрлеу» біліктілікті арттыру ұлттық орталығы» АҚ мониторинг және
аналитика бөлімінің басшысы
ИНТЕРНЕТ ТЕХНОЛОГИЯ ЖӘНЕ WEB БАҒДАРЛАМАЛАУ. Лекциялық материалдар –
Алматы, 2016 – 122 б.
Оқу-әдістемелік құралында «Интернет технология және Web бағдарламалау» пәнінің негізгі
түсініктері, интернетттің құрылымы, ұйымдастырылуы, жұмыс жасау принциптерінің
технологиясы және web-технологиялармен танысу, web-сайттар жасау принциптерін игеру,
соларды өздерінің болашақ мамандықтарында пайдалану қарастырылған.
Оқу құралы «Есептеу техникасы және бағдарламалық қамтамасыз ету» мамандығына
оқытылатын «Интернет технология және Web бағдарламалау» курсының типтік бағдарламасы мен
мемлекеттік стандартқа сәйкес келеді.
3.
3
Мазмұны
Кіріспе 4
1 бөлім.Интернет қызметтері
1.1 Интернетке қосылу түрлері. Интернет қызметтері. Браузер
1.2 Интернет желісіндегі клиент-сервер технологиясы
1.3 Интернеттегі web серверлер. Web – сервер жұмысының механизмі.
Статистикалық және динамикалық беттер. CGI технологиясы. Скриптер.
Сайттың түрлері
1.4 HTML кіріспе. HTML тілінде сілтемемен, суретпен және кестемен
жұмыс
1.5 HTML-де CSS технологиясын қолдану
5
5
11
15
20
36
2 бөлім. WEB бағдарламалаудың негізі
2.1 Сайт құру түрлері
2.2 JavaScript тілінің негізгі қасиеттері
2.3 Скриптерді құру және колдану
2.4 PHP тілінің негізгі қасиеттері
2.5 Айнымалылар. Мәліметтер типтері. Шарт, таңдау және циклдер
операторлары
2.6 Функциялар. Сандар, жолдар, объектілер және массивтермен жұмыс
2.7 Каталог және файлдар операцияларымен жұмыс
49
49
56
67
76
83
89
94
3 бөлім. Деректерқорымен жұмыс
3.1 MySQL деректер қоры
3.2 SQL кестемен жұмыс. SQL сұраныстары
101
101
104
4.
4
Кіріспе
Осы пән аймағындастуденттер жаңа web-технологиялармен танысып, web –сайттар жасау
принциптерін игеріп, соларды өздерінің болашақ мамандықтарында пайдалануды үйренеді.
Пәнді оқыту мақсаттары:
сайттарды құру құралдарының құрамы мен құрылымын игеру (HTML-тілі, стильдер
кестелері CSS) және соларды студенттердің болашақ мамандықтарында пайдалана білуге
үйрету;
компьютер желілерінің және ақпараттық web-технологиялар құрудың теориялық негіздерін
меңгеру;
осы аймақтағы мәселелерді жүзеге асыру үшін керекті практикалық дағдыларды игеру.
Қазіргі кезде web-сайттарды программалаудың жаңа технологиясын игерген мамандар
жетіспеуде және оларға деген талап жоғары. Пәнді оқытудың негізгі мақсаты – WWW бүкіләлемдік
тордың ақпараттық құрамасын құрудың әдістері мен тәсілдерімен танысу.
Пәнді оқыту міндеттері
желідегі web-парақтар жұмысын және олардың құрылымын білу және соларды іс жүзінде
пайдалану;
web-парақтар жасау істерінің мақсаты мен міндетін анықтай білу;
HTML,CSS, Javascript, PHP, MySQL тілдерінде программалауды үйрену;
белгілі компьютер желілері мен web-технологияларының артықшылықтары мен
кемшіліктерін анықтай алу және оларды дамыту істерін білу;
қазіргі ақпараттық технологияларды білу және мекемені (ұйымды) басқаруда соларды тиімді
пайдалану.
Алғашқы қазіргі заманғы есептеу машиналары болмаған кезде адамдар барлық есептеу, іс-
жұмыстары қолмен істеген. Кейін технологияның қарқынды дамуына байланысты көптеген
қажетті ақпарат құралдары пайда бола бастады.Осы пайда болған құралдар ішінде әрине өзімізге
аса тиімді ақпарат құралы компьютер де бар. Компьютер арқылы ақпаратты сақтауға, өңдеуге,
тасымалдауға және де қабылдауға болады.Оның осы тиімді жақтарын пайдалана отырып, біз
өзімізге тиісті жұмыстарымызды атқаруға мүмкіндік береді. Дами келе көптеген программалау
тілдері пайда бола бастады.
Қазіргі таңда дүниежүзілік компьютерлік интернет желісі - ғасырдың 90-жылдары
компьютердің дамуына Internet және World Wide Web жүйелері үлкен әсерін тигізгені
барлығымызға мәлім. Қазіргі кезде осы бағытта да компьютер өте үлкен қарқынмен дамуда.
Оперативті ақпаратты алудағы негізгі құрылғының бірі болуда. Internet желiсi- Бүкiләлемдiк тор-
WWW [World Wibe Web]. Берiлген тор құжатттардың өзара бiр-бiрiмен байланысы ретiнде берiледi.
Өзіміз білетіндей Internet желісі түрлі сайттардан тұрады. Сайттарды пайдалана білумен қатар оны
құра білуде қажет. Ол әрине көптеген жұмыстарды қажет етеді, ең бастысы ол не мақсатта құрылып
жатыр? Әрбiр Web-сайт тексттен, суреттерден, видео үнтаспаларынан тұруы мүмкiн. Мұндай
сайттар ғаламшардың кез-келген нүктесiндегi компьютерде болуы мүмкiн. WEB-тiң негiзгi
қызметi- қажеттi ақпаратты шапшаң түрде кірiп көру, жинастыру және де оны экранға шығаруды
ұйымдастыру. Гипермәтiндi сiлтеме-келесi беттермен байланысты қамтамассыз етедi. Сiлтеменi
тышқанмен шертiп сiз келесi WEB-сайтқа өте аласыз. WEB-сайтты бiз келесi бағдарламалар арқылы
көру мүмкiншiлiгiне ие бола аламыз: Microsort Internet Explorer [Майкрософт Интернет эксплорер],
Netscape Navigator [Нетскейп навигатор], Mozilla[Мозилла], Opera[Опера]. Бұл бағдарламалардың
артықшылығы сайтты сiлтемелер немесе адрестер арқылы бейнелеп көрсетiп бередi және де дискiге
сақтай алатын мүмкiншiлiгi бар. Сайт даяр болғаннан кейін оны алдын-анықтап алу қажет.
5.
5
1 БӨЛІМ. ИНТЕРНЕТҚЫЗМЕТТЕРІ
§ 1.1 ИНТЕРНЕТКЕ ҚОСЫЛУ ТҮРЛЕРІ. ИНТЕРНЕТ ҚЫЗМЕТТЕРІ. БРАУЗЕР
Интернет технологияларына кіріспе
Интернет, бiртұтас басқару орталықтары жоқ, бiрақ бiрыңғай ережелер бойынша жұмыс
iстейтiн және өз қолданушыларына бiртұтас қызметтер жиының көрсететiн әлемдегi үлкен желi.
Интернетті әрбiрiнің қызметтерiн тәуелсiз оператор-жабдықтаушысы (ISP, Internet Service
Provider) жүргiзетiн "желілір желiсі" ретiнде қарастыруға болады.
Интернет қолданушылар тұрғысынан, әр түрлi желiлер бойынша: ISP - желi, корпоративтiк
желi, үй қолданушыларының жеке компьютерлерi және желiн қоса бытыраңқы ақпараттық
қорлардың жиыныболып табылады. Әрбiр жеке компьютер (host ағылшын терминiнен) осы желiде
хост деп аталады.
Бүгiнгi интернет өзінің пайда болуына сол кезде жаңа пакеттердiң коммутацияның
технологиясына сыпайы тәжiрибе ретінде басталған бiрiккен ARPANET желiсіне мiндеттi.
ARPANET желiсі 1969 жылы айқара ашылып басында төрт түйiндi пакеттердiң коммутациясы бар
жинағынан тұратын болды. Алғашқы түйiндер жинағы жалғастырған байланыс торабтары 50
Кбит/с жылдамдықтарында жұмыс iстедi. ARPANET желiсі АҚШ қорғаныс министрлiгiнiң ARPA
(Advanced Research Projects Agency) ғылымизерттеу жұмыстарын болашақты жоспарлауды
басқарумен қаржыландырды және технологияның зерттеуi және кооперативтiк таралған
есептеулер үшiн қолдануға болатын пакеттердiң коммутациясының хаттамалары үшiн арнады.
Интернетте бiртұтас техникалық саясаттың формасы, техникалық стандарттардың үйлесiмдi
жиыны, интернетке кiретiн компьютерлер және желiлердiң аттары мен мекен-жайларын
тағайындауы орталықтанудың жанама түрдегi формалары айқындала алады.
Демек Интернет кемшiлiктері де өз артықшылығы да бар децентрализациялаңған желi болып
табылады.
1. Артықшылығы:
екi ISP аралық келiсiм жасасу жолымен интернеттiң ұзартуын жеңiлдету.
2. Кемшілігі:
Қызметтердiң барлық жабдықтаушыларын күштерінің үйлесiмдiлігі керек
болатындығынан, интернеттiң қызметтерiнiң және технологияларының жаңғыртуының
күрделiлiгi.
Интернеттiң қызметтерiнiң аласалау сенiмдiлiгi.
Желiнiң жеке сегменттерiнiң жұмысқа қабiлеттiлiгiне жауапкершiлiк интернеттiң
қызметтерiнiң жабдықтаушыларына тапсырылады.
Интернеттiң қызметтерiнiң жабдықтаушыларының әр түрлi түрлерi бар болады:
интернеттiң қызметтерiнiң жабдықтаушысы жай ғана пайдаланушылар үшiн көлiк
функцияны орындайды - интернеттiң қызметтерiнiң басқа жабдықтаушыларының
желiсiндегi олардың трафигiнiң берiлуiн;
контенттiң интернет-сi жабдықтаушы меншiктi информациялық- анықтама қорларды
веб-сайт түрдегi олардың мазмұны iлiге алады;
хостингтiң қызметтерiнiң жабдықтаушысы сыртқы контенттiң орналастыруы үшiн өз
бөлмелерi, байланыс каналы және серверлердi iлiгедi;
контенттiң жеткiзуi бойынша қызметтердiң жабдықтаушысы мәлiметке
қолданушыларының рұқсаттың жылдамдығының жоғарылатуының мақсаты бар көп қол
жеткiзу нүктелерiнде контенттiң тек қана жеткiзуiмен шұғылданады;
мысалы, қосымшалардың қолдауы бойынша қызметтердiң жабдықтаушысы SAP R3 iрi
әмбебап программалық өнiмдерге рұқсат клиенттерге iлiгедi
биллинг қызметтерiнiң жабдықтаушысы интернет бойынша есептердiң төлеуiн
қамтамасыз етедi;
6.
6
Интернеттегі стандартизацияның ролі
Интернетөте күрделi желi болып табылады, сәйкесiнше желi құрылымдардың арасындағы
өзара әрекеттесуді ұйымдастыру күрделi мiндет болып саналады. Сондай міндетті шешу үшiн
декомпозицияны қолданылады, яғни күрделi мәселенi бiрнешеге бөлiктеулер арқылы шешу.
Декомпозицияны iске асыратын тұжырымдамалардың бiрi көп деңгейлi жол болып табылады.
Мұндай жол басқа деңгейлерден тәуелсiздiң әрбiр жеке деңгейдiң түрлендiруiн өткiзуге, өңдеудi,
тестеу мүмкiншiлiгін бередi.
Иерархиялық декомпозицияны төменнен жоғары деңгей бағытында шешілетін есептің
қарапайым түрін алуға мүмкiндiк бередi.
Желілік өзара әрекеттесудi көп деңгейлi ұсыныстың ерекшелiгi хабар алмасу процесінде
үшiн, аппаратты - программалық құралдардың екi иерархияының үйлесiмдi жұмысты қамтамасыз
ететін, кемінде екi тарап қатысады. Деңгейлердiң әрқайсысы меншiктi құралдар иерархияның
жоғары және төменде жатқан деңгейлерiң интерфейсін қолдауы. Интерфейстiң осы түрі хаттама
деп аталады (1- сур).
Сурет 1 - Интернеттiң желiсiндегi иерархиялық декомпозициясы кезінде иерархия
деңгейлерінiң арасындағы өзара әрекеттесудi ұйымдастыру
Желі түйіндерінің өзара әрекеттесуіне жеткілікті иерархиалық ұйымдастырылған хаттамалар
жиыны хаттамалар стегі деп аталады. 80-ші жылдардың басында халықаралық стандартизациялау
ұйымдары ISO (International Organization for Standardization), ITU (International Telecommunications
Union) және басқалар ашық жүйелердің өзара әрекеттесулерінің стандартты үлгісін OSI (Open
System Interconnection) жасады. Үлгiнiң міндеті желілік өзара әрекеттесудiң құралдарының
біріктірілген көрінісінен тұрады. Сонымен бiрге оны желі мамандарның әмбебап тiлі (анықтама
үлгiсi) ретiнде қарастыруға болады.
Егер екi желi ашықтық қағидаларың орындалуымен құрастырылса, бұл келесi
артықшылықтарды бередi:
Аппаратты және стандарт ұстаған әр түрлi өндiрушiлердiң программалық құралдарының
желiнiң құрастыруын мүмкiндiгi;
Желiнiң жеке компоненттерiнiң басқа жетілген түрімен мүлтiксiзiрек алмастыруы;
Бiр желiнiң екіншімен түйiндесiнiң жеңiлдiгi.
OSI үлгiлер шеңберiнде өзара әрекеттесу құралдары жетi деңгейге жiктеледi: қолданбалы,
ұсыныстар, сеанстық, көлiктік, желілік, арналық және физикалық. Бағдарламашылардың
қарамағында ең жоғарғы қосымшалардың деңгейiне сұрау салуларымен айналуға мүмкiндiк
беретiн қолданбалы программалық интерфейс жеткiзiлiп берiледi.
Интернет желiсі ашық жүйе қағидалармен дәлме-дәлдiкте жасақталды. Бұл желiнiң
стандарттарының өңдеуiнде ЖООның, ғылыми ұйымдар және серiктестiктерден мыңдаған желiнiң
маман-қолданушылары араласты. Стандартизация бойынша жұмыстың нәтижесi RFCтың
құжаттарында iске асады.
RFC (ағыл. Request for Comments) —бүкiләлемдiк желi кең қолданылатын техникалық
спецификациялар және стандарт тұратын, нөмерлелген ақпараттық құжаттар топтамасының
құжаты.
7.
7
1- кестеде RFCтыңөте белгiлi құжаттарының кейбiрi келтiрiлген
Кесте 1 Әйгiлi RFC-құжаттардың мысалдары
№ RFC Тақырып
RFC 768 UDP
RFC 791 IP
RFC 793 TCP
RFC 822 электрондық пошта форматы, RFC 2822 ауыстырылған
RFC 959 FTP
RFC 1034 DNS — концепция
RFC 1035 DNS — еңдіру
RFC 1591 домендік аттар құрылымы
RFC 1738 URL
RFC 1939 POP хаттамысының 3 нұсқасы (POP3)
RFC 2026 Интернетегі стандартизация процесі
RFC 2045 MIME
RFC 2231 символ кодтау
RFC 2616 HTTP
RFC 2822 электрондық пошта форматы
RFC 3501 IMAP 4 нұсқа 1 басылым (IMAP4rev1)
Интернет стандартизациялар бойынша жұмысын басқаратын негiзгi ұйымдастыру бөлiмшесi
(Internet Society ) ISOC болып табылады. Оған осы желiнi дамытудың әр түрлi тұрғыларымен
шұғылданатын 100 мың шамасында қатысушы бiрiктiредi. ISOC екi топ тұратын IAB (Internet
Architecture Board ) жұмысына жетекшiлiк етедi:
IRTF (Internet Research Task Force). TCP/IP жататын ұзақ мерзiмдi зерттеу жобаларын
басқарады;
IETF (Internet Engineering Task Force). Интернеттiң келесi стандарттары үшiн
спецификация анықтайтын инженерлiк топ
1994 жылдан бастап веб желiлер үшiн стандарттардың өңдеуiмен, Бернерс Тим-Ли құрған
және осы күнге дейiн басшылық ететiн W3C (World Wide Web Consortium ) консорциумы
шұғылданады.
W3C консорциумы - интернет және WWW үшiн технологиялық стандарттар өңдейтiн және
енгiзетiн ұйым.
2-кесте Инетернет желісіне қосылу технологиялары
Қосылу технологиясы Максималды жылдамдығы
Коммутирондық телефон линиясы 56 кбит/с
ISDN 128 кбит/с
Кабельді теледидар 36 кбит/с
ADSL 2 1 Мбит/с (сұраныс)
10 Мбит/с (жауап қайтары)
2,4 ГГц диапозондағы радиоканал 54Мбит/с
Спутник арқылы қосылу Жүйеге байланысты бірнеше Мбит/с
Т 1 1,544 Мбит/с
Т 3 44,74 Мбит/с
GSM - data 9,6 кбит/с
GPRS 160 кбит/с (теориялық максимум)
UMTS 2,048 Мбит/с
8.
8
Қарапайым телефон тектөменарналық диапазон линиясын қолданады. Екіарналы телефон
проводынан ақпаратты жіңішке "телефондық" жіберу аралығыменемес, одан да кеңдеу аралық
қолданса, ақпаратты бұдан да көп жіберу мүмкіншілігі туады.
Жіберу аралығы және оның аумағы дегеніміз - ақпарат жіберіп жатқан канал диапазонындағы
ең жоғарғы және ең төменгі арналардың айырмашылығы.
Сигналдық телефон линиясы арқылы аналогті жіберілуі 300Гц - тен 3,4кГц аралығындағы
диапазонды қамтиды. Сандық сигнал үлкен диапазондық арнаныталап етеді. Жіберу жылдамдығы,
жоғары болған сайын, диапазон арнасының кеңеюін қажет етеді. Сандықтан да кеңаралықты
қосылу ұғымын кезінде компьютер желісінің жоғарғы шегі аталады.
Жоғары жылдамдықты ақпарат жіберу деп бірнеше сигналдардың бір физикалық арнада
бірнеше арналарға топталуы негізінде жіберілуі мультиплексирлеу д. а. Қысқаша айтқанда,
мультиплексирлеу - арналардың кішігірлім арналықтарға жіктелуі.
"Кеңаумақты қосылу" терминін транспорттық магистраль арналогиясы негізінде тусіндіруге
болады. Яғни, машина жолдары көп болған сайын, сол арқылы бір мезгілде көбірек транспорт
жүріп өтеді . "Кеңаумақты қосылу" термині тек дыбысты ғана жіберуге мүмкіншілігі бар
каналдарды көрсетеді. Кейде "кеңаумақты емес қосылу" термині де кездеседі.; бұл- мәліметтердің
64Кбит/с каналына диін ғана жіберілуі.
Қолдануына байланысты кеңаумақты емес қосылу әртүрлі анықтаманы көздейді. Мысал:
Jupiter communications өздігі оны256 Кбит/с кем емес канал ретінде анықтайды.Әдетте кеңаумақты
қосылу бір канал арқылы сигнал жіберуге де телефон және интернетпен қолдануға мүмкіндік
береді.
DSL технологиясы сандық мәліметтерді жоғары жылдамдықты жіберу мақсатында телефон
желісін қолдану
DSL (Digital Subscriber Line) аббревиатурасы - сандық абоненттік линия. Бұл технология
телефон сухбатына зиян келтірместен жоғары арналарда ақпарат жіберуге қолданылады. ХDSL деп
аталатын бұл технологияның көптеген топтамалары (Х-бұл технологияның нақты бір түрін
нұсқайды). DSLтехнологиясы пермпективті болып табылады. Ол бір мезгілде интернетке
қосылуға да, телефонмен сұхбаттасуға да мүмкіндік береді . DSL жылдамдығы басқа модемдермен
салыстырғанда біршама жоғары болады. DSL үшін жаңа проводтар қажет емес, өйткені ол телефон
линиясы тікелей жалғанады.
Ассиметриялық DSL (ADSL)
Интернет жүйесінде жұмыс істеген кезде ақпарат көбінесе желіден қолданушыға жіберіледі,
ал желігі бірнеше есі аз мәліметтер көлемі келіп түседі. Мыысалы: сіз,веб-беттерді қарағанда, сіз
тек кішігірім сұраныс жасайсыз, ал желіден текстеп бірге сурет те келіп түседі. Яғни, ақпарат
алмасу ассиметриялық болып табалады. Сондықтан мұндай трафикке ассиметриялық канал қажет.
Мұндай ассиметриялық алмасуды айтқанда автомагистраль аналогиясын елестетуге болады: бір
жаққа азмашина ағымы қозғалуда, ал екінші жаққа – кеіріснше. Бұл жағдайда кіру аралығын –
жіңішке, ал шығу аралығын – кең етіп орнатқан тиімді.
ADSL – мәліметтерді қолданушының жіберген сұраныстың жылдам жіберген сигнал желіден
қолданушы сигналына қарағанда төмен болады. Қазіргі жаңа технологиялар арқылы
мәліметтерді ADSL – де жіберу он есе арттырып отыр: шамамен абоненттен желіге – 1Мбит/с.
Сонымен қатар, бір линияны сандық және дыбыстық мәліметтерді жіберу үшін параллель
қолдануға болады. Жоғары деңгейлі жылдамдық, вебсайттармен жұмыс істеуге, үлкен ауқымды
файлдарды тарттыруға және интерактивті приложениялардытолығымен қолдануға қолайлы болып
келеді. ADSL басты бір ерекшелігі – оны қондыру болып табылады: телефон станциясы мен
қолданушыны байланыстырып тұрған телефон кабеліне жалғанады. ADSL –дің өз кемшілігі де бар:
қашықтық шектеулігі.
ADSL технологиясы қолдануда ақпараттар арнасының кері бағыты қашықтыққа тәуелді
болады. Егер абонентке қарай ақпаратты 3 км арақашықтықта 8 Мбит/с тек 1,5 Мбит/с
жылдамдықпен алуға болады. Стандартты ADSL 2 технологиясында «тығу» жылдамдығы 3 км
қашықтыққа
10 Мбит/с – ті қамтиды, ал «шығу» жылдамдығы 1Мбит/с
9.
9
Қолданушының ДК ADSL– модеміне жалғанады, ADSL – модемінің қызмет принципібылай
тұжырымдалады:
24 кГц – тен 1100 кГц интервалында диапозон арнасы 4000 Гц/тік арнашықтарға жіктеледі,
әр арнада виртуалды модем өз диапозон арнасында жұмыс істейді. ADSL – модем дара бөлгішке
қосылады. Арналық бөлгіні төмен арналы фильтрді ұсынады, ол төменарналы телефон байланысы
мен ADSL – сигналын ажыратып отырады. Арналық бөлу блок ретінде орындалады.Ол 3 ұяшықтан
тұрады:
Бірінші – ADSL модемі қосу үшін; Екінші – телефон құрылғысын қосу үшін; Үшінші – ADSL
линиясына жалғау үшін.
Арналық бөлігі бір линияға компьютерді де, телефонды да қосуға мүмкіншілік береді.
Осылайша, бір линияда компьютерлік сигналдар да, аналогтық сигналдар да жіберіле алынады.
Мұндай арналық бөлгіш арқылы телефон станциясы абоненттік линиялың келесі жағында да
жоғары және төмен арналық сигналдарды ажыратуға болады.
Дыбыстық (аналогтық) сигнал тедефон желісіне бағытталады, ал сандық сигнал DS LAM
(Digital subscriber Line Access multi plexer) мультиплексеріне бағытталып, сол жерден провайдер
арұылы интерент желісіне жіберіледі. Қосылу мультиплексоры – барлық DSL абонентерінің бір
жоғары арнаға қосылуын қамтамасыз ететін телефон компаниясының ғимаратындағы механизм.
ADSL – экономды технология, ал тұтынушыға аналогтық қосылуға қарағанда арзанырақ
түседі.
Сурет 2 - Ассиметриялық DSL (ADSL) сызбасы
ISDN – технологиясы
Бөлінген телефон линиясы – бұл арендаға алынған 2 абонентті қосатын телефон линиясының
байланысы. Бөлінген телефон линиясының ең көп тараған технологиясының бір түрі – ISDN(
Integrateal Service Digital Network).
ISDN – сандық мәліметтер жіберілудің стандартты кез – келген ISDN – линияның негізгі
компоненті – бір бағыттағы bearer – канал немесе В – канал, жіберу жылдамдығы 64 кбит/с. Бұл
канал арқылы сандық мәліметтер және сандық формат аударылған аудио және видиомәліметтер
жіберіле алады. Арнаны кеңейту үшін В-каналдары екі-екіден тапталып, оған Д-каналы қосылады
– мәліметтердің жеткізілуін қадағалайды. Ақпарат жіберілуі қарапайым проводтар арқылы жүзеге
асады. Дербес қолданушылар модемі орнына ISDN – адаптерін қондырып, интернетке 128 кбит/с
жылдамдықпен қосыла алады. ISDN адаптердің линияны 2 бетінде де қосылуын талап етеді.
10.
10
ISDN – адаптерінISDN – модемі деп те атайды. Ескере кететін жағдай, бұл термин нақты
емес, өйткені ISDN – адаптерлер модуляция және демодуляция функцияларын орындамайды,ISDN
– линиясы сандық болып табылады. ISDN – каналы телефон компаниясымен ұсынылады. ISDN
линиясы арқылы бір мезгілде телефонмен cөйлесуге де, интернетте отыруға да болады. Әдетте
бөлінген канал ұғымы тұрақты интернетлиниясы деген мағыналы түсіндіреді. Алдағы уақытта, бұл
өз дәл осы ұғымда қолданатын болады.
Браузер туралы түсінік
Веб-браузер дегеніміз – интернеттегі ақпарат көздерін көру үшін оларды өңдеуге, бір беттен
екіншісіне ауыстыруға арналған бағдарлама. Ақпарат көздері Uniform Resource Identifier (URI)
арқылы анықталып, ақпарат көзі ретінде веб-беттер, суреттер, видео және контенттің басқа да
бөлімдері болуы мүмкін. Жалпы браузер сайт пен оған кіруші арасындағы веб-беттерді өңдеуші,
шығарып беруші қосымша болып есептеледі.
Қазіргі кезде көптеген атақты браузерлерді тегін немесе басқа жинақпен пайдалануға болады.
Мысалы: Internet Explorer (Microsoft Windows-пен бірге), Mozilla Firefox (тегін, Linux-тің көптеген
дистрибуторларымен бірге, мысалы Ubuntu), Safari (Mac OS X-пен бірге және Microsoft Windows
үшін тегін), Google Chrome (тегін), Opera (тегін, 8.49 нұсқасынан бастап).
1) Google Chrome
Сайт: https://www.google.ru/chrome/browser/desktop/
Интернет желісіндегі көп қолданылатын браузердің бірі:
Жұмыс жылдамдығы. http://pcpro100.info/tormozit-google-chrome/;
Ыңғайлы іздеу тәсілі (адрестік жолға тез арада сұранысты енгізу);
Жиі қолданатын сайттар басты бетте орналасады;
Минимализм стиліндегі дизайн
Шет тілінде беттін аударылуы.
http://pcpro100.info/kak-blokirovat-reklamu-v-google-chrome/
2) Firefox
Сайт: https://www.mozilla.org/ru/firefox/
Жұмыс жылдамдығы жоғары;
Сайттан видео көшіру, керек форматтағы суреттерді автоматты табу, жарнамаға бөгет қою,
көшірілген файлдарды вирустарға сканерлеу және т.б.
3) Яндекс.Браузер
Сайт: http://browser.yandex.net/
Жұмыс жылдамдығы жоғары;
Яндекс сервисімен жұмыс жасайтын қолданушыларға ынғайлы. Мысалы, ақпаратты іздеу,
ауа райы жайлы ақпарат алу, электронды пошта көру.
Турбо-интернет опциясы қолданылады (трафикті үнемдейді, бетті көшіру жылдамдығы,
интернет провайдер арқылы блокқа түсірген парақтарды көрсетуге мүмкіндік бар).
4) Opera
11.
11
Сайт: http://www.opera.com/ru/
Жұмысжылдамдығы жоғары;
Жүйелік ресурстарды қолдануы төмен;
Жиі қолданатын сайттар басты бетте орналасады;
Турбо-режим қолданылады, Мысалы, егер Youtube-та видео көру кезінде ақаулар болса,
турбо-режимді қосу керек.
5) Хром - Mail.ru
Сайт: http://internet.mail.ru/
Адрестік жол арқылы жылдам іздеу;
Вирусы бар сайттарды алдын-ала хабарлап отыратын қорғаушы енгізілген;
mail.ru-да эл.поштаныз болса, тез арада кіруге мүмкіндік бар;
§ 1.2 ИНТЕРНЕТ ЖЕЛІСІНДЕГІ КЛИЕНТ-СЕРВЕР ТЕХНОЛОГИЯСЫ
Интернетке қосылған барлық компьютерлерді екі типке бөлуге болады: серверлер және
клиенттер. Бір компьютерде сервер де, клиент те қатар орналасқан болуы мүмкін. Локалдық
компьютерде веб – сервер қосып, сонымен қатар дәл сол компьютерде браузермен және электронды
почтамен жұмыс істеуге болады.
Басқа компьютерлерге сервистік анық қызмет көрсететін компьютер – сервер(ағылш., to serve
– қызмет көрсету), ал сол қызметті пайдаланушы компьютер - клиент болып табылады. Көп
жағдайларда үй желісі арқылы Интернетке қіріп отырған клиенттер тек керек жағдайларда ғана бұл
қызметті пайдаланады. Ал серверлік компьютерлер, керісінше, әрқашан Интернет желісіне жедел
каналдар арқылы қосулы тұрады, сондықтан оларға кез – келген ақпаратқа сұраныс жасауға болады.
Серверлерлік қосымшалар және клиенттік қосымшалар
Компьютерлерді клиенттер және серверлер деп атаумен қатар, клиент және серверлерді
бағдарламалық тұрғыдан қарастырған дұрыс. Бір бағдарлама клиент ретінде, ал екіншісі сервер
ретінде қосымшалардың іс – әрекет етуі клиент – серверлік архитектура деп аталады.
Сервердің басты қызметі –барлық уақытта жұмыс істеп тұру немесе клиент қандай да бір
сервиске сұраныс жасағанға дейін күту режимін қабылдау.
Сервер шамадан тыс сұраныстардың көп болу әсерінен нақты бір сервистік сұранысттардың
орындалуына кідіртүі мүмкін. Серверге сұраныс желі арасындағы компьтерлік байланысты
қамтамсыз ететін стандарттар жинағы - белгілі бір протоколдар шегінде жүзеге асады. Серверлік
бағдарламалар клиенттерге қызмет ету мақсатында компьютердің аппараттық ресурстарын
пайдаланады. Клиент – бағдарлама сұраныс жасақтап, оны желіге белгілі бір мекен – жай бойынша
жібереді және алдын ала келіскен проткол арқылы сервер – бағдарламамен қарым – қатынаста
болады. Бір компьютерде бірнеше серверлік бағдарламалар орналасуы мүмкін. Клиенттік қосымша
сервер орналасқан компьютерде орнатулуы мүмкін немесе желімен байланысқан оқшау
компьютерде орналасуы мүмкін. Оқшау орналасқан жағдайда жауап алу мөлшері көбірек болуы
мүмкін.
12.
12
Әрбір сервер –бағдарламасына сай өзіндік клиент – бағдарламасы болады. Осылайша веб -
клиент веб - серверге, почтолық клиент - почталық серверге т.с.с. сұраныс жасайды.Серверлік -
бағдарлама сұраныстарды орындауға әрқашан дайын болуы керек, сондықтан да серверлік
бағдарлама жұмыс істеп отырған компьютерлерге аппараттық жоғары талаптар қойылады.
Клиенттік компьютерге ондай қатаң талаптар қойылмайды. Жоғарыда айтылған қызмет көрсетулер
(клиенттік-серверлік архитектура) дербес компьтерлер қолданушысына өз жұмыс столынан
Интернет желісіне кіруге мүмкіндік береді.
Провайдерлер және олардың желілері
Интернетте жұмыс жасағанда біз, интернет-провайдер қызметін жиі пайдаланамыз
ISP(Internet Service Provider). Әдетте, ISP – жеке (магистральды) желісі бар көптеген клиенттер
қосылатын мамандандырылған ұйым. Провайдер желісі бүкіл жер шарының әр жерінде орналасқан
желілерге қосылып планетамыздың кез келген нүктесімен байланысуға мүмкіндік береді. ISP
провайдерлер – әр ауданда Интернетке кіруге мүмкіндік беретін апараттық құрылғылары
орналасқан өз қатынас ету нүктелері (POP - Point of Presence) бар ірі компаниялар. Ірі
провайдерлердің әртүрлі қалаларда орналасқан ондаған қатынас ету нүктелері және мыңдаған
клиенттері бар. Ірі провайдерлермен қатар кішігірім қатынас нүктелері бір қалада орналасқан
провайдерлер де болады. Провайдерлер ретінде жеке меншік арнайы маманданған фирмалар да ірі
телефон компаниялары да қызмет істей алады.
ISP мен телефон желісі арқылы байланыс орнату механизмі: ДК қолданушысы провайдерге
телефон шалып, онымен және оның модемімен байланыс орнатады. Қолданушы өзінің ISP
қосылған соң провайдер желісінің құрамына енеді. Өз серверінде провайдер қолданушыларына
әртүрлі сервис қызметін көрсетеді: электрондық почта (e-mail), желі жаңлықтар қызметі (Usenet)
т.с.с. Провайдердің магистральді желісін бэкбоун (ағылш. Backbone — жон омыртқа) немесе тірек
(опорная) желі деп те атайды. Провайдер желілері коптеген қолданушыларға қызмет
көрсететіндіктен олардың желілері улкен жылдамдықты желіге және ауқымды трафикке иеленуі
керек.Сол себепті провайдерлер ондай желілерді ірі коммуникоционды компаниялардан арендаға
алады немесе жеке өзінікін тарттырады. Ірі коммуникациялық компаниялар жеке үлкен
жылдамдықты желілерге ие.
Провайдер желілерінің біріктірілуі
Бір провайдерлердің клиенттері, мысалға ISP-A өз желісінде бір бірімен қарым – қатынаста
бола алады, ал басқа компания ISP-В клиенттері өз желісінде бір бірімен қарым – қатынаста бола
алады. Егер ISP-A және ISP-В желілері байланыспаған болса, онда А компаниясының клиенттері В
компаниясының клиенттерімен байланыса. Оларды біріктіру үшін А және В компаниялары
арасында желілік байланыс нүктелері (NAP - Network Access Points) арқылы тіке байланыс
орнатады. Осылайша барлық провайдерлердің магистральды желілеріне қосылып нәтижесінде
жоғары дәрежелі желілер жиының бірігу процессі қалыптасады.
Интернетте жүздеген ірі интернет-провайдерлер қызмет етеді, олардың әр қалада орналасқан
магистрльды желілері NAP арқылы жұмыс істейді және көптеген мәліметтер жиыны NAP-түйіндер
арқылы түрлі желілерге жеткізіліп отырады.
Үлкен және кіші интернет желілерін біріктіру негізінде келісім шарттар тізбегі
орналастырылады. Әрбір клиент өз локалдық желісінің провайдер желісіне қосылғандығы жөнінде
келісімшартқа тұрады.
Провайдер желісінің иерархиясы
Дамыған елдерде жүздеген провайдерлер болады, олар халықаралық, мемлекеттік және
регионалды болып бөлінеді.
Регионалды провайдерлер жедел жылдамдықты каналдар арқылы мемлекеттік
провайдерлермен байланысқан. Мысалға АҚШта стандартты жеткізу жылдамдығы 1,544 Мбит/с Т1
13.
13
линиясы немесе жеткізужылдамдығы 44,74 Мбит/с. Т3 линиясы Халықаралық провайдер желісі
мұнан да жедел каналдар арқылы біріктіріледі.
Осылайша сіз провайдер желісіне қосылу арқылы Интернетке кіріп отырған жер шарының әр
жерінде орналасқан компьютермен байлнысқа түсе аласыз.
Интернет коммуникациялардың модельдері (Pull және Push)
Интернет жүйесінің коммуникациодық сипаттамасын қарастырайық. Дәстүрлi
комуникациондық модель негізіне "біреуі бірнешеге" процессі тұжырымдалған. Коммуникация
құралына байланысты ақпарат статистикалық түрде (текст, графика) немесе динамикалық түрде
(аудио, бейнеклип, анимация) берілуі мүмкін. Дәстүрлі құралдар қарым қатынасының негізінің
басты ерекшклігі интерактивті қарым қатынас болмауында.
Бұл модельден айрмашылығы Интернет негізіне екі принцип орналасқан. Біріншіден,
Интернет коммуникациясы кезінде өзара әрекеттесу өзара әрекеттесуге түбегейлi үлестi кiргiзетiн
оның ортасы арқылы болады. Бұл модель бастапқы қарым – қатынас ақпаратты алушы мен жіберуші
арасында емес, қолданушы мен коммуникационды орта арасында болып жатқандығын көрсетеді.
Мұнда диалогқа түсушілер ақпарат жіберуші де ақпарат алушы да бола алады. Осы модельде жай
қабылдаушы мен алушы арасындағы ақпарат алмасудан ақпараттық орта құруға қадам жасалынған.
Интернет "бірнешеу-бірнешеуге" атты коммуникационды процессті ұсынады, мұнда желідегі
әр бір қолданушы өзінің атынан немесе өзінің тобы атынан жекелеген немесе топталған
абонентттермен қарым – қатынас жасауға болады. Бұл модельде коммуникация құралы болып
арнайы жекелендірілген компьютерлік желі болып табылады,ал ақпарат басқа да мәліметтермен
бірге гипермедиалық түрде жеткізіледі. Берілген модель көрсетіп отырғандай интерактивтік қарым
– қатынасты Интернет сервисіндегі қолданушымен де, осы қызмет түрін ұснып отырған ортамен де
мүмкін екенін көрсетеді. Осындай қарым – қатынас негізінде тасымадаушы әрі тұтынушы, әрі
қызмет көрсетуші бола алады. Мұндай модельде ақпараттар жіберушіден тұтынушыға беріліп қана
қоймай өзінің қолданушылары арасында ақпараттық ортаны құрып та отырады. Дәстүрлі
жалпылама коммуникациялар құралдарының коммуникациондық моделі қайта байланысу
контурына ие емес, ал Интернет желісіндегі модель орталықтары үшін қайта байланысу контуры
мүмкін. Тұтынушылар арасындағы қайта байланысу контурының орындалуы ретінде электрондық
почта, "cookie" файлдары, Веб – серверлерге тіркелу мысал бола алады. Қайта байланысу
коммуникациялық құралдарды қолдану тиімділігін арттырумен қатар ішкі және сыртқы ортадағы
оқиғаларға сәйкес жауап қайтаруға мүмкіндік береді.
Интернет коммуникациясының Pull- и Push-моделдері
Коммуникация тұрғыссынан қарасақ тұтынушыларға бұқаралық ақпарат құралдары
(телевдидар, радио и т. д.) ақпаратты жеткізудің push-модель орындап отыр; бұл жағдайда
тұтынушы пассивтік роль атқарып, тек шектеулі ақпараттар арналарын жиының таңдауға ғана ие.
Интернет желісінде push-модельден басқа, pull-модель де бар; ол ақпаратты тек сұраны с
бойынша ғана жіберіп отырады (demand pull). Бұл Интернет ортаның ерекшелігі – тұтынушылар
активті роль ойнайды себебі олар ақпараттар мен навигацияларға іздеу механизмдерін және URL
(uniform resource locator) басқа қорларын пайдаланып өздері сұраныс жасайды. Сонымен қатар
Интернетте push-модельмен жұмыс жасау мүмкіншіліні бар. Интернет бұл модельді push-
технологиясы арқылы жүзеге асырады, яғни қолданушылар қажетті ақпаратты Интернет желісінде
іздемей-ақ, өзін қызықтырушы тематика каналына тіркелсе, қажетті ақпарат автоматты түрде
канкалға жазылғандардың компьютеріне жеткізіліп отырады.
Интернеттегі технологиялар push- и pull-модельдері арасында тығыз байланыстадамып келеді.
Интернет желісінің жоғары функционалдығына байланысты тұтынушының ақпараттарды,
компьютерлік ресурстарды пайдаланулары үшін навигациялауына әрқашан мүмкіндік бар. Келесі
бір жағынан қолданушының ақпараттармен жабдықтаушыларды және қабылданатын push-
каналдардың тематикаларды таңдауга еркі болады.
14.
14
Интерактивтеу
Интернет жүйесіндегі маңыздысипаттамалардың бірі - интерактивтеу. Интерактивтеу –
коммуникациондық хаттардың қарым – қатынасын анықтайтын коммуникациондық процесстің
жүзеге асу сипаты. Интерактивтік қарым – қатынас сипаттамасына сәйкес келіп түскен хатқа жауап
берілуі қажет және де жауап алдыңғы хаттардың контекстіне сай болуы керек. Жоғарыда
айтылғандарды қорытындылай келе, Интернетті интерактивтеу диалогке қатысушыларға келіп
түскен хаттарға жауап беру қабілеттілігі. Мұнымен, интерактивтеу диалогке қатысушының іс-
әрекетін толық жеткізуге, компьютердің функциясын кеңейтеді . Интернет ортадағы
интерактивтілік ендi, орта арқылы дербестен деңгейде қарым-қатынас емес, ортамен өзара
әрекеттесу деңгейде тiкелей iске асады.
Өзара әрекеттесудi интерактивті сипаты коммуникацияның қатысушыларының өзара
әрекеттесуiн тиiмдiлiктi жоғарылатуға айтарлықтай мүмкiндiк бередi. Мысалы, iс жүзiнде бұл
мәмiленiң шешiмi немесе сатып алу үшiн қажеттi мәлiметтiң алуы үшiн тиiстi уақыт қысқарта
алады. Сонымен бiрге, ортаның интерактивті сипаты жеке клиенттiң ерекшелiктерiне байланыстың
құрал-сайманының мүмкiндiгiн туралауды ұсынады.
Гипермәтін
Интернет желісіндегі тағы ерекшелік оның гипермәтіндік табиғаты болып табылады. Дүние
жүзіндегі ең алғашқы гипермәтіндік жүйені 50 жыл бұрын, бірінші ЭВМ-ң негізін қалаушы,
Ванневар Буш ұсынды. Бұл жүйе Метех деп аталады және былай түсіндірілді: " Қолданушы өз
кітапшаларын, жазбаларын және коммуникацияларын сақтайтын құрылғы . Ол әрі ыңғайлы, әрі
жедел іске қосылуы тиіс". 1967 жылы Нельсонның сипаттамасы бойынша Гипермәтін- сілтемелер
мен ассоциалар желісі. Ол адам, өз жадында, ақпараттың әр фрагментің қалай біріктірсе, дәл солай
жүзеге асады. Ал Бомман 1993 жылы Гипермәтін анықтамасын былай көрсетеді: "Гипермәтін-
қолданышуның желілер мен байланыстар арқлы біріктірілген ақпараттық фрагменттер
концепциясы Гипермәтінде ақпараттық жуйе хаттамалар мен сілтемелер түрінде ұсынылады.
Гипермәтін сызықтық емес ақпараттар жиынының формасы ретінде ұсынылады. Олардың
әрқайсысы жек фрагменттердің құралған. Әрқайсысында байланыс түрінің типіне байланысты
келесі фрагментке сілтеме көрсетілген. Гипермәтіндік технологиясының орнына емес,
ыңғайлылығы, әрбір қолданушы, біліміне және қабілеттігіне қарай материалды қолдану әдісін өзі
анықтайды.
Гипермәтiн мәлiметтi ғана емес, оның тиiмдi iздестiруiн қамтамасыз ететін аппарат та болады.
Сайып келгенде, мәлiметтiң гипермәтiн ұсынысы кәдiмгi әдiстiң алдында артықшылықтары
мәлiметтiң меңгеруi мен өндiрiп алуға тиiмдi әсер етеді.
Мультимедиа
Мультимедианың пайда болуына байланысты статикалық (текст, графика, сурет) және
динамикалық ( аудио, видео, анимациа) құралдардың компьтерлік интреграциялау мүмкіншілігі
пайда болады. Мультимедиа құралдары мен гипертекст, камбинациясы жаңа ортаның пайда
болуына себеп болды.
Гипермедиа – ақпараты бейнелеу және оған руқсаталу әдісі. Оның концепциясы, түйiндерi
ақпаратты сақтайтын граф түрінде, семантикалық байланыстары графаның доғалары түрінде
көрсетiлген, ақпараттық орта моделінде қалыптасады. Гипермедиа жуйесінде сақталған ақпараттар
қазіргі заманғы компьютерлер оқитын барлық формада ұсынылуы қажет. Осылайша гипермедиа
өзінде гипермәтіндік байланыстар арқылы радионы да (аудио), теледидарды да (динамикалық
бейнетаспа), прессаны да (текст, сурет, фото) және компьютерді (бейнетерминал) біріктіреді.
Қатысу эффектісі
Коммуникациондық Интернет моделінің тағы бір негізгі элементі "Қатысу эффектісін ің "
болып табылады . Ол клиент пен қоршаған ортаның қарым-қатынасын сипаттайтын процесс, және
15.
15
компьютерлік гиперқуралдар қурайтын,яғни жұмыс орнынан, қоршаған ортадан, бөлмеден т.с.с
тұрады. Осы екі жағдайдың клиентке әсер етуі "катысу эффектісінің" интерактивті ортамен және
компьтерлік гиперортамен тікелей байланысты басты ерекшелігі, "қатысу эффектісінің" клиент
үшін "айқындылығы" Ол диалогтің қарапайым және жан бітірілген түрде өтуіне көп мүмкіншілік
тугызады.
Желілік навигация
Желілік навигация компьютерлік гиперортада өзіндік анықтау процессі ретінде сипатталады.
Желілік навигацияға негізделген сызықтық емемс іздеу мен ақы сұранысы клиентке бұл процестің
үстінен қадғалап отыруға мүмкіншілік береді
§ 1.3 ИНТЕРНЕТТЕГІ WEB СЕРВЕРЛЕР. WEB – СЕРВЕР ЖҰМЫСЫНЫҢ МЕХАНИЗМІ.
СТАТИСТИКАЛЫҚ ЖӘНЕ ДИНАМИКАЛЫҚ БЕТТЕР. CGI ТЕХНОЛОГИЯСЫ.
СКРИПТЕР. САЙТТЫҢ ТҮРЛЕРІ
Браузердің адрестік жолындағы қажетті URLді теріп болған соң, браузер пайдаланған
протокол (HTTP) жөнінде мәлімет және сервер атын алады. Сервер атын IP- адреске ауыстыру үшін
браузер DNS серверіне- жүгіаптаі. Алынған IP- адрес негізінде браузер ізделінді Web- сервермен
байланыс орнатады және HTTP протоколын пайдалана отырып ізделінді ресурсты сұрайды. Сервер
браузерге серверде сақталатын HTML бетін жібереді. Браузер HTML- тэгтерін оқу нәтижесінде
сіздің компьютеріңіздің экранында бет ашалады, одан сіз өз сұранысыңыздың нәтижесін көраласыз.
Әдетте қарапайым Web беттерде тек текст қана емес графиктерден де тұрады, яғни әр түрлі типтегі
бірнеше файлдан тұрады. Браузер ол файлдарды тану үшін, сервер қандай файлды (HTLM
форматындағы текст немесе JPG форматындағы графика және т.б) жіберу керек жөнінде мәлемет
береді содан соң файл мазмұны жіберіледі. Әдетте, Web беттер көптеген файлдардан түрғанына
қарамастан бір рет сұраныс уақытысынды Web сервер тек қана бір файлды жібереді. Яғни, html
текст алып одан графикалық элементке сілтеме тауып, браузер серверге жаңа сұраныс жібереді (
html текст келген серверге ғана жіберу міндетті емес). Әрбір жаңа файлды көшіріп алу үшін браузер
жаңа HTTP сұранысын жіберу керек. Бұнда қазіргі серверлермен браузерлер көп потокты режімде
жұмыс істейтіндіктен бір мезгілде бірнеше сұраныс орындалуы мүмкін. Егер берілген адресте
сұранып отырған ресурс жоқ болса онда Web сервер мұнандай мәлімет береді 404/File not found (
файл табылмады). Статистикалық және динамикалық беттер.
Статистикалық беттер Web сервер каталогында орналасқан файлдардың нақ копиясы болып
табылады және өңдеуші өзі онда бір нәрсені ауыстырмайынша өзгермейді. Дегенмен беттер
динамикалық түрде қалыптасады, яғни дискідегі дайын файлдан емес, белгілі бір программада
сұраныстың өңделу уақытында. Осындай беттердің қалыптасуының бірнеше әдістері бар.
Тікелей Web серверде сұранысқа сәйкес қалыптастыру.
Web беттерді динамикалық қалыптастырудың мүмкіндігін жүзеге асыру үшін серверге
мынадай бағыт берілуі керек, қандай файлдар «кәдімгі» болады, ал қандайы оның программалық
өңделуіне нұсқаулары болады. Бұл жағдайда бетті сервердің өзі құрастырады ( арнайы командалар
көмегімен немесе ішкі бағдарлама). Беттердің динамикалық қалыптастыратын командасы болатын
программа мәтіні скрип деп аталады.
Тұтынушы компьютерінде қалыптастыру.
Бұл жағдайда программа мәтіні динамикалық web- парағын қалыптастыру үшін алдымен
тұтынушының локальдық компьютеріне беріледі, бұнда браузер web- парағын алу және өңдеу үшін
оған сәкес заттар шақыру керек. Динамикалық беттерді қалыптастыру үшін бірнеше технологиялар
бар. CGI- технологиясы.
Біздің сұранысымызға сәйкес дайындалған динамикалық беттер «жылдам қалыптасты».
Мысалы кез-келген пікірлер кітабы сізге белгілі бір форманы көрсетеді бұнда сіз өз мәтініңізді
қосасыз, келесіде осы бетті ашсаңыз онда жаңа хабарлама тұрады. Web- парағына динамикалық
мазмұнды қосуға мүмкіндік жасайтын технологиялардың бірі CGI (Comman Gateway Interface)
16.
16
болып табылады. Олсол немесе басқа URL мен статистикалық документі емес программаны
түсінуге мүмкіндік жасайды нәтижесінде нақты уақытта мәліметтер қалыптастырады. Мысалы егер
сіз белгілі бір районда ауа райынын дер кезіндегі мәліметінін бергіңіз келсе онда сіз әр бір ретте
жаңа бетті құруыңыз керек. Бұл CGI технологиясының негізінде жүзеге асыруы мүмкін. Серверде
жұмыс істеу бастағанда CGI программасы қосылады, ол цифрлы өлшеуіш құралына айналып
температура,қысым және т.б мәліметтер береді. Әр кезде осы адрестен мәлімет алу үшін
байланысқаныңызда сіз сол уақыттағы мәліметті аласыз. Басқа мысал: егер сіз ізденіс жүйесінен
белгілі мәлімет алғыңыз келсе онда CGI программасы жұмысының нәтижесін ізделінді адрестер
жыйынтығы түрінде аласыз.
CGI программасын нақты уақыттағы Web сервердің бір бөлігі ретінде қарастыруға болады.
Сервер тұтынушының сұрағын CGI программасына береді ол оларды өңдеп жұмыс нәтижесін
тұтынушы экранына қайтарып береді. Клиент үшін адресте URL статистикалық құжат па немесе
CGI программа ма еш қандай айырмашылығы жоқ. CGI программалары жұмысының нәтижесі
статистикалық құжат сияқты форматта болады. CGI терминін тек қана программа емес протокол
ретін де түсінуге болады. Бұл жағдайда CGI Web сервер үшін стандартты тәсіл болып табылады–
тұтынушы сұранысын бағдарламаға беру және одан мәлімет алу. Сервер мен оның қосымшасының
арасындағы бір біріне мәлімет жіберу жөніндегі CGI протоколы HTTP протоколының бір бөлігі
болып табылады. CGI программасының үлкен бөлігі CGI скрипталары болып табылады. Скрип
дегеніміз интерпритацияланатын немесе басқа программаларымен жұмыс жасайтын ережелер
жинағы. Perl, JavaScript тілдері тура осы скрипталық тілдер түрінде ойлап табылған. Олар
сценариилер жазу тілдері деп те аталады. Негізінен CGI программасы скрипталық тілде және де
компилирлық тілде жазылуы мүмкін. C,C++,Delphi.
CGI альтернативтітехналогиясы Micrоsoft компаниясының технологиясы болып табылады. Ол
былай аталады Active Server Page (ASP) ол да сол принциппен құрылған: web- серверге қосылған
скрипт, парақ тұтынушыға жіберуден бұрын серверде орындалады. Осы принциппен орындалатын
басқа да бір қатар технологиялар бар. Динамикалық мазмұны сервер жағындағы қалыптасатын
схемадан өзгеше динамикалық мазмұны тұтынушы жағында көріаптаі. Соңғы жағдайда активті
құжаттар web серверде және локольдік компьютерде сақталады. Онда белгілі бір есептеулер
орындалады жіне осы есептеулер нәтижесі экранда көрсетіледі. Активті құжаттарды дайындауда
түрлі технологиялар пайдаланады: бұл мәліметтер JavaScript те Java апплеттерде жазылған
қосымша болуы мүмкін және басқару элементі ActiveX болады.
Интернет сервисі. Файлдармен алмасу. FTP сервисінің жұмыс механизмі. FTP – клиенттер
FTP файлдарын жіберу протоколы(FILE TRANSFER PROTOCOL).
FTP (File Transfer Protocol – файлдарды жіберу протоколы) 1971 жылы ұйымдастырылды және
қазіргі уақытқа дейін жақсы қолданылуда. FTP TCP/IP базалық деңгейіндегі протолдарымен
базаланады және өз алдына Интернетте компьютерлер арасындағы файлдар алмасуын көрсетеді.
FTP негізгі тағайындалуы – Интернеттегі файлдарды жойылған компьютерден локальдіге
(Download) және локальді компьютерден жойылғанға (Upload) қайта жіберу (көшіру, қайта беру).
FTP протоколының көмегімен сондай-ақ өз файлдарынды жойылған компьютерден жоюға және
атын өзгертуге болады. Айта кететін жайт, ақпаратты тек оқуға арналған WWW-серверлеріне
қарағанда, FTP серверлері ақпартты жүктеуге және де ақпаратты серверге енгәзудә қамтамасыз
етеді. Жекешеде, Web-беттерден конструкцияланатын файлдарды жіберу үшін, көбінесе FTP-
протоколдары қолданылады. Әрине, серверде ақпаратты өзгерту қамтамасы, тек осы ақпарттың
иесіне берілу қажет. FTP-серверіне қолданушының жолығу кезінде рұқсаты логинмен және
парольмен жарияланады, бірақ ол үлкен дәрістерге арналған желіде сервер жоқ дегенді білдірмейді.
Көптеген серверлерге уақытша атпен кіруге болады(мысалы, anonymous немесе guest), және бұл
кезде сізге, тек оқу үшін арналған файлдардың шектеулі жиынтығы беріле алады.
РТР-ресурсының адрес форматы
Жалпы жағдайда РТР-ресурсының URL форматы мынадай түрге ие:
ftp://<user>:<password>@<host>:<port>/<url-path>, мұнда:
user – қолданушы аты (логин);
password - пароль;
17.
17
host –домендік ат немесе сервердің IP-адресі; - url-path – файлға жол.
Әдетте портты көрсетпейді, бірақ бұл жағдайда 21-стандарты қолданылады.
Жалпы рұқсаты бар серверге жолығу кезінде, қолданушының аты ретінде anonymous
қолданып, ал пролі ретінде - өзінің почталық адресін қолданамыз. URL-дағы анонимдік FTP үшін
қысқартылған синтаксис қабылданған: ftp: //<host>/<url-path>, яғни аты жоқ болған кезде,
автоматты түрде anonymous аты қолданылады. FTP-клиенттері
FTP қызметі клиент-сервер архитектурасына негізделген. Клиенттік компьютерде
программалық-клиент жіберіледі, ол сервермен байланысады және жібереді немесе файлдарды
қабылдайды. FTP-серверге рұқсат алу FTPклиенттерінің әртүрлі класстарының көмегімен жүзеге
асады, атап айтқанда: - консольдік клиент - бұл ftp.exe программасы, ол Windows операциялық
жүйесімен бірге беріледі,
FTP-клиент, браузерге енгізілген (мысалы, Internet Explorer немесе Netscape Navigator);
FTP-клиент, файлдық меаптажерге енгізілген (FAR немесе Windows Commander);
FTP-клиент, HTML-редакторға енгізілген (HomeSite, Dreamweaver немесе FrontPage);
Негізделген программалар (мысалы, CuteFTP немесе WS FTP).
ftp.exe көмегімен рұқсат беру
Ftp.exe – бұл консольдік клиент, оның графикалық интерфейсі жоқ және өте ыңғайлы.Біз мұны
«бұл қалай жұмыс істейді» деген сұраққа жауап беру үшін мысалға алдық. ftp.exe жүктеуі
интерактивті сеансты шақырады: программа сізге командалық жолды қамтамасыз етеді және
сауалдарды күтіп отырады. Диалог жүргізу үшін оншақты командалар қолданылады, олардың
кейбіреуі төменде көрсетілген:
cd [жойылған_директория] - каталогты ауыстыру;
mkdir [директории_аты] - каталогты жойылған машинада құру;
get [жойылған_файл] [локальдік_файл] – жойылған файлдың көшірмесін сіздің
компьютерге беру. Егер локальдік файл аты берілмесе, ол жойылған файлдың атымен сәйкес
келеді;
reget [жойылған_файл] [локальдік_файл] – жойылған файлды ары қарай енгізу, егер оның
жарты бөлігі локальді машинада болса. Бұл команда көбінесе біріктірудің мүмкін болған
бөлінулерінде үлкен файлдарды алу үшін пайдалы; - put [локальдік_файл] [удаленный_файл]
- переслать файл на удаленную систему. Если имя удаленного файла не указано, то оно
совпадает с именем на локальной системе;
delete [жойылған_файл] - жойылған_файл атты файлды өшіру;
close – жойылған сервермен FTP-сеансын бөлу және командалық интерпретаторға қайтару;
bye —FTP-серверімен жұмысты аяқтау (интерпретатордан шығуды қамтамасыз етеді).
Командалардың толық тізімін және қосымша мәліметтерді сәйкестендірілген RFC-тен (RFC
аббревиатурасы Request for Comments (түсіндіру ұсынысы) - Internet Engineering Task Force (IETF)
организациясымен басылатын документтер сериясы және көптеген Интернетті және оның
технологиясын қамтитын сұрақтарды қарастырады) алуға болады.
Ескерте кететін жайт, FTP-протоколы ұзақ уақытты интерактивті біріктіруді, диалог жүргізуді
және байланыс сеансын тоқтату командасы берілмегенше, біріктіруді қамтамасыз етеді.
FTP-протоколы екі типті файлды түсіаптаі – текстік және екілік, мұнда барлық текстік емес
файлдар екілік түрінде қабылданады. Работа через FTP біріктірілу арқылы жүретін жұмыс текстік
хабарламалардың ауысымы (қызметтік командалар) сияқты жүзеге асады, және де екі
компьютерлер арасында ауысымда болатын файлдармен де жүзеге асады.
Интернетте пайдаланушыларды идентификациялау.
Cookies механизмі. Cookies-ті қолдану.
Cookies негізіндегі технологиялардың кемшіліктері мен артықшылықтары
Cookies қалай жұмыс істейді.
Cookies – кішкене мәтіндік жазбалар, олар пайдаланушының компьютерінде сервердің
сұранысы бойынша браузермен сақталынады. Бұл мәтіндік ақпарат пайдаланушы компьютерінде
18.
18
жойылғанша сақталынады. ПайдаланушыныңWeb-серверге қатынасу тарихы сақталған cookies–ті
көптеген серверлер жібереді. Бұл жағдай сайттарға қатынасушыларды нақты бақылай отырып,
сайттарды пайдаланушыларға және олардың иелеріне қосымша сервистер ұсынуға мүмкіндік
береді. Мысалы: сайт иелері өздерінің сайтын неше адам қарағанын, сайтқа бірінші кім кіргенін, кім
қайталап кіргенін білу өте маңызды. Бұл мәселе cookies технологиясының көмегімен оңай
шешіледі. Web-сайттың программалық жасауы әрбір келушінің ерекше ID нөмірін ажыратып,
пайдаланушыға жібере алады және ол пайдалану компьютерінде сақталынады. Қайталап келу
кезінде бұл мәліметтер оқылып, Web-сайт өзінің келушісін таниды. Ары қарай берілген бетке келу
барысында сіздің cookies-дегі ақпараттар өзгеруі мүмкін. Сонымен қатар сервер әртүрлі cookies-
терді Web-сайттың әртүрлі бөліктерімен ассоциациялауы мүмкін екенін атап өткен жөн. Cookies
серверлерге келесіде келу кезінде пайдаланушыға жеке қызмет көрсете алатындай түрде түйін
жұмысын келтіреді. Мысалы: оған бір жарнаманы қайталап көрсетпеуге, беттерді оның алдындағы
келтірулерді ескеру арқылы қарауға мүмкіндік беру. Сервер пайдаланушының оған дейінгі
қатысуларын және ол енгізген келтірулерді есте сақтамайды. Cookies технологиясын пайдалану
пайдаланушыны есте сақтауға мүмкіндік береді, cookies файлдарынан оның атын, дербес
келтірулерін және т.б. оқу арқылы Cookies-тің уақыттық және тұрақты файлдарын ажыратады.
Cookies уақыттық файлдары пайдаланушы компьютерінде тек ағымдағы браузер сеансы барысында
сақталып тұрады, ал тұрақтылары пайдаланушы компьютерде сақталынады және қайталап келу
барысында Web–түйінмен оқылады. Cookies технологиясының көмегімен сайт иесі
пайдаланушының сайт ішіндегі орын ауыстыруларын бақылап, оның қалауы туралы мәліметтер
алуға және оны жарнамалық мақсаттарға қолдана алады. Cookies пайдаланушы жайында түйінге
келу кезінде таңдаған анықталған жеке келтірулерді және пайдаланушы өзі сәйкес тіркеу
нысандарына енгізген жеке идентификациялық мәліметтері секілді мәліметтер сақталады.
Серверден алынған cookies–терде тек қана пайдаланушы өзі серверге жіберген дербес мәліметтері
ғана сақталынады. Cookies-ті сақтау браузер пайдаланушы компьютердегі анықталған мәліметтер
базасына енгізуі тиіс. Егер сіз Miсrosoft Internet Explorer–ді пайдалансаңыз, ондасіздің компьютерде
бұл мәліметтер базасы аттары пайдаланушы және сервер аттарынан тұратын папка немесе файл
түрінде берілген. Мысалы: sanat@spylog[2].txt.
Мысалы:sanat@spylog[2].txt файлы келесі түрге ие:
VISIDSVWDOBAOFOTIYBYDIPspylog.com/102413625038082956710221631619 6829530892*
Бұл мәтіндік жолда келуші кірген сайт аты spylog.com және қызметтік ақпарат бар. Әдетте
браузерде cookies-тің максималды мөлшеріне (4 Кбайттан көп емес), cookies-тің жалпы санына (500
артық емес) және бір сервер үшін сақталған cookies-тердің максималды санына (20-ға жуық)
шектеулер бар.
Cookies-тердің шамасы аз және мәліметтердің үлкен көлемін сыйғыза алмайды. Әдетте осы
немесе басқа келуші кірген сайттар, оған көрсетілген жарнамалар, ол тапсырыс берген тауарлар
тізімі және т.б. туралы ақпараттар Web-серверде сақталынады, ал cookies осы ақпараттарды іздеу
үшін пайдаланылады. Cookies технологиясы жекелеген дербес беттерді жасауға мүмкіндік береді.
Мысалы: егер сіз өз cookies-ті қандай да ауа-райын көрсететін сайтқа тіркелу кезінде берсеңіз, онда
ол арнайы сіздің аймағыңыз үшін ауарайын хабарлап тұрады. Электронды коммерция сайттары
cookies-ті сатып алушылар кәрзеңкесін жасау үшін қолданылады. Сіздің кәрзеңкеңізге қосып
жатқан барлық өнімдер туралы ақпараттар Web-сервердің мәліметтер базасында сіздің ID–іңізбен
бірге сақталады. Егер сіз шотыңызды алғыңыз келсе, серверге сіз тапсырыс берген барлық тауарлар
мәлім, сондықтан оған мәліметтер базасынан олардың құны туралы мәліметтер алу және сізге
шотты беру қиын емес. Басқа компьютерден Web-сайттарға кіру барысында олар компьютерге
қажет емес cookies-терді енгізуі мүмкін (компьютер иесінің емес, яғни қонақтың келтірулерімен
ассоциацияланады).
Осындай жағдайда cookies-ті орналастыруға тыйым салып немесе жұмыстың аяқталуымен
оны жоюға болады.
Cookies-ті жою сіздің компьютеріңіздің жұмыс қабілеттілігі жағынан тиімді, бірақ есте
сақтаған жөн, егер сіз жиі кіретін сайтқа тиісті cookies-ті жойсаңыз, онда бұл cookies-термен бірге
сіздің келтірулеріңіз жойылуы мүмкін. Cookies-те қандай проблемалар пайда болады?
19.
19
Егер қандай дабір сайтқа бір ДК-ді пайдалана отырып бірнеше адам қатысса, онда келуші
Web-сервер әртүрлі келушілерді бір адам ретінде қабылдайды және олардың дербес келтірулерін
шатастырады.
Егер сіз интернетке кіру үшін әртүрлі компьютерді пайдалансаңыз (біреуі үйде, екіншісі
офисте) онда әрбір жағдайда барлық 3 компьютерде әртүрлі cookies-файлдар болады. Сонымен
қатар cookies-тер өшіріледі (мысалы:жүйені қайта орнату барысында). Сол себептен егер сіз cookies-
ті жойсаңыз және алдында кірген сайтыңызға қатыссаңыз, ол сізді жаңа пайдаланушы ретінде
қабылдайды.
Бұл қиыншылықтардың барлығын сайтта тіркелу арқылы айналып өтуге болады. Бұл жағдайда
сервер сіздің қай компьютерден кіріп отырғаныңызға тәуелсіз сіздің логиніңізбен, парольмен бірге
cookies сақталады және сізге дұрыс ақпарат ұсынылады. Cookies мәтіндік түрде сақталғандықтан,
пайдаланушы оны жоя алады немесе өзгерістер енгізе алады, Web-қолданбаны құрастырушылар
әдетте cookies-те тек маңызды мәліметтерді сақтамайды және Web-сервердің жұмысын ол
пайдаланушы дискіне орналастыруға тыйым салған жағдайда да жұмыс жасайтындай етіп
ұйымдастырады. Дискіде cookies-тің болуы пайдаланушы қандай сайттарға кіргенін талдауға,
кейбір жағдайда пайдаланушы нақты сайтқа хабарлаған мәліметтерді де талдауға мүмкіндік береді.
WEB –сайт түрлері
Бұл мәселені талқыламас бұрын ал дегенде сайттардың қолданылу ерекшелігі және оның
құрылымын мақсаттары бойынша жіктейік.
Сайттардан ақпарат алу үшін немесе есептерді орындау үшін жасалғандығы жайлы анықтап
барып оның түрлеріне сипаттама береміз. Кей жағдайда құжатты–бағытталған және мәселелік
(өрнектер) ерекшеліктеріне сәйкес айыруға болады. Құжаттық бағытталған немесе ақпараттық
сайттар қолданушы үшін ақпаратты алу, бірақта интерактивтік жағынан шектеулі ғана мүмкіндігі
бар болады. Қолданбалы немесе бағдарламалық бағытталған сайттар қолданушыға ақпарат алмасу
немесе қандай да бір әрекеттерді жасауға мүмкіндік береді. Мысалы, банкілік счеттан ақша аудару.
Ал гибериттік сайттарда барлық функция түрлері бар. Гиберидтік сайт түрі қазіргі кезде ерекше
дамысын табуда.
Мұндай категорияларға электрондық комерциямен айналысатын сайттар жатады.
Қоғамдық сайт: Мұндай сайттарда мемлекеттік ақпараттар және жаңалықтар көрсетіледі.
Мұндай сайттарда операцияларды байланыстыруға байланысты қолданушылар арасыннан
өз ара әрекеттеседі.
Қызықты сайттар: Мұндай сайттар ойындар немесе басқада интерактивті тіл
қызықтаушылық үшін құрылады. Сайттарды ұйымдастыру негіздеріне сүйеніп бөледі.
Олар қандай да бір жағдаймен төлем төлейді немесе басқадай жағдайлармен қолдаулар
көрсетеді. Мұндай түрлерге сайттың негізгі түрін алып негіз етіп салыстырамыз.
Сауда сайттары: Сауда жасауға, елмен қарым–қатынас жасауға, өз тауарларын
жарнамалауға арналған сайттар және мұндай сайттар көмегімен электрондық коммерция
мен тікелей айналысады.
Мемлекеттік сайттар: Мұндай сайт түрлеріне мемлекеттік жоғарғы органдар,
мемлекеттік органдар жатады. Сайттың негізгі мақсаты қоғамға немесе заңға бағынышты
болу, қажеттілігін қанағаттандыру.
Білім сайттары: Мұндай сайттар әр түрлі білім орындары университет, жоғарғы оқу
орындары, мектептер сияқтылар жатады. Бұл сайт зерттеу және білім орындарын
таныстыру мақсатында көптеп қолданылады.
Филантроптық сайттар: Филантроптық сайт коммерциялық емес сайттар немесе жеке
адамдар, қоғамдық қарапайым мекемелер жатады.
Персональды сайттар: Бұл сайтқа кез–келген тұлға немесе адамдар тобы, кез – келген
мақсатта жасалады. Олар еркін тақырыпта кез– келген жағдайда болуы мүмкін.
Сайттарды классификациялау күрделі мәселе. Мысалға, білім сайттары кей жағдайда басқадай
мемлекеттік сайттарға кіруі мүмкін.
Визуальды классификациялар: Визуальды ерекшелігі мен сайттарды ерекшелейтін болсақ, біз
диапозон мен жұмыс жасайтын боламыз. Сайттың енді бір жағына текстік құрамына көпрек мән
20.
20
береміз. Бірақта текмәтінге ғана емес графикалық таныстырулар және бейнелерге көбірек көңіл
бөлінеді. Internet–те 4 ең көп таралған дизайнерлік мектептер орналасқан.
Текст бағытталған сайттар: Мұндай сайттардың тексттік құрамына көбірек мән беру
қажет. Мұндай сайтты жөндеу қиынға соқпайды, дизайыныонша қиын емес өте қарапайым.
GUI түріндегі сайттар-: (Graphic User Interface) бұл сайт түрі қолданушы сайт интерфейсі
мен байланысты, бағдарламалық жобалық жабдақтауы кіреді. GUI–бағытталған ортасында
қарапайым сайттар бар. Басқаша айтқанда GUI–ге қосылатын компанентке байланысты.
Метафоралық сайттар: Метафоралық сайттар көбінесе өмірлік мысалдардан алынады.
Мысалы, дизайн машиналарға байланысты болуы мүмкін. Метафоралық сайттар жалпы
жағдайда визуальды немесе интерактивті емес болады.
Тәжірибелік сайттар: Мұндай сайтты жасаушылар, көрсетілген нормалдардан артық
жасайды. Мұндай сайттарда шығармашылық жағдайына көбірек мән береді. Бұл дизайнерлік
жағынан көптеген сайттарда қолданылады.
§ 1.4 HTML КІРІСПЕ. HTML ТІЛІНДЕ СІЛТЕМЕМЕН,
СУРЕТПЕН ЖӘНЕ КЕСТЕМЕН ЖҰМЫС
Гипермәтін және гипермедиа
Компьютер немесе басқа да электронды құрылғыларда оқылатын мәтіндер гипермәтін деп
аталады. Гипермәтінді оқу барысында оқырман тінтуір (mouse) немесе батырма (клавиш) басу
арқылы жедел түрде мәтіндерді ауыстыра алады. Оның қарапайым мәтіннен айырмашылығы –
гипермәтінде кесте, сурет және басқа да элементтер болады. Гипермәтіндер интернет
құрылымының негізін құраушы болып есептеледі. Себебі бұндай форматты интернетте пайдалану
оңай әрі ыңғайлы.
Гипермәтін сөзіндегі «гипер» сөзі грек тілінен «үстінде», «жоғарыда» деп аударылып,
ағылшын тіліндегі “super” cөзінің мағынасына сәйкес келеді.
«Гипермәтін» және «гипермедиа» терминдерін америкалық әлеуметтанушы, философ, АТ
(ақпараттық технология) саласын алғашқы зерттеушілердің бірі Тед Нельсон 1963 жылы айналымға
енгізді және 1965 жылы кең қолданысқа ие болды. Автор 1992 жылы шыққан “Literary Machines”
кітабында бұл екі терминге мынадай түсініктеме береді: «Қазіргі таңда «гипермәтін» сөзі мәтінді
тармақтандыру және оған жауап беру ретінде қабылданып, сәйкесінше «гипермедиа» сөзі график,
аудио- видеоларды тарату мен хабарласу жиынтығы болып есептеледі. Бірақ оның орнына ақылға
қонбайтын «интерактивті мультимедиа» сөзін қолданады, бұл жерде төрт буын артық және ол
гипермәтін сөзінің кеңейтілген мағынасын бере алмайды».
Гипермәтіннің даму тарихына қысқаша тоқтала кетейік. 1963 жылы Тед Нельсон алғаш рет
сілтемелері бар контентті енгізу мен қолдану үшін «гипермәтін», «гипермедиа» терминдерін
қолданды. Ол кейінірек 1967 жылы Браун университетінде Андриес ван Дам деген информатика
ғылымының профессорымен бірігіп, мәтін редакциялаушы Hypertext Editing System (аудармасы
«Гипермәтін Редакциялаушы Жүйе») жобасын жасайды.
Ал 1977 жылы шыққан ең алғашқы гипермедиа қосымшасы – Aspen Movie Map қаладағы жер
қыртыстарының виртуалды картасын қамтиды және оның көмегімен қолданушылар көлікпен жүрер
жолдарды таңдай алды.
Белгілеу тілі туралы түсінік
Белгілеу тілі – бағдарламалау тілдер қатарына емес, компьютерлік тіл қатарына кіреді.
Белгілеу тілі – символдар мен жүйеліліктер жиынтығы, ол қарапайым мәтіннен синтаксисі жағынан
өзгешелеу болып келеді. Белгілеу тілінде жазылған мәтіндік құжат тек қана мәтіннен емес, сондай-
ақ тізім, ерекшеленген сөздер немесе тақырыптардан құралады.
21.
21
«Белгілеу» (ағылшынша «markup»)термині ағылшын тіліндегі «marking up» сөз тіркесінен
туған, «белгілеу, белгілеп қою» дегенді білдіреді. «Белгілеу» сөзі сонау дәстүрлі баспахана
тәжірибесінде қолданылып, баспаға жібермес бұрын арнайы шартты белгілер мен таңбалар арқылы
қолжазбаға түзетулер енгізуді білдірген. Осылай «белгілеушілер» (markup men) мәтіннің әрбір
бөлігіне шрифтердің гарнитурасын, стилін, өлшемін көрсетіп отырған. Ал қазіргі кезде бұл қызметті
редакторлар, корректорлар, графикалық дизайнерлер, сондай-ақ авторлардың өздері атқарады.
Белгілеу тілін компьютерлік мәтіндерді өңдеуде қолдануды алғаш рет 1967 жылғы Конференцияда
Уильям Танниклифф ұсынды. Ол өз жаңалығын «әмбебап кодтау» (ағылшынша «generic coding»)
деп атады. Форматталған мәтінге қатысты барлық қажет жерде өзіндік белгілеу тілдері
қолданылады: типографияда (SGML, TeX, PostScript, PDF), компьютердің қолданушы
интерфейстерінде (Microsoft Word, OpenOffice), әлемдік желіде (HTML, XHTML, XML, WML,
VML, PGML, SVG, XBRL).
HTML тілі жайлы
Гипермәтінді белгілеу тілі (HyperText Markup Language - HTML) – веб браузерде веб-беттерді
және басқа да ақпараттарды шығару үшін қолданылатын ең басты белгілеу тілі болып есептеледі.
Бұрышты жақшалар арқылы ашылып жабылатын тег (мысалы <html>) деп аталушы HTML
элементтерінен құралған HTML тілі веб-бет контентін тудырады. Тегтер сыңарлы және сыңарсыз
болып бөлінеді.
Сыңарлы тегтерге мыналар жатады: <html></html>, <h1></h1>, <p></p> және т.б. Ал
сыңарсыз тегтерге <br>, <hr>, <img> сияқты тегтер жатады. Сыңарлы тегтерде алғашқы тұрған
<h1> тегі бастаушы, ал екінші тұрған </h2> тегі аяқтаушы деп аталады. Сондай-ақоларды ашылушы
және жабылушы деп те атайды. Осы тегтердің көмегімен веб-дизайнерлер мәтін, пікір және
контентте кездесетін басқа да мәтінге ұқсас нәрселер жаза алады.
Веб браузердің мақсаты – осы HTML тілінде жазылған құжаттарды оқып, веб-беттерде оқуға
ыңғайлы, оқырманға көрінетіндей етіп шығарып беру. Браузерлер HTML тегтерін шығармайды,
алайда сол тегтерді беттің контентін интерпретациялауда қолданады.
HTML элементтер кез келген веб-сайттардың негізгі құрушы блоктары болып табылады.
HTML суреттер мен объектілерді қойып, оларды интерактивті формаларға айналдыра алады.
Тақырып, азатжол, тізім, дәйексөз сияқты мәтіннің құрылымдық семантикасын білдіріп,
құрылымдық құжаттар құрады. Веб-беттердің жұмысынан әсер ететін JavaScript сияқты тілдердің
скрипттерін қояды.
Веб-браузерлер контенттің сыртқы көрінісін, мәтіндердің және басқа да материалдардың
орналасуын анықтау үшін каскадтық стильді кестелерді (Cascading Style Sheets - CSS) де қолданады.
HTML және CSS стандарттарын қадалаушы W3C ұйымы (World Wide Web Consortium (W3C)
халықаралық World Wide Web (қысқаша WWW немесе W3) стандарттау ұйымы) HTML белгілеу
тіліне CSS қосып пайдаланса, көрнектілеу болатынын айтады.
Нұсқалар, даму тарихы
HTML тілінің пайда болуы сонау 1986 жылғы Халықаралық Стандарттау ұйымының (ISO)
«Standard Generalized Markup Language» (SGML) деп аталатын ISO-8879 стандартын қабылдауынан
басталады. Осы SGML тілі сол кезде мәтіннің құрылымдық (логикалық) белгілеуі болып, құжаттың
сыртқы көрінісінің кішкене ғана сипаттамасына дейін түсінбеуші еді. Сондықтан SGML тілінде
кегіл (кегель) сипаттамасы мен шрифт өлшемі сол кездегі стандартқа қайшы келіп, берілген
құжаттың кросс-браузерлік және кросс- платформалық талаптарын орындай алмады. Негізі
стандартты белгілеудегі мақсат – осы талаптарға жауап беру болатын. Дегенмен SGML мәтіннің
белгілеу тіліне дайын жүйе болып табылмайтын және белгілі жағдайда қолданатын тілдің
құрылымдық элементтерін білмейтұғын. Бұл тіл кейінірек “тег” деп аталып кеткен мәтін
белгілеуінің негізгі элементтерінің жазылу синтаксисін ғана сипаттады. Құжаттарды практикалық
белгілеу үшін қандай жағдайда тілдің қандай элементін қолдану керек екенін түсінетін және
құжаттармен жұмыс істеуші бағдарламаларды қабылдайтын тіл ойлап табу қажет еді. SGML тілі
өзінің қосымшасы сияқты халық арасында кең қолданысқа енбеді.
22.
22
Алғаш рет 1991жылы интернет арқылы гипермәтінді ақпарат алмасатын механизмге сұраныс
пайда болды. Сол кезде Тим Бернерс-Ли қаңқа ретінде SGML-ді таңдап, оның негізінде HTML
(Hyper Text Markup Language, «гипермәтінді белгілеу тілі») тілін ойлап тапты.
Сурет 3 - Тим Бернерс-Ли
HTML тілінің 1.2 нұсқасы шамамен 40 тегтен тұрды. Ол құжаттың физикалық көрінісін
сипаттамайды. Барлық қасиеті мәтінді логикалық және құрылымдық белгілеуге келіп саяды.
Бірнеше тег қана бет көрінісінің физикалық қасиетін сипаттауға жақын келді. Осындай тегтердің
біріне былай мінездеме берілген: «Осы тегті қолдану арқылы құрылған құжатты қарағанда, мәтін
графикалық браузерлерде жартылай қою көлбеу (курсив) болып көрінеді».
В 1994 жылы Интернетті басқарушы W3 концорциумы (W3С) құрылып, бұл ұйым HTML 2.0
нұсқасының сипаттамасын жасауға кірісті, бірақ соңғы HTML 2.0 стандарты 1995 жылы
қабылданды. Ал бұл кезде HTML 3.0 нұс-қасы қызу талқыға түсіп, оны жасақтауға дайындық жүріп
жатқан. HTML 2.0 нұсқасының таң қалдырған жаңалығы – қолданушыдан серверге ақпарат жеткізу
формасының пайда болуы еді. Дегенмен HTML- технологияда HTML 3.0 нұсқасы қарқынды
серпіліс жасады. Стандарттың бастапқы нұсқасы көптеген қызықты жаңалықтар енгізді: олар кесте
құратын тегтер, математикалық формулаларды белгілеу, суреттерге жазу қою және т.б. Бірақ 1995
жылы гипермәтінді беттерді визуалды дайындауға қажеттілік туды.
W3 Концорциумы HTML негіздеріне қайшы келмейтін HTML- құжаттарды визуалды
дайындауға мүмкіндік беретін бөлек бір жүйе ойлап тапты. Осылай каскадтық стильді кестелері
(Cascading Style Sheets, CSS) ойлап табылып, ол мүлдем өзгеше құрылымға, синтаксиске ие болды.
Тез арада, сол 1995 жылы алғашқы коммерциялық Netscape Navigator браузері пайда болып,
ол Netscape Communications корпорациясының адамзат тарихында болмаған қарқынды дамуына
алып келді.
1996 жылы Microsoft корпорациясы халық арасында танылмай қалған Microsoft Internet
Explorer 2.0 браузерін шығарып, браузерлер нарығында пассив бақылаушы болды. Сосын сол
браузердің 3-нұсқасы шығып, браузерлер нарығын Microsoft Navigator Communications-пен теңдей
бөлісті. Microsoft W3 Концорциумын өз бақылауына алған соң, аз уақыт ішінде толық Microsoft
Internet Explorer браузеріне бағдарланған HTML 3.2 нұсқалы стандартын жасады.
HTML 3.2 нұсқасы ВЕБ-құрылыс дамушы тілінің осы күнге дейінгі бірден-бір стандарты
болып келді. HTML-дің осы нұсқасы барлық браузерлерге сай келетін белгілеу элементтерімен
жүйеленді.
Соңғы жылдары, дәлірек айтқанда, 2004 жылы HTML-дің соңғы нұсқасы HTML 4.01.
қабылданып, бүгінгі дейін қолданылуда. Ол жоғары кросс-браузерлі және кросс-платформалы
талаптарға жауап береді.
Қазіргі таңда HTML-5 жасақталып жатыр, оның ресми шығуы 2014 жылға жоспарланған.
23.
23
Сурет 4 -HTML5
HTML құрылымы, негізгі тегтер
HTML құжатының құрылысы бірінің ішіне бірі салынған контейнерлерді қолдануға мүмкіндік
береді. Шынында да, құжаттың өзі бұл «HTML» атымен аталатын бір үлкен контейнер.
<HTML> Құжат мазмұны </HTML>
HTML элементінің өзі немесе гипермәтіндік құжат – құжаттың басынан (HEAD) және денесінен
(BODY) тұрады:
<HTML>
<HEAD>
Құжаттың аты
</HEAD>
<BODY>
Құжат денесінің мазмұны (мысалы: мәтіндер, суреттер, кестелер)
</BODY>
</HTML>
HTML құжатын жазуды бастай отырып, оның осы түрде болатынын айқындаймыз. Мұндай
айқындау құжаттың ең басына <!DOCTYPE HTML PUBLIC ``-//W3C//DTD HTML 3.2//EN''> тегін
қою арқылы жүргізіледі. DOCTYPE тегі SGML тілінің тегі болып табылады және құжат HTML 3.2
ерекшелігіне сәйкес сипатталатынын хабарлайды.
WYSIWYG
WYSIWYG (ағылшын тілінде What You See Is What You Get, «нені көрсең, соны аласың») –
қолданбалы бағдарламалар мен веб-интерфейстер сипаты болып саналады, онда контент өңдеу
кезінде құжат веб-бет немесе тұсаукесер ретінде соңғы шыққан контент көрінісіне өте ұқсас болып
келеді.
WYSIWYG технологиясы пайда болғанша күрделі форматтағы құжаттарды құру үшін
белгілеу тілдерінің қызметін атқаратын бағдарламалар қолданылып келген. Бұл бағдарламаларда
құжаттарды форматтау үшін соңғы шыққан суретте көрінбейтін арнайы тегтер қолдану керек еді.
Тегтер мәтіндердің стилін (қою, курсив), шрифтің өзгеруін, мәтін орналасуын және сол сияқты
істерді атқара алатын еді.
WYSIWYG қолданған алғашқы бағдарлама Bravo мәтіндік редактор болып есептеледі.
Bravo Xerox PARC компаниясында Alto компьютерлері үшін жасақталған. 1974 жылы
бағдарламаны жасаған Батлер Лемпсон (Butler Lampson), Чарльз Симони (Charles Simonyi) және т.б.
Bravo нарыққа шыққан, бірақ Xerox Star компьютерлерінің бағдарламалары осы редактордың
тікелей жалғасы болып есептеледі.
Xerox PARC-тен тәуелсіз түрде Bravo-мен қатар 1978 жылдың соңында Hewlett Packard
компаниясы WYSIWYG қолданған алғашқы коммерциялық бағдарламаны жарыққа шығарды.
Бағдарламаның алғашқы шығуы Bruno деп аталып, HP 1000 миникомпьютерлерінде қолданылды.
Мәтіндік WYSIWYG-редакторлар тізімі
Microsoft Word (Microsoft Office пакетінен)
OpenOffice.org Writer (OpenOffice.org пакетінен)
AbiWord (GNOME Office пакетінен)
KWord (KOffice пакетінен)
24.
24
Pages (iWorkпакетінен) және т.б.
HTML кодының WYSIWYG-редакторлар тізімі
Adobe GoLive
Adobe (Macromedia) Dreamweaver
Namo Webeditor
Microsoft FrontPage
Microsoft SharePoint Designer
Microsoft Expression Web
Mozilla Composer
Quanta Plus
Kompozer (Nvu негізделген)
WYSIWYG Web Builder 5
Web Page Maker және т.б.
Визуалды және визуалсыз редакторлар. Сайт жасайтын бағдарламалар визуалды және
визуалсыз редакторлар болып, екі категорияға бөлінеді.
Визуалды редакторлар (немесе WYSIWYG-редакторлар («What You See Is What You Get» –
«Нені көрсең, соны аласың»)
Сайт құру бағдарламасы ретінде визуалды редакторларды қолдану өте ыңғайлы, себебі веб-
бетте қалай тұрса, сол қалпында жұмыс жасайсыз. Қолданушы мәтінді өңдеп форматтайды,
суреттерді, кестелерді HTML код арқылы Word-та оңай жаза салады. Бағдарламада қалай жазсаң,
браузерде де сол көрініс пайда болады. Танымал визуалды редакторларға Dreamweaver, MS
FrontPage және Netscape жатады.
Артықшылықтары:
қолдану оңай;
Html тілінде сауаттылық қажет емес.
Кемшіліктері:
код оңтайландырылмаған себепті файлдың өлшемі артып, бетті жүктеу жылдамдығы өседі;
беттің кодын өңдеу өте күрделі;
құжаттың түрлі браузерде қате орналасуы мүмкін.
Визуалсыз редакторлар
HTML қолмен код жазуға арналған, толық автоматтауға арналмаған, сондықтан қазіргі күнде
визуалды редакторлардың ешқайсысы HTML кодты жүз пайыз өңдей алмайды, одан тысқары
абсолютті дұрыс кодты шығармайды. Сондықтан әр бетті кейін қолмен редакторлап шығуға тура
келеді, ал визуалсыз редакторлар белгілеу тілін қолмен өңдеп, бағдарламашы ешқандай
конструкциясыз оңай өңдеуге болатын оңтайландырылған кодты жаза алады. Визуалсыз веб-
редакторларды HTML-редакторлар деп атайды. Оларға мысал: AceHTML, 1st Page, HotDog,
Arachnophilia және т.б.
Артықшылығы:
оңтайландырылған код;
гипермәтінді белгілеу тілдерінің барлық мүмкіндіктері қолданылады;
синтаксис, код пен сілтеменің дұрыстығын тексеру;
көптеген редакторлар тегін таратылады.
Кемшіліктері:
гипермәтінді белгілеу тілінде сауаттылық қажет.
Блокнот (ағылшынша Notepad) – кез келген Microsoft Windows операциялық жүйесінде
орналасқан қарапайым мәтіндік редактор.
Блокнот қарапайым болғандықтан, HTML-кодты түсінетін конструкциясы, оны өңдейтін
мүмкіндігі жоқ. Бірақ HTML тілімен таныса бастағанда осы редакторды қолданған жеңіл болады.
Блокнотты қолдануды үйренген соң, оның орнын басатын кең қызметті тегін бағдарламалар
бар: Bred, AkelPad, BDV Notepad, EditPad Lite, TED Notepad, Notepad++ және Notepad2.
25.
25
HTML тілінде веб-бетенгізу үшін блокноттан (Notepad) қандай да бір атаумен құжат ашып,
онда бағдарлама жасауға болады. Мысалы: Salem.txt деп сақтайық және оның ішіне код жазуды
бастаймыз.
Notepad-те жазылған Salem.txt құжатының ішіне төмендегі HTML кодын жазамыз.
<html>
<head>
<title>Тақырып</title>
</head>
<body>
Сәлем, бұл менің бірінші веб-бетім!
</body>
</html>
HTML тілінде командаларды тэг (tag) деп атайды. Жоғарыдағы HTML тіліндегі бағдарламада
көк түсте – тэгтер, ал қара түсте біз енгізген мәтіндер. Яғни, < және > белгілері арасындағы сөздер
тегтер болады. Осы екі < > жақшадан тысқары барлық мәтін веб-бетте көрінеді.
Жоғарыдағы кодтың алдына ең бірінші қатарда мына мәлімдеме жазылады <!DOCTYPE
HTML PUBLIC «-//W3C//DTD HTML 3.2 Final//EN»>. Бұл мәлімдеме веб браузерге HTML құжатты
дұрыс аударуға көмектеседі.
Тегтер және олардың құрылымы
<HTML> тегі міндетті тег, онсыз веб-бет болмайды. Ол <HTML> тегімен ашылып, </HTML>
тегімен жабылады. Осындай ашылып- жабылушы <HEAD></HEAD>, <BODY></BODY> сияқты
тегтерді жұпты тегтер деп атайды. Ал <BR>, <HR> сияқты тек ашылатын, бірақ жабылмайтын
тегтер жұпсыз тегтер деп аталады.
HTML тақырыптар:
<h1></h1> – Бірінші деңгейдегі тақырып
<h2></h2> – Екінші деңгейдегі тақырып
<h3></h3> – Үшінші деңгейдегі тақырып
<h4></h4> – Төртінші деңгейдегі тақырып
<h5></h5> – Бесінші деңгейдегі тақырып
<h6></h6> – Алтыншы деңгейдегі тақырып
<p></p> – Бұл параграф
Бұл жерде деңгей сөзі мәтіннің өлшемін, үлкен-кішілігін білдіріп тұр. Яғни Бірінші деңгейдегі
тақырып <h1></h1> тегі арасына жазылатын мәтін ең үлкен өлшемдегі мәтін болып есептеледі. Ал
<p></p> тегі болса, параграфты белгілейді.
<html>
<head>
<title>HTML тақырыптар</title>
</head>
<body>
<h1>Бірінші деңгейдегі тақырып</h1>
<h2>Екінші деңгейдегі тақырып</h2>
<h3>Үшінші деңгейдегі тақырып</h3>
<h4>Төртінші деңгейдегі тақырып</h4>
<h5>Бесінші деңгейдегі тақырып</h5>
<h6>Алтыншы деңгейдегі тақырып</h6>
</body>
</html>
HTML азатжол:
<html>
26.
26
<head>
<title>HTML азатжол</title>
</head>
<body>
<p>Бірінші азатжол</p>
<p>Екіншіазатжол</p>
</body>
</html>
Бірінші <p></p> тегі арасында орналасқан мәтін бірінші азатжол болып есептеледі. Ал екінші
<p></p> тегі арасында орналасқан мәтін екінші азатжол болып есептеледі. Веб-бетте көрінетін әр
азат жолдың арасында бір бос қатар болады, ол азатжолдарды бірден ажыратуға көмек береді.
Түсініктеме (комментарий):
<html>
<head>
<title>Түсінік</title>
</head> <body>
<!--Бұл түсініктеме веб-бетте көрінбейді -->
<p>Бұл азатжол</p>
</body>
</html>
Бұл түсініктеме (комментарий) басқа бағдарламалық тілдер сияқты HTML тілі үшін де өте
қажет. Себебі кодқа түсініктеме беру – бағдарламашы HTML тіліндегі кодты жақсы түсінуі үшін
аса қажет. Бірақ түсініктеме веб-бетте көрінбейді. Себебі, бұл кодқа жазылған түсініктеменің
оқырманға қажеті де жоқ.
<BR> тегі:
<html>
<head>
<title>Сызушы <HR> тегі</title>
</head> <body>
<p>Бұл<br>бөлінген<br>азатжол</p>
</body> </html>
<br> тегі өзінен соң келген сөзді немесе сөйлемді келесі қатарға түсіреді. <br> тегі бір
қатардағы сөздерді немесе сөйлемдерді бірнеше қатарға бөліп тастайды.
<HR> тегі
<html>
<head>
<title>Сызушы <HR> тегі</title>
</head>
<body>
<p>Бұл сызылған азатжол</p> <hr>
<p>Бұл да сызылған азатжол</p>
<hr>
</body>
</html>
<hr> тегі сөзден немесе сөйлемнен соң жазылып, сол сөзден немесе сөйлемнен соң сызық
түсіреді. Яғни, кейінгі қатарда бір сызық сызады.
Шрифтер
<html>
<head>
<title>Шрифт түрлері</title>
27.
27
</head>
<body>
<p><b>Қою шрифт</b></p>
<p><i>Көлбеу шрифт</i></p>
<p><u>Астысызылған шрифт</u></p>
<p><strike>Сызылған шрифт</strike></p>
<p><big>Үлкен шрифт</big></p>
<p><small>Кіші шрифт</small></p>
<p>Шрифт<sub>төменгі индекс</sub></p>
<p>Шрифт<sup>жоғарғы индекс</sup></p>
</body>
</html>
Шрифт аттары
<html>
<head>
<title>Шрифт аттары</title>
</head>
<body>
<p><font face=«Times New Roman»>Times New Roman</font></p>
<p><font face=«Aharoni»>Aharoni</font></p>
<p><font face=«Arial»>Arial</font></p> <p><font face=«Algerian»> ALGERIAN</font></p>
</body>
</html>
Шрифт таңдау үшін төмендегі терезедегі шрифт атауларының бірін таңдап, сол атауды font
face=“осы жерде” жазу арқылы өзгерте аласыз. Ең бастысы шрифт атауын терезедегі сияқты дұрыс
жазу керек!
Шрифт өлшемдері
<html>
<head>
<title>HTML шрифт өлшемі</title>
</head>
<body>
<p style=«font-size:9px»>9 пиксельді әтін
</p> <p style=«font-size:12px»>12 пиксельді мәтін
</p> <p style=«font-size:15px»>15 пиксельді мәтін</p></body>
</html>
<p style=«font-size:9px»></p> тегі арқылы веб-бетте жазылатын шрифттің өлшемін пиксель
өлшем бірлігінде беруге болады. Біздің style=“font-size:9px” деп берілген мысалда 9 санының
орнына басқа санды қойып, мәтін шрифтінің өлшемін қалаған пиксельге өзгертуге болады.
<html>
<head>
<title>HTML шрифт өлшемі</title>
</head>
<body>
<br><font size=«3»>3 өлшемді мәтін</font><br>
<font size=«4»>4 өлшемді мәтін</font>
<br><font size=«5»>5 өлшемді мәтін</font>
<body>
</html>
<font size=«3»></font> тегі арқылы веб-бетте жазылатын шрифтің өлшемін беруге болады.
Мысалы, size=«3» дегенде « « тырнақшаның ішіне қалаған өлшемді қою арқылы шрифт өлшемін
өзгертуге болады.
28.
28
Шрифт атауы жәнетүсі
<html>
<head>
<title>Шрифт атауы, түсі</title>
<p style=«font-family:verdana; color:green;»>
Шрифт атауы Verdana, түсі жасыл
</p>
</html>
<body style=«font-family:verdana; color:green;»> стилі арқылы
Verdana сөзінің орнына шрифт атауын, ал green сөзінің орнына шрифт түсін немесе кодын
қойып, шрифт аты мен түсін өзгертуге болады.
Мәтін түстері:
<html>
<head>
<title>Мәтін түсі</title>
</head>
<body>
<p style=«color:#ff0000»>Бұл қызыл шрифт</p>
<p style=«color:red»>Бұл да қызыл шрифт</p>
</body>
</html>
Бұл мысалда <p style=“color:#ff0000”></p> тегінде color: сөзінен соң, мәтін түсінің он алтылық
санақ жүйесіндегі кодын #ff0000 қою арқылы веб- бетте қалаған түсімізді көре аламыз.
Алайда color: сөзінен соң, мәтін түсінің атын red жазу арқылы да веб-бетте таңдаған түсімізді
көре аламыз.
Мәтіндер. Байланыс тізімі:
<html>
<head>
<title>Байланыс тізімі</title>
</head>
<body>
<address>
Жаңа-ой орталығы<br>
Мекен-жайы: Төле би 296<br>
Телефон: +7707 889 30 53
</address>
</body>
</html>
Байланыс тізімін веб-бетке <address></address> тегі арқылы шығаруға болады. Байланыс
тізімінде мекеменің (ЖОО, компания, фирма) аты, мекен-жайы, телефоны және басқа да байланыс
түрлері жазылады.
Фон түстері:
<html>
<head>
<title>Фон түсі</title>
</head>
<body> <p style=«background-color:#ffff00»>
Бұл сары фон</p> <p style=«background-color:yellow»>
Бұл да сары фон</p>
</body>
</html>
29.
29
Бұл мысалда дажоғарыдағы мәтін түстеріндегі мысал сияқты фонға түс қоюдың екі тәсілі бар:
1) background-color: сөзінен соң түстің, яғни біздің мысалда сары түстің кодын қою 2) сары сөзінің
ағылшынша аудармасы yellow (стандарт бойынша түстердің ағылшынша аты қолданылады)
сөзін жазу.
Көлемді дәйексөз (цитата)
<html>
<head>
<title>Көлемді дәйексөз</title>
</head>
<body> «Абайдың қара сөздерінен» үзінді
<blockquote>Бұл жасқа келгенше жақсы өткіздік пе, жаман өткіздік пе, әйтеуір бірталай
өмірімізді өткіздік: алыстық, жұлыстық, айтыстық, тартыстық, әурешілікті көре-көре келдік.
</blockquote>
Автор: Абай Құнанбайұлы
</body>
</html>
<blockquote></blockquote> тегінен соң және оның алдында жазылған сөздер және сөйлемдер
веб-беттің сол жағына жазылады, ал көлемді дәйексөздің барлығы болса, азатжолдан бастап
жазылып веб-бетте көрінеді.
Қысқа дәйексөз (цитат)
<html>
<head>
<title>Қысқа дәйексөз</title>
</head>
<body>
Сұлтанмахмұт Торайғыров:
<q>Сүйемін туған тілді – анам тілін</q>
</body>
</html>
<q></q> тегі қысқа дәйексөзді веб-бетке шығаратын болғандықтан, сол тег арасында жазылған
сөйлем тырнақша ішінде жазылады. Сонымен қатар сөйлемнің бір қатарға сыймай қалған бөлігі
келесі қатардан азатжолмен басталмай, алдыңғы қатар сияқты веб-беттің сол жағына шығады.
Сызушы тегтер:
<html>
<head>
<title>Сызушы тегтер</title>
</head>
<body>
<p><del>Үсті сызылған</del></p> <p><ins>Асты сызылған</ins></p>
</body>
</html>
<del></del> тегі сөздердің немесе сөйлемдердің үстін сызу үшін қолданылады. <ins></ins>
тегі сөздердің немесе сөйлемдердің астын сызу үшін қолданылады.
Жылжытылған мәтін:
<html>
<head>
<title>Жылжытылған мәтін</title>
<p style=«text-align:center;»> Веб-бет ортасындағы мәтін
</p>
</html>
30.
30
<p style=«text-align:center;»> стилімәтінді ортаға қарай жылжытуға көмек береді. Себебі text-
align: сөзінен соң, center сөзі жазылған.
<html>
<head>
<title>Жылжытылған мәтін</title>
<p style=«text-align:left;»> Сол жақтағы мәтін</p>
<p style=«text-align:right;»>
Оң жақтағы мәтін</p>
</html>
<p style=«text-align:center;»> стилінде center сөзінен соң, right сөзін қойса, мәтін оң жаққа
қарай, ал left сөзін қойса, мәтін сол жаққа қарай жылжиды.
Веб-бетке сурет қою
Веб-бетке сурет қою үшін <img> қолданылады, оның атрибуты src графикалық файлға, яғни
GIF, PNG немесе JPEG форматтағы суретке апаратын жол жазылады. Ал width атрибуты суреттің
енін білдірсе, ал height атрибуты суреттің ұзындығын, биіктігін білдіреді.
<html>
<head>
<meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»>
<title>Сурет қою</title>
</head>
<body>
<img src=«tu.png» width=«140» height=«90»>
</body>
</html>
alt атрибутынан соң қолданылатын сөз еске салушы сөз болып, ол курсорды суретке алып
барғанда шығады және кей жағдайға байланысты сурет веб-бетке шықпай қалса, еске салдырушы
жазу шығып, суреттің не туралы екенін еске салып тұрады.
<html>
<head>
<meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»>
<title>Сурет қою</title>
</head>
<body>
<img src=«tu.png» alt=«Қазақстан туы» width=«140» height=«90»>
</body>
</html>
Сондай-ақ, суреттің шетіне шекара қоюға болады. Ол img тегінің border атрибуты арқылы
жасалады.
<html>
<head>
<meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»>
<title>Сурет қою</title>
</head>
<body>
<img src=«tu.png» alt=«Қазақстан туы» width=«140» height=«90» border=«5px»> </body>
</html>
Егер border атрибутының мәні 10 пиксельге тең болатын болса, ол алдыңғы шекараға
қарағанда қалыңырақ болады.
Сурет пен мәтіннің орналасуы
align атрибутынан соң right мәні берілсе, біздің сурет мәтіннің оң жағына орналасады.
<html>
<head>
31.
31
<meta http-equiv=«Content-Type» content=«text/html;charset=utf-8»>
<title>Сурет қою</title>
</head>
<body>
<img src=«tu.png» alt=«Қазақстан туы» width=«140» height=«90» align=«right»> <p>Қазақстан
Республикасының Мемлекеттiк туы – Қазақстан Республикасының мемлекеттiк рәмiздердiң
бiрi.</p>
</body>
</html>
align атрибутынан соң left мәні берілсе, біздің сурет мәтіннің сол жағына орналасады.
<html>
<head>
<meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»>
<title>Сурет қою</title>
</head>
<body>
<img src=«tu.png» alt=«Қазақстан туы» width=«140» height=«90» align=«right»>
<p>Қазақстан Республикасының Мемлекеттiк туы – Қазақстан Республикасының мемлекеттiк
рәмiздердiң бiрi.</p>
</body>
</html>
<IMG> тегінде src атрибутынан басқа lowsrc атрибуты бар. Оның мәні - src шығаратын
суреттен бұрын балама сурет шығарады. Екі түрлі суреттің бір жерде бірдей өлшеммен қолдану
себебі – lowsrc атрибуты кіші салмақтағы суретті жылдамырақ браузерге шығарады және аз пиксель
орын алады. Оның жазылуы төмендегідей: <IMG SRC=main.gif LOWSRC=low.gif>
Фонға сурет қою Веб-бетте фонға сурет қою үшін төмендегі кодты жазамыз. Онда body тегінің
background атрибутына сол суретке баратын жол жазылады. Background сөзінің аудармасы фон
дегенді білдіреді.
<html>
<head>
<meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»>
<title>Сурет қою</title>
</head> <body background=«fon.jpg»>
</body>
</html>
Сурет карта (англ. image map, кейде cенсорлы карта немесе графикалық карта) – HTML
белгілеу тілінің графикалық объектісі, ол суретпен байланысты және суретті басу арқылы белгілі
бір URL-ға сілтеме жасалатын арнайы аймақты білдіреді. Сурет картасы бірнеше сілтемені бір
суретте сақтауға мүмкіндік береді.
Веб-бетке сурет картаны қосу үшін <map> тегін қолданып, “name” атрибутына бірыңғай
идентификатор көрсетіледі. Оның ішіне жұпсыз <area> тегтері қолданылып, әрқайсысы қандай да
бір басылатын аймақты білдіреді. Кейін <img> тегін картамен байланыстырып, картаның атын
жазатын usemap артибуты қосылады. Атрибуттың мәні # белгіден басталуы керек. <img> тегінде
суреттің өлшемі анық көрсетіледі.
<MAP> контейнері
name – сурет картасының идентификаторы. Идентификатор сондай құжаттар арасында
бірыңғай болады.
<AREA> элементі
32.
32
shape – басылатынаймақтың формасы. Төмендегі мәндерді қабылдайды: circle (шеңбер), rect
(тік төртбұрыш), poly (бес бұрыш).
alt – аймақтың балама аймағы. Сілтемеге еске салушы мәтін ретінде қолданылады.
coords – басылатын аймақтың координаттары. “0,0” мәніне сәйкес келетін, сол жақ жоғарғы
бұрыштан басталатын координаттар пиксельде өлшенеді. Алғашқы сан x осі бойынша, яғни ені
бойынша координат болса, екіншісін y осі, ұзындық координаты болып есептеледі. Координаттізімі
аймақ формасына байланысты:
Шеңбер үшін шеңбер орайы және радиусы беріледі:
<AREA coords=«x,y,r»>
Тік төртбұрыш үшін – жоғары сол жақтың және төмен оң жақтың координаттары беріледі:
<AREA coords=«x1,y1,x2,y2»>
Бесбұрыш үшін биіктік координаттары беріледі:
<AREA coords=«x1, y1, x2, y2,…, xN, yN»>
Бұл жағдайда аймақтың бірінші және соңғы нүктесі автоматты түрде тұйықталады.
href – аймақ үшін сілтеме адресін білдіреді. Жазу ережесі <а> тегіне жазған сияқты жүзеге
асырылады.
Төменде сурет карта жасайтын код жазылып, ол суретпен байланыстырылады:
<html>
<body>
<img width=«500» height=«200» usemap=«#somemap»
rc=«upload.wikimedia.org/wikipedia/commons/e/e0/Figures_for_imagemap.png» >
<map name=«somemap»>
<area shape=«rect» coords=«6, 7, 140, 196» href=«kk.wikipedia.org/Тіктөртбұрыш»>
<area shape=«circle» coords=«239, 98, 92» href=«kk.wikipedia.org/Шеңбер»> <area
shape=«polygon» coords=«386,16, 344,56, 350,189, 385,132, 489,190, 496,74»
href=«kk.wikipedia.org/Көпбұрыш»>
</map>
</body>
</html>
Артықшылықтары мен кемшіліктері
Артықшылықтары:
1. Карталар сілтеменің кез келген формадағы аймағын жасауға мүмкіндік береді. Сурет
төртбұрыш болғандықтан, географиялық аймақ сияқты күрделі формадағы графикалық
сілтемелерді сурет картасыз қолдану мүмкін емес.
2. Бір файлмен жұмыс жасау ыңғайлырақ.
Кемшіліктері:
1. Әрбір бөлек аймақ үшін балама және еске салушы мәтін қоюға болмайды. Балама мәтін –
браузерде сурет жүктелуі өшірілген жағдайда мәтіндік ақпарат алуға қызмет етеді. Егер
сурет көрсетілуін өшірсек, нәтижесінде тек бос төртбұрышты көреміз.
2. Күрделі формадағы сілтеме аймағы HTML код салмағын ұлғайтады.
3. Сурет карталар арқылы әртүрлі эффектілер жасай алмайды. Мысалы, шағын анимация,
жылдам жүктелетін суреттердің жеке оңтайландырылуы және т.б.
Реттелмеген тізім
<li></li> тегі арасына тізімге енетін сөздерді енгізуге болады. Ал <li></li> тегі арасындағы үш
сөзді жалпы <ul></ul> тегі арасына салса, тізім реттелмеген түрде алдына дөңгелектер қойылып,
веб-бетте көрінеді.
<html>
<body>
<h4>Дөңгелек тізім:</h4>
33.
33
<ul type=> <li>Математика</li>
<li>Тарих</li>
<li>Қазақтілі</li>
</ul>
</body>
</html>
Реттелген тізім
<li></li> тегі арасына тізімге енетін сөздерді енгізуге болады. Ал <li></li> тегі арасындағы үш
сөзді жалпы <ol></ol> тегіне салса, тізім реттелген түрде алдына реттік сандар қойылып, веб-бетке
шығады.
<html>
<body>
<h4>Реттелген тізім:</h4>
<ol> <li>Математика</li>
<li>Тарих</li>
<li>Қазақ тілі</li>
</ol>
</body>
</html>
Бас әріппен реттелген
<li></li> тегі арасына тізімге енетін сөздерді енгізуге болады.
<ol></ol> тегінде type=«A» деп қолданылады, тырнақшадағы A бас әрпі тізімнің бас әріппен
реттелетінін білдіреді.
<html>
<body>
<h4>Бас әріппен реттелген тізім:</h4>
<ol type=«A»>
<li>Математика</li>
<li>Тарих</li>
<li>Қазақ тілі</li>
</ol>
</body>
</html>
Кіші әріппен реттелген
<li></li> тегі арасына тізімге енетін сөздерді енгізуге болады. <ol></ol> тегінде type=«a» деп
қолданылады, тырнақшадағы a кіші әрпі тізімнің кіші әріппен реттелетінін білдіреді.
<html>
<body>
<h4>Кіші әріппен реттелген тізім:</h4>
<ol type=«a»>
<li>Математика</li>
<li>Тарих</li>
<li>Қазақ тілі</li>
</ol>
</body>
</html>
Рим сандарымен реттелген
<li></li> тегі арасына тізімге енетін сөздерді енгізуге болады. <ol></ol> тегінде type=«I» деп
қолданылады, тырнақшадағы I Роман саны тізімнің Роман санымен реттелетінін білдіреді.
34.
34
<html>
<body>
<h4>Рим санымен реттелгентізім:</h4>
<ol type=«I»>
<li>Математика</li>
<li>Тарих</li>
<li>Қазақ тілі</li>
</ol>
</body>
</html>
Кіші Рим сандарымен реттелген
<li></li> тегі арасына тізімге енетін сөздерді енгізуге болады.
<ol></ol> тегінде type=«i» деп қолданылады, тырнақшадағы I кіші Роман саны тізімнің кіші
Роман санымен реттелетінін білдіреді.
<html>
<body>
<h4>
Кіші Рим санымен реттелген тізім:</h4>
<ol type=«i»>
<li>Математика</li>
<li>Тарих</li>
<li>Қазақ тілі</li>
</ol>
</body>
</html>
Дөңгелек белгімен реттеу
<li></li> тегі арасына тізімге енетін сөздерді енгізуге болады.
<ul></ul> тегінде type=«Disk» деп қолданылады, тізім алдында тұрған қара дөңгелек диск
сияқты белгі екенін білдіреді.
<html>
<body>
<h4>Диск тәрізді белгі:</h4>
<ul type=«Disk»>
<li>Математика</li>
<li>Тарих</li>
<li>Қазақ тілі</li>
</ul>
</body>
</html>
Шеңбер белгімен реттеу
<li></li> тегі арасына тізімге енетін сөздерді енгізуге болады. <ul></ul> тегінде type=«Circle»
деп қолданылады, тізім алдында тұрған іші ақ дөңгелек сияқты белгі екендігін білдіреді.
<html>
<body>
<h4>Дөңгелек тәрізді белгі:</h4>
<ul type=«Circle»>
<li>Математика</li>
<li>Тарих</li>
<li>Қазақ тілі</li>
</ul>
</body>
35.
35
</html>
Төртбұрыш тәрізді белгі
<li></li>тегі арасына тізімге енетін сөздерді енгізуге болады. <ul></ul> тегінде type=«Square»
деп қолданылады, бұл тізім алдында тұрған төртбұрыш сияқты белгі екенін білдіреді.
<html>
<body>
<h4>Төртбұрыш тәрізді белгі:</h4>
<ul type=«Square»>
<li>Математика</li>
<li>Тарих</li>
<li>Қазақ тілі</li>
</ul>
</body>
</html>
Анықтама тізімі
<dt></dt> тегі арқылы бір сөз беріледі, мыс., Жылқы. <dd></dd> тегі арқылы сол сөздің, яғни
жылқының анықтамасы беріледі және ол екі тегте <dl></dl> орналасады.
<html>
<body>
<h4>Анықтама тізімі:</h4>
<dl>
<dt>Жылқы</dt>
<dd>Үй жануарының бірі</dd>
<dt>Қымыз</dt>
<dd>Жылқының сүті</dd>
</dl>
</body>
</html>
Сілтеме (hyperlink) – локалды дискте немесе компьютер желісінде орналасқан құжат ішіндегі
басқа бір элементке (мәтін, тақырып, сурет және т.б.), басқа объектіге сілтеме беретін гипермәтінді
құжаттың бір бөлігі. Енді сілтемелердің жасалу жолдарын қарастырайық.
Сілтеме енгізу үшін a (anchor) тегі қажет болады. Сілтеменің қайдаапаратынын көрсету үшін
тегтің href (hypertext reference) атрибутынпайдаланамыз. Мысалы, сілтеме Қазақша Уикипедияға
апаратын болса, href атрибутының мәні “http://kk.wikipedia.org”тең болады. Осы
тырнақшаныңішіндегі жазу Қазақша Уикипедияның толық адресі немесе сайттың URL (Uniform
Resource Locator) деп аталады.Сілтеме беру үшін міндетті түрдесайт адресінің алдына мынаны -
http:// қосу керек. Одан кейін </a> тегжабылады.
<ahref=«http://kk.wikipedia.org»>ҚазақшаУикипедияғасілтеме</a>
Сайт ішіндегі ішкі сілтемелер
Егер бір беттен екінші бетке сілтеме жасау керек болса, онда беттіңтолық адресі (URL) керек
емес. Мысалы, сізде бір папкада орналасқан екібет (бірінің аты 1_bet.html екіншісінің аты
2_bet.html) болсын. Бір беттенекіншісіне сілтеме арқылы өту үшін тек сол беттің атын жаза саласыз.
Мысалы:
<a href=«2_bet.html»>Екінші бетке өту үшін басыңыз</a>
Егер осы 2_bet.html беті website деген папканың ішінде орналасқанболса, ал біздің сілтеме
басатын бірінші бетіміз (1_bet.html) папканыңсыртында орналасқан болса, онда бетке сілтеме
беретін жол былайжазылады.
<a href=«website/2_bet.html»>Екінші бетке өту үшін басыңыз</a>
36.
36
Беттің ішіндегі сілтемелер
Беттіңішінде беттің әрбір бөлігіне көшіп отыратын сілтемелер жасауғаболады. Ол үшін id
атрибутын және # белгісін қолданамыз.
Сілтеме беретін элементті id атрибуты арқылы белгілеп аламыз. Мысалы:
<h1 id=«heading1»>Бастақырып</h1>
Енді осы элементке, яғни бас тақырыпқа # белгісі арқылы сілтеме жасаймыз. # белгісі
браузерге сілтеменің осы беттің ішінде болатынын хабарлайды. # белгісінен соң біз сілтеме арқылы
көшетін тегтің id-ын жазамыз. Мысалы:
<a href=«#heading1»>Бастақырыпқасілтеме</a>
Поштаға сілтеме жасау
Е-mail адресіне сілтеме жазуда алдыңғы сілтемелер сияқты жүзеге асырылады. Мысалы:
<a href=«mailto:info@zhanaoi.kz»>info@zhanaoi.kz поштасына хат жіберу </a>
Бұл жерде сайтқа сілтемеден айырмашылығы http:// орнына mailto: жазылады.
Суреттегі сілтеме
<html>
<head>
<title>Суреттегісілтеме</title>
</head>
<body>
<a href=«http://kk.wikipedia.org»>
<img src=«wiki.jpg» alt=«ҚазақшаУикипедияғасілтеме» width=«200»
height=«70»/>
</a>
</body>
</html>
<ahref=«bas_bet.html»></a>тегі сайттың ішіндегі бас бетке сілтеме жасайды.
Яғни суреттің үстіне курсор басылғанда, сілтеме бойынша бас бет ашылады.
§ 1.5 HTML-ДЕ CSS ТЕХНОЛОГИЯСЫН ҚОЛДАНУ
CSS (Cascading Style Sheets – Каскадтық стильді кестелер) – HTML, XHTML және т.б.
белгілеу тілдерінде жазылған веб-беттердің сыртқыкөрінісін суреттейтін, әрлейтін тіл болып
есептеледі. Бұл тілде веб-беттердің сыртқы көрінісіндегі шрифтер, түстер, жайғасуы, блоктар
сияқтыэлементтерді жасауға болады. CSS-тің пайда болуының негізгі себебі,белгілеу тілдерінде
(HTML, XHTML, XML және т.б.) веб-беттердіңлогикалық құрылымдары мен сыртқы көріністерін
суреттеуді бір-біріменбөліп қарастыру болды. Себебі әрқайсысы бөлек болса, сайт жасағанда
да,сайттың кодын оқығанда да түсінуге ыңғайлы болады.
Тарихы. 1990 жылдары Веб стандарттау істері қарқынды дамыды және вебдизайнерлер үшін
сайт жасауда ортақ бір стандарт керек болды. Сөйтіп,HTML 4.01, XHTML және стандарт CSS пайда
болды. «Каскадтық стильді кестелер» терминін 1994 жылы Хокон Виум Ли енгізді. Хокон Берт
БоспенCSS-ті дамытып, оған Ғаламтор Консорциумы «Веб стандарты» деген атау берді.
Артықшылықтары:
Анық бақылау кодтың көлемін едәуір кемітеді және оны оқуға ыңғайлайды;
CSS тілі көмегімен HTML тілінде беруге болмайтын параметрлерді ашамыз;
Мысалға алатын болсақ, сілтемелердің астындағы сызықты алып тастауғаболады;
CSS арқылы веб-беттің сыртқы көрінісін оңай өзгертеміз. Көп құжаттардыңсыртқы
көрінісін бір кесте арқылы көрсетуге болады. Мысалы, сіз 30 беткодтағы шрифттарды
37.
37
жасыл түс еттіңізделік. Бірақ уақыт өткен соң, көк неқызыл түске өзгерткіңіз келіп, барлық
20 бетке кіріп, керекті атрибуттағы шрифті өзгертіп шығасыз. Ал CSS тілі арқылы сол 20
беттің барлығын бірғана стильдер кестесінде өзгертуге болады;
Құрамалы және жинақталған дизайн техникасы. CSSтілінде сайт версткасы деген ұғым бар.
HTML-ге CSS жалғау. Сыртқы стильдік кестелер
Қарапайым HTML парақша жасап, мысал үшін оған мынадай кодсалыңыз:<html>
<head>
<title> HTML-ге CSS жалғау</title>
</head>
<body>
<h1>Мынаубіріншідеңгейлітақырып</h1>
Бұл – мәтінніңорны
<h2>Мынауекіншідеңгейлітақырып</h2>
Бұл – мәтінніңорны
</body>
</html>
Енді блокноттан жаңапарақша ашып, оның атын style.css деп жазып, html-парақша орнатылған
папкаға сақтаңыз:
Ол біздің стильдеріміздің парағы болады. Енді біз style.css парағын html-параққа жалғауымыз
керек. Ол үшін html-де сыртқы файлдарды жалғауға жауап беруші <link> тегі бар. Осы тегті біздің
html-парағымызға қосамыз:
<html>
<head>
<title> HTML-ге CSS жалғау </title>
<link rel=«stylesheet» type=«text/css» href=«style.css»>
</head>
<body>
<h1>Мынау бірінші деңгейлі тақырып</h1>
Бұл жер мәтіннің орны
<h2>Мынау екінші деңгейлі тақырып</h2>
Бұл жер мәтіннің орны
</body>
</html>
Ережелержәне селекторлар
CSS-тің басқа тілдер сияқты өзінің синтаксисі бар. Онда элемент те, параметр де, тег те жоқ.
Бұл тілде тек ережелер бар. Ереже селектордан және фигуралы жақшаның ішінде болатын стиль
жариялайтын блоктан тұрады:
Сурет 5 - CSS тілінің ережесі
Cтиль жариялайтын блоктың өзі сипаттан және оның мәнінен тұрады:
Сурет 6 - Cтиль жариялайтын блок
38.
38
Селекторлар. Идентификатор бойыншаселекторлар
Біздің жоғарыда көрсеткен мысалымызда селектор ретінде беттің body, h1, h2 сияқты
элементтері қарастырылды. Егер де біздің html-парағымызда бірнеше бірдей элемент (мысалы, азат
жол) болса және сол азат жолдардың барлығын қара түске, ал тек біреуін ғана қызғылт түске
өзгерткіміз келсе, бұлазатжолға бірегей идентификатор жасап, оған стильді саламыз.
HTML-де элементтің идентификаторы id параметрі арқылы беріліп,оның мәнісі ретінде
бірегей (қайталанбас) атау беріледі. Мысалы:
<p id=«pink»>Идентификаторлық мәтіназат жолы (id).</p>
Атауға HTML және CSS-тегі тег, параметр және элемент аттарынан басқа кез келген сөзді
қоюға болады. Мысалы, идентификаторға body дегенат қоюға болмайды. Енді html-парағымызға екі
азат жол қосып, олардың біріне идентификатор қосамыз:
<html>
<head>
<title>CSS id</title>
<link rel=«stylesheet» type=«text/css» href=«style.css»>
</head>
<body>
<h1>Бірінші деңгейлі тақырып</h1>
Бұл жерде жайтақырып
<h2>Екіншідеңгейлітақырып</h2>
Бұл жерде жай тақырып
<p>Жай азат жол</p>
<pid=«pink»>Идентификаторлы (id) азат жол</p>
</body>
</html>
Қазір браузердегі бетімізге қарайтын болсақ, олардың екеуіде ақ түсте. Стильдер кестесіне
(style.css) азат жолдар үшін стильдер қосайық:
body{
background: blue;
color: white;
}
h1{
color:red;
}
h2{
color:yellow;
}
p{
color:black;
}
p#pink{
color:pink;
}
Басында мәтіндегі барлық азат жолды қара түсте көрсеттік, бірақ id «pink» пен жазылған азат
жол мәтіні қызғылт түсте болды. Бұл жағдайда селекторымыз (p) элементінен, бөлгіш (#) және
идентификатор аты (pink) элементтерінен тұрады.
Айта кететін жайт, бір бетте тек қана бір (id) идентификатор бола алады. Яғни, біздің
мысалымызда id «pink» деген екі азат жол жасай алмаймыз, id деген азат жол тек қана біреу болу
керек (себебі id бірегей, қайталанбас дегенді білдіріп тұр). Дегенмен әрбір азат жолдың өз
идентификаторы болады, id=«green» деген азат жол жасап, оған стильді кестелер ішінде стиль бере
аламыз.
39.
39
Класс бойынша селекторлар
Жоғарыдаайтып өткен мысалымызда қызғылт түсті мәтінде азатжолжасап, ондай id тек қана
біреу болады деп көрсеттік. Ал егер де біз екі неодан да көп азат жолда қызғылт түсті мәтін болуын
қаласақ не болады? Олүшін HTML-де class деген параметр бар, class-тың мәнісі ретінде соныңатауы
көрсетіледі.
Html-параққа тағы да екі азат жол қосып, оларға class=”pink” қосамыз:
<html>
<head>
<title>CSS class</title>
<link rel=«stylesheet» type=«text/css» href=«style.css»>
</head>
<body>
<h1>Бұл бірінші деңгейлі тақырып</h1>
Бұл жерде жай мәтін
<h2>Бұл екінші деңгейлі тақырып</h2>
Бұл жерде жай мәтін
<p>Жай азат жол</p>
<pid=«pink»>Идентификаторлы азат жол</p>
<p class=«pink»>(class) pink класы мен азат жол</p>
<p class=«pink»>(class) pink класы мен азат жол</p>
</body>
</html>
Бұл класқа стиль көрсету үшін стильдер кестесінде ереже қосамыз. Ережеде селектор ретінде
элементp және атау pink қолданылады. Бірақ бұл жағдайда pink кластың атауы болғандықтан,
бөлгіш ретінде нүкте (.) белгісі қолданылады:
body{
background: blue;
color: white;
}
h1{
color:red;
}
h2{
color:yellow;
}
p{
color:black;
}
p#pink{
color:pink;
}
p.pink{
color:pink;
}
Бұндай класпен азат жолдарды қалғанымызша жасауға болады.
Осы аралықтағы қорытындыны шығарсақ:
Егер барлық бірдей (ұқсас) элементтерге (мысалы, барлық h1 тақырыптарға) бір стиль қою
керек болса, онда селектор тек қана мына элементтен тұрады(мысалы, p{color:black;})
Егер де элемент (кез келген: азат жол, тақырып және т.б.) басқаларынан ерекшеленуі қажет
болса, онда оған (id) идентификаторы қосылып, стильдер кестесіндегі бөлгіш ретінде тор
(#) белгісі қолданылады. Мысалы,p#pink{color:pink;}
Егер бетте бірдей стильдегі бірнеше элемент болса, онда оларға (class) класы қосылып,
стильдер кестесіндегі бөлгіш нүкте (.) белгісі болады. Мысалы: p.pink{color:pink;}
40.
40
Идентификатордың класқақарағанда біраз артықшылығы бар. Сондықтан қандай да бір
элемент үшін класс та, идентификатор да көрсетілсе, онда идентификатор стилі
қолданылады.
Жоғарыда айтып өткендей, идентификаторлар мен кластарды html-діңкез келген элементімен
беруге болады. Бірақ көбінесе былай болады: әдеттетүрлі элементтерді бір ғана стильмен, мысалы,
жасыл түспен белгілегімізкеледі. Осындай жағдайда бірыңғайланған селекторды қолдануға
болады.Ондай селекторларда элемент аты көрсетілмейді, класс немесеидентификатор және атау
белгісі ретінде нүкте немесе тор көрсетіледі.
Мысалы:
.red{
color:red;
}
#yellow{
color:yellow;
}
Сөйтіп, қандайэлементке (тақырып, азат жолнесілтемеге) class=”red”берсек те, мәтін түсі
қызыл болады. Тек бір элементке id=”yellow” береаламыз және бұл элемент мәтінінің түсі сары
болады.
Мәнмәтіндік селектор
Бізде мынадай кодпен html-парақша бар делік:
<html>
<head>
<title>Элемент бойынша селекторлар</title>
<link rel=«stylesheet» type=«text/css» href=«style.css»>
</head>
<body>
<p>Бұлмәтіназатжолтаорналасқан</p>
Бұлжаймәтін.
<i>Бұлмәтінкөлбеуәріппенбелгіленген</i>
<p>Бұлмәтіназатжолдаорналасқан, бірақ<i>бұлбөлігікөлбеуәріппенбелгіленген</i></p>
</body>
</html>
Мәтіндекөлбеуәріптің (курсив) белгіленуінқалап, онысарытүскебояймыз. Сонда біз стильдер
кестесіне элемент бойынша селектор жазамыз:
i{
color:green;
}
Қазір біздің html-парақ мынадай көріністе:
Енді бүкіл көлбеу әріптік мәтін емес, тек азат жолда орналасқанынынғана жасыл түсте болуын
қаласақ, ол үшін стильдер кестесіне өзгерісенгіземіз:
p i{
color:green;
}
Біз бұл стильді p элементінен i элементіне ауыстырдық. Бұнда элемент аттарын бір-бірінен
бос аралық жер (пробел) ажыратады. Осындайселекторлар мәнмәтіндік селектор деп аталады. Енді
біздің бетіміз браузердемынадай көрініс табады:
41.
41
Селекторлар топтасуы
Егер бірнешеселектор үшін стильдерді хабарлау блоктары сәйкескелсе (мысалы, алғашқы үш
деңгейдің тақырыптары жасыл түс болуынқалаймыз), оларды топтастыруға болады. Бұл үшін бір
стиль қолданатынселекторларды үтір (,) арқылы санап шығамыз. Мысалы:
Жасылдан басқа да тақырыптарға түстен өзге өлшем бергіміз келеді.Онда біз жай ғана
стильдер кестесіне жазамыз:
h1, h2, h3{
color:green;
}
Жоғарыда көрсетілгендей, тақырыптарда әртүрлі өлшем болады, бірақ тақырыптардың
барлығы жасыл түсте:
h1, h2, h3{
color:green;
}
h1{
font-size:18px;
}
h2{
font-size:16px;
}
h3{
font-size:14px;
}
Псевдо элементтержәне псевдо кластар
Жоғарыда айтып өткендей, CSS HTML элементтеріне қолданылады. Бірақ HTML-да
көрінбейтін бірнеше элемент бар, дегенмен олар бетте көрінеді (сөздің алғашқы әрпі және азат
жолдың алғашқы қатары). Осындай элементтерді псевдо элементтер деп атайды. Оларға HTML
элементтері сияқты стиль беруге болады.
Псевдоэлементкемыналаржатады:
- first-letter– сөздің алғашқы әрпіне стиль береді. Біздің html-парағымызда
жалғыз азат жол болса да, ол былай белгіленеді:
<html>
<head>
<title>Құжат тақырыбы</title>
<link rel=«stylesheet» type=«text/css» href=«style.css»>
</head>
<body>
<p>
Азат жол мәтінін және алғашқы әріпті қызыл түспен белгіледік.
</p>
</body>
</html>
Азат жолдағы алғашқы әріпті қызыл түспен белгілеу үшін стильдер кестесіне мынаны
жазамыз:
p:first-letter{
color:red;
42.
42
}
Біздің бетіміз браузердебылай көрінеді:
first-line– азат жолдың алғашқы қатарына стиль береміз. Азат жолдағы алғашқы қатарды көк
түспен белгілейміз. Оны стильдер кестесінде былай жазамыз:
p:first-letter{
color:red;
}
p:first-line{
color:blue;
}
Енді біздің бетіміз браузерде былай көрінеді:
Назар салып қарасаңыз, алғашқы әріп қызыл түспен қалды, себебі ол үшін бөлек селектор
жазылған.
Псевдо элементтержәне псевдокластар
Псевдокластар
CSS-те төрт псевдокласс бар. Олар сілтемемен жұмыс жасауғамүмкіндік береді. Сілтемеде
төрт жағдай болады: қарапайым, белсенді,барылатын және көлбеу әріп қосылған. Сілтемелердің
жағдайы қолдаушымен браузердің ісіне байланысты. Олардың іс-әрекетіне байланысты
түрлістильдер алады. Осы стильдерді жазу үшін псевдокластар бар:
a:link – қарапайым сілтеме стилін береді
a:active – белсенді сілтеме стилін береді
a:visited – барылатын сілтеме стилін береді
a:hover – көлбеу әріп қосылған сілтеме стилін береді
Есіңізде болса, сілтеме көк түсте және асты сызылған болады. Біздің html-парағымыздағы
сілтеме:
<html>
<head>
<title>Құжат тақырыбы</title>
<link rel=«stylesheet» type=«text/css» href=«style.css»>
</head>
<body>
<a href=«#»>сілтеме</a>
</body>
</html>
Ол мынадай көріністе болады:
Сілте мені жасыл түске өзгертіп, астындағы сызықты алып тастайық:
a{
color:green;
text-decoration:none;
}
43.
43
text-decorationсипаты мәтін астыныңсызылуын қамтамасыз етіп, ал оның none мәнісі
астындағы сызықтың алып тастауға жауап береді:
Енді сілтемеге курсорды апарғанда сілтеме қызыл түске айналатын стиль жазайық:
a{
color:green;
text-decoration:none;
}
a:hover{
color:red;
}
Браузердегі бетіңізді жаңартсаңыз, сілтемеге барғанда оның түсі жасылдан қызыл түске
өзгергеніне куә боласыз.
Формалар дегеніміз әртүрлі мәтін жазатын, құпия сөз енгізетін алаң және сондай-ақ көп
нұсқалардың бірін таңдайтын кезде осы формалардың түрі арқылы көрсетіледі. Ендеше сол
формалардың бірнеше түрлерін көрсетіп өтейік.
Мәтін алаңы
<input type=«text»/> элементі енгізу алаңына (веб-беттегі төртбұрыш бос орын) мәтін
енгізеді. name=«firstname» элементіне адам аты жазылуын білдірсе, name= «lastname»
элементіне адам тегі жазылуын білдіреді.
<html>
<head>
<title>Мәтін алаңы</title>
</head>
<body>
<form action=««>
Аты: <input type=«text» name=«firstname»/><br />
Тегі: <input type=«text» name=«lastname»/></form>
</body>
</html>
</html>
Құпия сөз алаңы
name=«user» элементі пайдаланушы аты жазылуын білдірсе, name=«password» элементі
құпия сөз жазылуын білдіреді. Құпия сөз мәтін алаңына жазылғанда, жұлдызша (*) немесе
дөңгелек белгісінде көрінеді.
<html>
<head>
<title>Құпия сөз алаңы</title>
</head>
<body>
<form action=««>
Атыңыз: <input type=«text» name=«user»/><br />
Құпия сөз: <input type=«text» name=«password»/></form>
</body>
</html>
Чек-бокс
44.
44
<input type=«checkbox»/> элементічек-боксты білдіріп, дұрыс белгісін қоятын кішкене
төртбұрыш алаң. Біздің мысалда көлік түрін белгілеу керек. Өзіңізде көліктің қайсы түрі болса,
соның тұсына дұрыс белгісін қоясыз.
<html>
<head>
<title>Чек-бокс</title>
</head>
<body>
<form action=««>
<input type=«checkbox» name=«vehicle» value=«Bike»/>Менде велосипед
бар<br />
<input type=«checkbox» name=«vehicle» value=«Car»/>Менде машина бар
</form>
</body>
</html>
</html>
Радио-түйме
<input type=«radio»/>элементічек-бокс сияқты белгілейміз, бірақ дөңгелек формада болады.
Чек-бокста бірнеше нұсқаны белгілеуге болады, ал радио-түймеде болса, тек ғана біреуі таңдалады.
Біздің мысалда ер не әйел. Адам бәрібір екеуінің біріне жатады.
<html>
<head>
<title>Радио-түйме</title>
</head>
<body>
<form action=««>
<input type=«radio» name=«sex» value=«male»/>Ер<br />
<input type=«radio» name=«sex» value=«female»/>Әйел
</form>
</body>
</html>
Ашылушы тізім
<select name=«cars»>элементі төмен қарай ашылушы тізімін білдіреді. Біздің мысалда
тізімдегі машиналардың бірін таңдауға болады.
<html>
<head>
<title>Ашылушы тізім</title>
</head>
<body>
<form action=««>
<select name=«cars»>
<option value=«volvo»>Волво</option>
<option value=«saab»>Сааб</option>
<option value=«fiat»>Фиат</option>
<option value=«audi»>Ауди</option>
</select>
</form>
</body>
</html>
45.
45
Өзгертілмейтін мәтін алаңы
<textarearows=«10» cols=«30»>элементіені – 30 пиксель, алұзындығы 10 пиксель болатын
өзгертілмейтін мәтін алаңын веб-бетте шығарады.
<html>
<head>
<title>Мәтін алаңы</title>
</head>
<body>
<p>Бұл өзгертілмейтін мәтін алаңы.</p>
<textarea rows=«10» cols=«30»>
Жайлауда қойлар жайылып жүр.
</textarea>
</body>
</html>
Түйме
<input type=«button» value=«Сәлем!»>элементі басылатын түймені білдіріп, сол түйменің
аты “Сәлем!” болады.
<html>
<head>
<title>Түйме</title>
</head>
<body>
<form action=««>
<input type=«button» value=«Сәлем!»>
</form>
</body>
</html>
Жеке мәлімет
<input type=«button» value=«Сәлем!»>элементі басылатын түймені білдіріп, сол түйменің
аты “Сәлем!” болады.
<html>
<head>
<title>Жеке мәлімет</title>
</head>
<form>
<form action=««>
<fieldset>
<legend>Жеке мәлімет:</legend>
Аты: <input type=«text» size=«30»/><br />
Э-пошта: <input type=«text» size=«30»/><br />
Туғанкүні:<input type=«text» size=«10»/>
</fieldset>
</form>
</body>
</html>
46.
46
HTML тіліндегі фреймдер
Фреймдербірнеше *.html құжаттарды браузердің бетінде бір уақытта көрсетуге мүмкіндік
береді. Олар браузерді бір-біріне жақын орналасқан бөлімдерге бөледі. Сол әр бөлімде жеке веб-
беттер көрсетіледі. Қазіргі таңда фреймдердің қолданылуы сирек жағдай болғанымен, олардың
артықшылықтары мен кемшіліктерін қарастырып өтейік:
Артықшылықтары:
Қарапайымдылық
Фреймдерді қолдану арқылы веб-бетті оңай жолмен бөлімдерге бөлуге болады. Мысалы, сол
жақтағы бөлім навигация үшін, ал оң жақтағы бөлім негізгі контент үшін.
Жылдамдық
Жаңа веб-бетті ашу үшін бүкіл бетті жаңарту қажет емес, жүктелетін ақпараттың көлемі аз.
Сол себепті сайт тез жүктеледі. Бірақ фреймдер санының көп болуы браузерге көбірек жадтың
бөлінуін қажет етеді.
Орналасуы
Фреймдер ақпараттарды орналастырудың ерекше жолын ұсынады: егер
фреймдібраузердіңтөменгібөлігінеорналастыратынболсақ, бұлбөлікбарлықжағдайдабірдейкөрін іп,
ешқашанөзорнынөзгертпейді.
Кемшіліктері:
«Бетбелгіге» қосуға келмейді
Ішкі сайт бөліктерін “бетбелгіге” қосуға келмейді, өйткені фреймдер сайттың адресін
жасырады. Мысалы, сайт ‘site.com’ адресі бойынша орналасты делік. Егер веб-беттегі басқа
сілтемелерге өтетін болсақ, URL өзгермейді.
Барлық браузерлер мен үйлесе бермейді
Қазіргі көп браузерлер фреймдерді қолданатын сайттарды қолдағанымен, кейбір браузерлер
оны көрсетпейді. Сол себепті әрқашан сайттың ‘noframes’ нұсқасын жасауға тура келеді.
Іздеу жүйелерінің индексациясына ілінбейді
Іздеу жүйелері фреймдерді қолданған сайттар мен жаман жұмыс жасайды, өйткені веб-бетте
орналасқан негізгі контентте басқа құжаттарға сілтемелер жоқ.
Айтакету қажет, жоғарыда айтылған кемшіліктердің алдын алуға болады. Ол үшін қосымша
скриптерді қолдануға тура келеді.
<FRAMESET> – құрылым
<FRAMESET>веб-беттегі фреймдердің құрылымын анықтап береді.
Мысалы, сол жақтағы бөлім навигация үшін, ал оң жақтағы бөлім негізгі контент үшін.
<html>
<head>
<title>Frameset бет</title>
</head>
<frameset cols = «25%, *»>
<frame src =«frame_left.html» />
<frame src =«frame_right.html» />
</frameset>
</html>
Бұл мысалда <FRAMESET> тегінің қолданысы бесінші жолдан басталып сегізінші жолда
аяқталады. Байқасаңыз, бұл тег <BODY> тегінің орнына жазылған және қосымша ‘cols’ атрибутын
қолданып, оған ‘25%, *’мәні берілген. Демек веб-бет екі бағанға (columns) бөлінген және
біріншісінің ені терезенің төрттен бір бөлігіндей болса, қалғаны екінші бөліктің алатын орны. Енді
<FRAMESET> құрылымының ішіндегі екі фреймді қарастырайық. Жоғарыда айтылғандай, әр
фрейм жеке веб-бетті көрсетеді.
Бұл жағдайда да бірінші фрейм ‘frame_left.html’ құжатын көрсетсе, екінші фрейм
‘frame_right.html’ дербес веб-бетті көрсетіп тұр.
Егер ‘cols’ атрибутының мәнін ‘50%, *’ мәніне өзгертсек, онда екі құжат терезенің теңдей
бөлігінде бағана болып орналасады.
47.
47
Енді құжаттардың жолбойынша орналастырылуын қарастырайық. Ол үшін ‘cols’
атрибутының орнына ‘rows’ атрибутын жазайық.
<html>
<head>
<title>Frameset бет</title>
</head>
<frameset rows = «50%, *»>
<frame src =«frame_left.html» />
<frame src =«frame_right.html» />
</frameset>
</html>
Демек, екі құжат жол (row) бойынша браузер терезесінде орналасты. Үшінші құжатты қосып
көрейік.
<html>
<head>
<title>Frameset бет</title>
</head>
<frameset rows = «20%, *, 10%»>
<frame src =«header.html» />
<frame src =«content.html» />
<frame src =«footer.html» />
</frameset>
</html>
Бұл жерде <FRAMESET> үш фреймнен тұрады. Және де оның құрылымы жол бойынша
бірінші фрейм браузер терезесінің 20%-ын, екіншісі70%-ын және үшіншісі 10%-ын алатындай
орналасқан.
Тапсырманы кішкене күрделендіре түсейік: негізгі контентті тағы екі бөлікке бөлейік.
<html>
<head>
<title>Frameset бет</title>
</head>
<frameset rows = «20%, *, 10%»>
<frame src =«header.html» />
<frameset cols = «*, 20%»>
<frame src =«content.html» />
<frame src =«right_sidebar.html» />
</frameset>
<frame src =«footer.html» />
</frameset>
</html>
Ол үшін кірістірілген (вложенный) құрылымды пайдаландық. Яғни, <FRAMESET>-тің ішінде
тағы бір<FRAMESET>-ті жаздық. Ал ол өз кезегінде ортаңғы бөлікті 60% да 40%-дай болатын екі
бөлікке бөлді.
Сонымен, чат жүйесі веб-бетін жоғарғы бөлік, негізгі хат мұрағаты бөлігі, қолданушылар
тізімі бөлігі жәнетөменгі хат жазу бөлігі етіп орналастырдық. Осы төрт бөлікке сәйкес төрт құжатты
көрелік:
Бұл құжаттарға қарап, қай құжат қай бөлікте орналасатынын білуге болады. Мысалы,
‘header.html’ жоғарғы, ал ‘right_sidebar.html’ оң жақ бөлікте тұратыны анық. Демек, әр құжатқа ат
бергенде оның негізгі қызметіне байланыстырып қойған абзал.
Келесі мысалдарда чат жүйесінің кейбір жерлерін өзгертіп көрейік.
1. <FRAMESET>-тің ‘border’ атрибутын нөлге теңестіріп, фреймдердің арасындағы
шекараларды жасырдық.
2. «noresize» атрибуты арқылы фреймдердің өлшемін өзгертуге тыйым салдық.
<html>
48.
48
<head>
<title>Frameset бет</title>
</head>
<frameset rows= «20%, *, 10%» border=«0»>
<frame src =«header.html» noresize />
<frameset cols = «*, 20%»>
<frame src =«content.html» noresize />
<frame src =«right_sidebar.html» noresize />
</frameset>
<frame src =«footer.html» noresize />
</frameset>
</html>
3. scrolling=«yes» атрибуты арқылы хат мұрағаты мен қолданушылар тізімін, егер де мәтін
көлемі өте көп болса, оң жақта пайда болған» прокруткалар» арқылы көре аламыз.
Жылжымалы (плавающие) фреймдерді қарастырмасақ, фреймдер туралы әңгіме толық
болмайды. Жылжымалы фреймдерде п веб-беттің кез келген жеріне қоюға болатын фреймдерді
айтамыз. Егерде жай фреймдердің нақты орналасу орындары болатын болса, жылжымалы
фреймдерді кез келген жерге орналастырааламыз. Жылжымалы фрейм <iframe> тегі арқылы
анықталады.
<html>
<head>
<title>iFrame</title>
</head>
<body>
<iframe src=«content.html» width=«300» height=«150»></iframe>
</body>
</html>
Тура осылай жылжымалы фреймдерді веб-беттің кезкелген жеріне орналастыруға болады.
49.
49
2 БӨЛІМ. WEBБАҒДАРЛАМАЛАУДЫҢ НЕГІЗІ
§ 2.1 САЙТ ҚҰРУ ТҮРЛЕРІ
Негізі Web, Веб, Internet, Интернет – сөздерін синоним деп те қарастыруға болады.
Веб-технологиялар – Интернет желісін қолданып пайдаланушылармен бірге жұмыс істеуді
ұйымдастыру есептерін шешудің техникалық, коммуникациялық, программалық әдістер кешені.
Анықтама. Контент – веб-беттерде орналастырылған ақпараттар. Анықтама2. URI беттер–
Интернет желісіндегі беттің уникалды адресі. Мысал: http://www.yandex.ru/all_services.html
URI –ға енеді:
1. Ресурсқа қол жеткізу әдісі, яғни хаттамасы (http).
2. Ресурстың желілік адресі(www.yandex.ru).
3. Сервердегі файлдың толық жолы (all_services.html).
Ерекшеліктері
Web-технологиялардың өзін ақпаратпен жұмыс істеу концепциясы деп алуға болады. Оның
мынадай ерекшеліктерін бөліп қарастыруға болады:
Web-технологиялардың техникалық негізі – локальды және глобальды желілер, көбіне
Интернет
Клиенттердің ерекше типін пайдалану: web-браузерлер ( браузерлердің типі мен тарихы,
қазіргі жағдайын өздігінен оқуға беремін. P.S. Гульмира Жумагалиевна)
Ақпараттық көздердегі өзгерістер публикацияларда бірден бейнелене алады;
ақпаратты тұтынушылар саны шектеусіз;
публикацияларда басқа публикацияларға берілген сілтемелер орны мен материалдар көзіне
тәуелсіз түрде беріле алады;
іздеу машиналардың белсенді жұмысы (іздеу машиналардың тарихы, рөлі мен қазіргі
жағдайын өздігінен оқуға беремін. P.S. Гульмира Жумагалиевна);
контентті беру мен тираждау тегін.
Артықшылықтары
Web-технологиялар ақпаратты жеткізу құралы ретінде адам мен компьютер арасындағы
әмбебап интерфейс болып табылады. Әр адамға жазбалар, тақырыпшалар, сілтемелер мен
картинкалар ұғынықты. Веб-интерфейс ақпаратты алу құралы ретінде түсінікті. Интернеттің
коммуникациялық арна ретінде кең ауқымды пайдаланылуы веб интерфейстің қарапайым екендігін
көрсететіні даусыз. Браузер – веб-беттерді көруге арналған программа. Браузерлер – казіргі
компьютерлер жабдықталған проограммалар. Кең тараған браузерлер: Internet Explorer, Firefox,
Opera, Safari, Chrome.
Web-ресурстарды алу технологиясы. Web-парақтарды кэштау
Прокси-сервер механизімінің жұмысы
Web-парақтарды кэштеу
Егер сервер үлкен жойылуда болса, Интернетке шығу жылдамдығы төмен болса немесе қайта
қосылу режимінде жұмыс істесе, көбнесе ақпарат кешіктіріліп беріледі. Бұл кезде қосылуды
жылдамдату сұрағы туындайды. Осы сұрақты шешудің бір жолы, мәліметтерді жойылған
серверлерден бірнеше рет алуға болмауында. Web навигациясы кезінде көбінесе кітаптағындай
«парақты артқа парақтау» сияқты, яғни параққа қайта қосылу қажеттілігі туындайды. Браузерде
Артқа пернесін басып, алдында көріп өткен параққа қайта оралғанда, оны серверден қайта алудың
мағынасы жоқ екені анық. Сондықтан көріп өткен құжатты компьютердің дискінің арнайы буферлік
аймағында (кэште) сақтаса, қолданушы ссылкамен қайта оралғысы келген жағдайда тез ашып
көруге мүмкіндігі болады. Қазіргі заманға сай браузерлер дәл осылай істейді. Мәселен сіз
парақтарды 1-2-3 кезегімен қарап, 3-ші парақ 4-ге ссылкасы бар деп ойлайық. Осы жағдайда 3-ші
парақтан 4-ге өтумен (Жүйеден жүктеу) салыстырғанда 2-ге өту тез (кэштан жүктеу) орындалады.
Қазіргі заманға сай браузерлерде (Internet Explorer және Netscape Navigator) кэштелген
құжаттарды сақтау үшін папканың көлемін өзгерту мүмкіндігі бар.
50.
50
Прокси-сервер
Кэштеу технологиясында өзініңшектеулері бар. Мысалы, сіз және сіздің әріптесіңіз
Интернетке бір провайдерарқылы қосылған болсаңыз. Бір кезде сіз, алдында сіздің әріптесіңіз алған
құжатты сол провайдердің каналынан сұрайсыз. Жүйеден қайта-қайта бір құжатты сұрау дұрыс
емес. Мәліметтерді сервер провайдер деңгейінде кэштау дұрыс.
Бұл мәселені шешу провайдерлер прокси-серверге (ағылшынның proxy орынбасар деген
сөзінен) жүктейді. Прокси-сервер – бұл қауіпсіздікті, әкімшілік бақылауды және кэштау
функцияларын жоғарылатуға мүмкіндік беретін, қолданушының жұмыс станциясы мен Интернет
арасындағы поӨЖедник ролін атқаратын сервер.
Прокси-сервер қолданушыдан қандай да бір интернет-сервисті орындауға сұраныс алады,
мысалы, web-парақты көріп өтуге сұраныс. Егер прокси кэштау функциясын орындаса, ол сервердің
локалді кэшінда сұрап отырған парақтың жоқтығын қарайды. Егер бұл парақ бар болса, ол
қолданушыға сұраныс Интернетке берілмей қайтарылады. Ал, егер кэшта бұл парақ болмаса,
проксисервер клиент ролінде қолданушының атынан, өзінің IP-адресін қолданып, Интернеттен
керек параққа сұраныс жібереді. Парақ қайта оралғанда, проксисервер оны қолданушыға жібереді.
Прокси-сервердің кэштау функциясы Интернетпен жұмысты едәуір жылдамдата алады жене
жүйелік трафиктің көлемін азайта алады. Web-парақтарды кэштеу Жүйенің жұмысын жақсартудың
бір жолы болып табылады, себебі ол web-түйіннің уақытты бұзылыстарын компенсирует.
Әдетте, прокси-сервер программасы жұмыс істейтін компьютерде едәуір дисктік аула
бөліаптаі. Үлкен провайдерлар құжаттарды кэштеуге ондаған және жүздеген гигабайт память бөле
алады.
Осылайша, үнемі ізделіп отыратын құжат тек құжатты шығарушының серверінде ғана
сақталып қоймай, сонымен қатар «қолданушыға жақынырақ», провайдер прокси-серверінде немесе
қолданушының өз компьютерінде сақтала алатындықтан, іздеген құжаттарды тез көре алу
мүмкіндігі бар.
Біз мыңдаған клиенттері бар провайдерларжөнінде айтқана, жүйедегі құжаттардың белгілі бір
бөлігін ғана сұрайтынын айтып өткен жөн. Мыңдаған клиенттермен жұмыс істейтін үлкен ISP-дің
прокси-сервері, сұраныстардың 50%-ға жуығын өз дискінен орындайды. Әдетте ISP сервері
регионның басқа интернет провайдерлардың серверлерімен байланысты. Сондықтан, егер клиентті
қызықтырып отырған құжат провайдердің прокси-сервер кэшінде табылмаса, ол басқа прокси-
серверлерде табылуы мүмкін. Осылайша, кэшауласындағы қолданушылардың көлемі көп есе
көбейеді. Кэштейтін проксисерверлерді тек ISP-провайдерлер ғана емес, сонымен қатар жүйеге
деген нагрузканы азайтқысы келетін және сұраныстарды оптимально обрабатывать үшін ірі
компаниялар орната алады.
Құжаттардың жарамдылық мерзімі.
Ескірген кэштелген файлды алмау үшін, кэштелген құжаттарды қашан сұранысқа қоюға
болады, ал қашан қоюға болмайтығын анықтайтын бірнеше ережелер бар. Бұл ережелердің бір
бөлігі HTTP протоколында жазылып өткен, ал қалғаны браузер настройкасында және прокси-сервер
әкімшілігімен ұсынады. Прокси-серверде кэштеуге шешім қабылдаудың бірнеше критерилері бар.
Мысалы, егер объект жасырын болса, ол кэштелмейді. Сол сияқты кэштелген құжатты клиенттің
сұранысы бойынша жіберіле алуға шешім қабылданатын критерилер бар. Мысалы, егер құжаттың
жарамдылық мерзімі өткен болса, онда сервер оны клиентке жібермей, сайтты құрастырушының
серверінде жаңалау құжаттың бар, жоқтығын сұрайды. Жарамдылық мерзімі өтіп кеткен құжат жай
жаңартылмаған, яғни ескірмеген болуы мүмкін және оны клиенттің сұранысына беруге болады.
WEB-жылдамдатқыштары.
Стандартты браузерлер кэштеу технологиясын Web-парақтарды жүктеуді жылдамдату үшін
қолданатынын айтып кеткен болатынбыз. Бірақ, жүктеу процесін Internet Explorer-ға қарағанда
жақсырық орындайтын арнайы программалар бар. Жылдамдатуды жүйелік қосылулардың
параметрлерін оптимизациялауарқылы, мәліметтерді кэштеу және «қажеті жоқ» мәліметтерді алып
тастау арқылы жүзеге асыруға болады. Кейбір программаларда жоғарыда айтып өткен
механизмдердің бірден бірнешеуі жүзеге асырылған.
Кэштеу процесін оптимизациялау арқылы жылдамдату.
Мәліметтерді кэштеу кезінде Web-парақтарды жүктеуді жылдамдатуды айтқанда 3 бағытты
белгілеп өткен жөн:
51.
51
IP-адрестерді кэштеу;
Локалді компьютерде дискті кэшті оптимизациялау; Әр бағыттың аптаен
құралғанын түсіндіріп өтейік.
Сіз URL браузерге сол немесе басқа ресурсты жібергенде, ол DNSсерверге доменді атты IP-
мекенге жіберуге сұраныс жасайтыны белгілі. Қажетті мәліметтерді табу алдында қаншама DNS-
серверлерді сұрап өтеді. Әдетте, IP-адрес қолданушы компьютерінде кэштелмейді және сіз бірнеше
минут алдын қолданып отырған мекен қайта сұралып отырады, ол тағы да уақыт алады. Сондықтан,
Web-парақтарды көрсетуді жылдамдатудың бір жолы DNS-серверлерді едәуір оптималды сұрау
жүргізетін және IP-мекендерді кештеуді ұйымдастыратын программаны қолдану болып табылады.
IP-мекенді алып болғаннан кейін, шолушы компьютердің кэшінде көрсетілген парақ
копиясының сақталғандығын тексеріп, егер кэштегі құжат жарамды болса, ол қолданушыға
жіберіледі. Бұл процесс та уақыт алады және оны жылдамдату – бөлек мәселе, сондықтан оны басқа
программаға жүктеуге болады. Осы мәселемен айналысатын көптеген программалар көп орын
алатын, бірақ жылдам істейтін өз кэшін құрады. Жылдамдатудың екінші бағыты осыны құрайды.
Үшінші механизмді (упреждающее чтение) түсіндіру үшін, кәдімгі браузердің жұмысына
қайта оралайық. Құжат браузермен көрсетілгеннен кейін, әдетте үзіліс болады. Қолданушы құжатты
оқығанша жүктеу процесі тоқтатылады, яғни система простаивает. Упреждающее чтение үзіліс
кезінде қосылыстарды қолдануға мүмкіндік береді, бұл кезде осы параққа ссылкасы бар құжаттар
жүктеледі. Осы құжаттардың фондық режимде жүктелуі қолданушы сұраныс жібергенде тез
көрсетуге мүмкіндік береді. Үшінші механизм осы упреждающее чтение немесе префетчингтан
(prefetch-ағылшынның алдан-ала алып келу деген сөзінен) құралады. Кейде осы механизмді
упреждающее загрузкой (ағылшынның pre-loading деген сөзінен) деп те атайды.
Web-сайт жасақтау жұмысын бірнеше кезеңден турады:
Жоспарлау;
Элементтерді жасақтау;
Бағдарламау;
Тестілеу;
Жариялау;
Жарнамалау;
Бақылау.
Жоспарлау кезеңінде төменгі мәселелер шешілуі керек:
1. Сайттың орны.
2. Сайттың аудиториясы кімдер.
3. Қандай ақпарат жарияланады.
4. Қолданушылармен қарым-қатынас қандай түрде ұйымдастырылады.
Элементтерді жасақтау кезеңінде сайттың программалық өнім түрінде жүзеге асырылуы
қарастырылады:
1. Навигациялық құрылымын жасау.
2. Беттің дизайнын жасау.
3. Бетті толтыру үшін мәтіндік және бейне ақпаратты әзірлеу.
Бағдарламау
Бұл кезеңдің мәні сайтты форматтауда.
Тестілеу
Сайт жасаудың негізгі кезеңдерінің бірі тестілеу. Тестілеу кезеңде сайттың жұмыс істеу
дұрыстылығы тексеріледі, оның ішінде:
1. Сілтеменің жұмысы;
2. Мәтіндегі қателер;
3. Навигацияның тиімділіғі.
4. Пошта және басқа формалардың дұрыстығы.
5. Графикалық файлдардың ашылуы.
6. Әр түрлі браузерлерде сайттық жұмысы.
Жариялау
52.
52
Тест аяқталғандан кейінWeb-сайт серверде жарияланады және қайтадан тексеріленеді.
Жарнамалау
Web-қоғамдастығына жаңадан жарияланған сайт тұралы белгілі болу үшін сайттың адресін
және ол жердегі материал туралы аннотацияны хабарлау керек. Осы мақсатқа жету үшін келесі
мүмкіндіктерді пайдалануға болады:
1. Web-cайт адресін әр түрлі баспаларға жазу керек;
2. Web-сайтты әр түрлі серверлерде тіркеу;
3. Web-cайтқа сілтемелерді басқа Web-сайттарқа кіргізу;
4. Баннерлерді жарнама ретінде қолдану.
Бақылау
Web-сайтта жариялап жарнамалаған сон оған қатысу деңгейі оның беттерінде
орналастырылған ақпараттың қажеттілігімен, жаңалығымен және көкейтестілігімен анықталады.
Web-сайт имиджін сақтау үшін ол жердегі ақпаратты әрдайым жаңартып туру керек.
Content Management System (CMS) жүйесі
CMS – бұл контентті құруды, басқару мен өңдеуді ұйымдастыратын және қамтамасыз ететін
ақпараттық жүйе немесе компьютерлік бағдарлама. CMS жүйесінде екі қор бар. Біріншісінде
(реляционды МҚБЖ) сайтта көрсетілген барлық мәліметтер сақталады. Екіншісінде (файлдық
жүйе) көрсетілім элементтері – шаблондар, графикалық суреттер және т.с.с. сақталады.
Қолданушыларға көрінетін сайттың сыртқы түрінен басқа екі арнайы жұмыс орны
ұйымдастырылған.
Бірінші жұмыс орны – сайт өңдеушісі үшін арналған. Оның көмегімен сайт құрылымын,
контент құрылымын береді, сайттың сыртқы түрін анықтайды, ақпарат бейнелеу шаблонын
жөндейді. Бұл құрал әдетте толық автоматтандырылмайды. Сайтты жөндеу үшін өңдеушілер
жиірек CMS құралдары арқылы жұмыс жасайды, ақпарат тікелей орналастырылады.
Екінші жұмыс орны – сайт басшыларына арналған. Ол ұйым немесе компания
қызметкерлеріне өз бетінше өңдеушілер қыhзметінсіз сайтқа ақпарат тапсыруға мүмкіндік береді.
Тұтынушы менеджері тек арнайы жұмыс орны арқылы жұмыс жасай алады.
CMS техникалық мамандар түрінде ешбір делдалсыз, ақпаратты қамтитын, ақпаратты
қызметкер жариялайды – ақпаратты оперативті жаңартуға мүмкіндік береді. Сонымен қатар CMS
негізінде түрлі қызметтер – функционалды жүзеге асырылған, яғни қажет етілген функциялар
CMS-та жүзеге асырылған және жедел қолданысқа беріледі. CMS негізінде сайт құруды бірнеше
рет тексеруден өткен дайын модульдер пайдаланылады, сайттың сыртқы түрі статикалық сайттар
жағдайына қарағанда, кішігірім шығындармен алмасады.
CMS өңдеушілері сайт құруда ақпаратты кез келген маман жүзеге асыра алады деген
тұжырым айтса, онда арнайы визуалды өңдеу құралдарын пайдалана отырып, кеңсе құжаттарын
ақпаратты импорттауға арналған webинтерфейс бар екені анық.
Сонымен қатар CMS – қосымшалар нарығында ең бақталастардың бірі. Әлемде мұндай
қосымшалардың бірнеше мыңға жуық түрлері бар.
Бірнеше жылда web-қорлар, контентті басқару жүйелері айтарлықтай жетілдірілді. CMS-ты
пайдалануына қарай бөлінуі:
- порталдар – жаңалықтар мен мақалаларды жариялаудың жолын жайдақтататын
ақпараттық қорлар үшін пайдаланылады. Құрамына дербес модульді CMS типтерін құрайды. Бұл
кластың ең әйгілі типтері – XOOPS, Xnuke, Xaraya, ВебZE және т.б;
- қозғалтқыштар (SQL-сыз) - бұл CMS өңдеуде тармақтары әлсіз дамыған, сондықтан
ақпарат құжаттарын сақтау негізінде мәлімет кестесі орнына түрлі мәселелер байланысқан. Бұл
CMS-тың артықшылығы – контент модификациясы мен тегін хостингте орналасу мүмкіндігін ің
бар болуы. Бұл идеяның бірнеше тараулары бар: Cute News, Deelight CMS, Progressive, SAPID;
- блог. Weblog ағылшын сөзінен тараған. Орысша термині – «желілік күнделік» - бұл
автордың жеке мақалалары орналасатын сайт. Әдетте мақалалар ретінде сайттарға сілтемелер
болуы мүмкін. Бұл категорияға келесі CMS-тарды жатқызуға болады: bBlog, CMS MyPUPBlog,
Nucleus, plog, pMachineFree, WordPress;
53.
53
- форумдар –бұл сайтта пікір алмасу құралы. Форумда хаттар пошталық хаттар сияқты
өз авторы мен мазмұны бар. Бірақ хат жіберу үшін арнайы прогрмма қажет емес – жай ғана сайтта
сәйкес форманы толтыру қажет. Форумның принциптік қасиеті, онда хаттар өзара байланысқан
тредтерге (thread - жіп) біріктірілген. Форумға жауап берген жағдайда сіздің жауабыңыз алдыңғы
шығыс хатқа байланысқан болады;
- хостингтің Админ панелі. Бұл класқа Control PANEL (С-панель), Direct Admin өнімдері
жатады.
Объектілі-бағытталған мәліметтер үлгісінде негізделген жүйелер функционалды, иекмді
болып келеді, бірақ ол күрделі.
CMS-та мәліметтер қорының желілік түрі – графтар теориясына сүйенеді: ақпарат
құрылымы өзара байланысқан, белгіленген түйіндер түрінде көрсетіледі. Жүйе фундаменті
ретінде мәліметтер сипатының желілік үлгісі көрсетілген желілік жүйесі ғана емес, сонымен бірге
дәстүрлі реляционды МҚБЖ қызмет ете алады. Реляционды кестелерде түйіндер, олардың
атрибуттары және өзара байланыстары жайлы ақпарат сақталады. Атрибуттың байланыстан
айырмашылығы, атрибутта – өз мәні, ал байланыста – басқа түйінге сілтеме сақталады.
Бағытталған графтан мәліметтерді бөлу үшін әдетте түйіндер тізімін құрау, түйіндер
атрибуттарын бас атрибут түйіні бойымен анықтау сияқты өңдеудің рекурсивті процедуралары
пайдаланады.
Модульдер тәуелсіз және берілген типтің құжаттарымен жұмысына толығымен жауап
береді. Модульді CMS-жүйелерінің ортақ кемшілігі, ол – мазмұнының модуль негізінде қатаң
белгіленген құрылымды қамтуы. CMS – бұл хостинг-аймақта орнатылатын және екі негізгі
функция атқаратын программа болып табылатындықтан, оның басты функциясы – мәліметтер
қорында сақталатын, алдын ала анықталған контентпен, дизайнмен, яғни мәтіндермен,
суреттермен, кестелермен және т.б. материалдарды құрылымдап, қолданушыларға сайт беттерін
көрсету (7 сурет).
Сурет 7 - CMS жүйесінің жұмыс істеу принципі
Мынаны ескерген жөн, мұндай түрде сайт беттері болмайды. Жеке шаблондар және түрлі
материалдар жиыны– мәтін, суреттер, мұрағатталған файлдар, MSOffice/PDF құжаттары және т.б.
материалдарды құрайды. CMS қолданушы сұраныс жіберген жағдайда web-бет құрастырылады.
Сонымен жағдайдан тәуелсіз, қолданушыға ешкім көрмейтін, қандай да бір уникалды ақпарат
көрсетіледі.
Тағы бір функциясы – сайт басшысына ешбір арнайы тәжірибелерсіз сайтты басқаруға
көмектесуге болады.
Drupal қолдану ортасы
CMS қолданушыларын түрлі топтарға жатқызуға болады.
54.
54
Қолданушылар тобы қолданушығатиесілі құқықтарды анықтайды. Кез келген CMS жүйесін
орнатуда бір қолданушы құрылады, ол суперадминистратор болып табылады. Оған «Admin» аты
және орнату кезінде көрсетілген парольге иеленеді.
Әрбір CMS жүйесінде қолданушылардың орнатылған тобы бар. Бұл келесідей топтар:
Super Administrator;
Administrator;
Manager;
Auditor; - Editor;
Publisher.
Administrator тобы Super Administrator-ға қарағанда бірнеше қысқартылған құқыққа ие. Бұл
топқа жататын қолданушылар келесі құқықтарға ие:
Super Administrator тобының қолданушыларын қосуға және өзгертуге;
Global Congiguration Settings – глобальді өңдеу бөліміне кіруге;
массалы e-mail хаттарды жіберуге;
шаблонды қосуға немесе өзгертуге;
тілдік файлдарды қосуға/өзгертуге тыйым салынады.
Manager тобы бойынша контентті басқару үшін құрылған. Бұл топтың қолданушылары
сайттың админ панелінде тіркелуіне болады, бірақ:
басқа қолданушыларды өзгерту;
модульдерді орнатуға;
компоненттерді орнатуға;
супер администратормен көрсетілген кейбір компоненттерге қатынауға тыйым
салынады;
Registered тобының қолданушылары сайтқа логин пішіні көмегімен кіре алады, сонымен
қатар сайтқа құрылған қосымша ақпаратқа қатынай алады;
Author тобының қолданушылары өздері қосқан сайттағы контент ақпаратты өзгерте
алады;
Editor тобы қолданушыларға кез келген қолданушымен құрылған контент ақпаратты
қосуға немесе өзгертуге мүмкіндік алады;
Publisher тобы кез-келген контент ақпаратты жариялауға, өңдеуге немесе қосуға
мүмкіндігі бар.
Қазіргі заманғы сапалы CMS жүйесі келесі сипаттамаларды қамтуы қажет:
1) Қарапайым инсталляция. CMS-тың алғашқы эксплуатация кезеңі – орнату (инсталляция)
кезеңі. Үдеріс максималды түрде құжатталған, қарапайым болу керек – мәліметтер
базасын құруды немесе конфигурациялық құжаттарды басқарудан бастамау қажет. Бұл
орнату скриптінің көмегімен орындалатын қарапайым процедура болу керек.
2) Жылдам бастау. CMS жүйесін оны қолданушы пайдалана бастаған сәттен максималды
үйрену қажет. Орнату тапсырмалары біртіндеп күрделенуі, қарапайым үдерістен күрделі
үдеріске өтуі қажет. Сосын бірнеше css стильдерін қосу мүмкіндігі (нұсқа ретінде –
шаблонды таңдау), және жаңа құжатты басқа сілтемелер мен web-беттермен
байланыстыру керек. Әрі қарай шолу жүйесінің орнатылуы және барлық мүмкін
қызметтердің қосылуы, функционалды блоктардың іске асуы орындалады.
3) Сапалы құжаттау. Егер CMS жүйесін орнатуда қандай да бір қиындықтар туындаса,
құжаттаманы оқыған абзал.
4) Администрациялауды бөлу және құрамын басқару.Барлық ашық CMS жүйелері
«администратор» және «қолданушы» деген түсініктерді айырады, бірақ қолданушы
құрамды басқару және администрлеу тәртібі арасында өзгертулер енгізу үшін ауысу
міндетті емес. CMS жүйелерінің 98% қолданушылар – бұл өз сайтының өз жүйесін емес,
құрамын басқаратын тұлғалар. Ал қалған 2% қолданушылар үшін әлі оңтайландырылған
жүйе жасалынбаған.
5) Бірегейлігі. Кез келген сайт үшін бірден алынған контентті басқару жүйесі сәйкес келе
бермейді. Өкінішке орай барлық «қозғалтқыштар» бір жүйелік түрде өңделген. Жүйелер
55.
55
тек функционалдығымен ерекшеленуімүмкін, алайда жиірек бір программалық пакет
екіншісіне қатты ұқсауы мүмкін.
CMS бұл жай ғана функциялар жиыны болғандықтан, оның сыртқы түрі әр жағдайда белгілі
шаблонға сәйкес өзгеруі тиіс. CMS жүйесі кез келген шаблон түрімен, санымен жұмыс жасай
білу қажет, ал бұл шаблондардың құрылымы мүмкіндігі бойынша қатаң және шектелмеген болу
қажет.
6) Қолдану икемділігі. Кеңейтілуі. CMS жүйесінің қолдану икемділігі әр қолданушы үшін
қарапайым болу қажет. Яғни универсалды өнім барлық өзінің қызметімен бірдей жұмыс
жасай білу қажет.
7) Мәліметтер құрылымы. CMS жүйесі қамтылған сайтта түрлі типті құжаттар көрсетілуі
тиіс. Басқа сөзбен айтқанда, сайттың түрлі беттері құрамы бойынша ғана емес, дизайн,
жіне құрылымы бойынша да түрлі болуы мүмкін.
8) Қауіпсіздігі. Мұнда SQL-injection, XSS-скриптинг бойынша жіберілетін параметрлердің
беріктілігі кіреді. Мәліметтердің резервті көшірілуі, және қалыпқа келтірілуін жүзеге
асыру мүмкіндігі міндетті түрде бар.
Бүгінгі күні кез келген сайт авторын қанағаттандыратын 800-ден астам модульдер мен
компоненттерді табуға болады. Берілген жүйелер кішігірім сайттарға ғана емес, корпортивті
сайттар мен ақпараттық жобалар үшін өте ыңғайлы.
Интернет желісін бизнес жүргізу құралы ретінде пайдалану webсайттарды құруға және
интернет-сайттарды өңдеу кезінде жобаларды басқару технологияларын қолдануға жаңа
талаптарды шығарды. Осылайша, өмірге жобаларды басқару әдістемесінің жаңа облысы – web-
жобаларды басқару келді.
Веб – программалау тілдері
Веб-программалау – веб косымшаларды құруға бағытталған программалаудың өлімі. Веб-
программалау тілдері - веб технологиялармен жұмыс істеуге арналған тілдер. Веб –
программалау тілдері негізінен екіге топқа бөліп қарастырамыз: клиенттік және серверлік.
Клиенттік тілдер
Клиенттік программалу тілдері – қолданушы серверінде орындалады, әдетте оларды
браузер орындайды. Бұл клиенттік тілдердің негізгі мәселесін тудырады, яғни программаның
орындалу нәтижесі қолданушының браузеріне байланысты. Егер де қолданушы клиентік
програмаларды орындауға тыйым салса,онда програмист қанша тырысса да, программа
орындалмайды. Кейде әртүрлі браузерде бір скрипт әртүрлі орындалуы мүмкін. Басқа жағынан
алғанда, егер де программист серверлік программаларды қолданатын болса, онда жұмысты
56.
56
оңтайландырады және жүктемеазаяды. Ең көп таралған клиенттік тілдер болып мыналал
есептеледі: HTML, CSS, JavaScrit. Java, VBscript, Actionscriрt және т.б.
Серверлік тілдер
Қолданушы белгілі бір бетке сұраныс жасағанда, шақырылған бет бірінші файл болып
қолданушы жіберіледі. Ол файл мынадай кеңейтулері болады: HTML, PHP, ASP, ASPX, SSI, XML,
DHTML, XHTML. Программаның жұмыс істеуі сайт орналасқан серверге толығымен тәуелді.
§ 2.2 JAVASCRIPT ТІЛІНІҢ НЕГІЗГІ ҚАСИЕТТЕРІ
JavaScript-тің қызметі және қолдануы, жалпы мәліметтер. JavaScript-ке байланысты объекттік
моделінің ұғымы.
Жалпы гипермәтіндік ақпараттық жүйе көптеген ақпараттық түйіндер жиынынан, осы
түйіндерде анықталған гипермәтіндік байланыстар жиыны және түйіндер мен байланыстарды
басқару құралынан тұрады. World Wide Web технологиясы – бұл Internet-те гипермәтіндік
үлестірілген жүйелерді жүргізу технологиясы болғандықтан, ол осындай жүйелердің жалпы
анықтамасына сай болу керек.
Web-ті гипермәтіндік жүйе ретінде екі көзқарас тұрғысынан қарауға болады. Біріншіден,
гипермәтіндік өтулермен (сілтемелермен — контейнер anchor) байланысқан көрсетілетін беттер
жиыны ретінде. Екіншіден, көрсетілетін беттерді құрайтын элементарлы ақпараттық объектілер
жиыныретінде (мәтін, графика, мобилды код мен т.б.). Соңғы жағдайда беттің гипермәтіндік өтулер
жиыны – бұл мәтінге кірістірілген сурет сияқты ақпаратты фрагмент.
57.
57
Екінші көзқараста гипермәтіндікжелі элементарлы ақпараттық объектілер
жиынында гипремәтіндік байланыстар рөліндегі HTML беттерінің өздерімен анықталады. Бұл
шешім көрсетілетін беттерді дайын компоненттерден бірден құру тұрғысынан жемістірек.
Беттерді генерациялауда Web-те «клиент—сервер» архитектурасымен байланысты дилемма
пайда болады. Беттерді клиент жағында да, сервер жағында да генерациялауға болады. Соңғысы
сервер жағындағы орын ауыстыру механизмімен іске асады (Server Site Includes). Netscape
компаниясы 1995 жылы JavaScript программалау тілін жасап, клиент жағында да беттерді басқару
механизмін таратты.
Осылайша, JavaScript — бұл клиент жағында Web гипремәтіндік беттерді қарау
сценарийлерін басқару тілі.
Дәлірек болсақ, JavaScript – бұл клиент жағындағы тек программалау тілі ғана емес. Liveware,
JavaScript ата-анасы, Netscape сервер жағындағы ауыстыру құралы болып табылады. Бірақ,
JavaScript атағын клиент жағында программалау шығарды.
JavaScript негізгі идеясы HTML атрибуттар мәндерін- HTML-беттерін көру кезіндегі
контейнерлер мен көрсетілу ортасының қасиеттерін тұтынушының өзгерту мүмкіндігі. Осы
шартта бет қайта іске қосылмайды.
Практикада бұл мысалға бет фонының түсін немесе құжатқа енгізілген суретті өзгерту, жаңа
терезе ашу немесе ескерту беруде көрініс табады.
“Тірі” гипертекстті қосымшаны құру мәні өте қарапайым. Браузер, HTML—кодының
интерпретаторы ретінде екі функция атқарады: визуалды және моделельдеуші. Визуалды әсер көзге
түседі: браузер құжатты экран бетіне шығарады. Бірақ, мұнымен жұмыс аяқталмайды. Браузер
компьютер жадында HTML—файлының әрбір тегіне жеке объект сәйкес келетін құжаттың
программалық моделін құрайды.
Бұл сызбаға қараңыз:
Браузер құжаттың объектілік моделін (ол иерархиялы) құруды window объектісінен бастайды.
Бұл объектіде құжат көрсетілген терезенің қасиеттері көрсетілген. Window объектісінің
құрамына <HTML>…</HTML> контейнеріне сәйкес келетін document объектісі
кіреді.
Document объектісі құрамына (қалғандар арасында) алынған HTML-файлының
барлық IMG тегтері жайында ақпараты бар images объект-массиві кіреді. Негізінен, бұл массивте
бірінші сурет images[0], екіншісі – images[1], т.с.с. объекті ретінде
айқындалады.
Егер HTML-кодында тегтер суреттелуін ғана емес, олардың белгілі бір оқиға пайда болуына
сәйкес объектілі моделіне әсерін қадағаласақ, экран бетіндегі құжат “тірі” болып көрінеді.
Мысалы, “сурет үстіндегі тышқан сілтемесі” оқиғасы болғанда images[0] объектісіндегі
pic1.gif src қасиетін pic2.gif (яғни, бір суретті басқа бір суретке алмастырсақ) ауыстырсақ.
Сонда біз Лондонның ғана емес, Париждің де ғажайып жерлерін көре аламыз:
58.
58
Гипермәтінді тірілтетін программалықкодтар (оларды скрипт немесе сценарий деп атайды)
арнайы программалау тілдерінде жазылады. HTML-мәтіндеріне кодтарын енгізуге болатын ең
белгілі тіл — JavaScript. Бұл тіл динамикалы интерактивті қосымшаларды құру құралы болып
қолданғандықтан, біз оны қарастыруға кірісеміз.
Кластар иерархиясын жазу
Барлық JavaScript объектісінің құрылуы Navigator жұмыс істеу облысынан бастау алады,
оларды келесідей иерархия түрінде көруге болады,
Қолдануға осы объект класынан басқа өзінің жеке объектісін құруға болады. Бірақ әдетте
көптеген программа осы класс жүйесін қолданады және жаңасын құрмайды.
Оқиғаларды өндеушілер
Функцияны шақырған кезде біздің орнына барлық жұмысты оқиғалар орындау керек.
JavaScript - оқиғаларды меңгеретін (even-driven) тіл. Яғни оның ішінде орындалатын барлығы оқиға
нәтижесі болып табылады немесе қандай да бір оқиғаны шақырады. Браузер ішіндегі жаңа бетті
59.
59
ашу, курсорды жылжыту,тышқанды шерту – бұнын барлығы оқиға болып табылады. JavaSripr
оқиғаларының кейбіреулерін қарастырайық:
onload;
onClick;
onMouseover;
onMouseout.
Әрқайсысына қысқаша шолып өтейік.
ОnLoad оқиғасы
Бұл оқиға бірденені тиегеннен кейін, мысалы, браузер терезесінде бетті ашқаннан кейін
орындалады. Ол суреттерімен қоса барлық беттің тиелгенінен кейін ғана орындалды деп саналады.
ОnLoad оқиғасын функция бет ашылғаннан кейін бірден орындалу үшін сценарий ішінде
қолдану өте ыңғайлы.
ОnClick оқиғасы
Бұл оқиға беттің белгілі бір жерінде тышқанмен шерткен кезде орындалады. Кейінірек сіз
беттің көптеген элементтері (гипермәтін, сурет, батырма және т.б.) onClick оқиғасын қабылдай
алатынын білесіз. Оны тұтынушымен бірлесіп әрекет ететін сценарий құрғыңыз келгенде қолдануға
болады.
ОnMouseover оқиғасы
Бұл оқиға onClick оқиғасына ұқсас болғанымен, тышқан шертуінен кейін емес, курсорды
беттің белгілі элементіне жақындаған кезде орындалады. ОnMouseover оқиғасын кез-келген Web-
бет объектімен (мәтінмен, суретпен, батырмамен, гипермәтінмен жәнет.б.) байланыстыруға болады.
Сонымен қатар оны интерактивтілік деңгейін көтеру үшін қолдануға болады.
ОnMouseout оқиғасы
Бұл оқиға onMouseover оқиғасы сияқты, бірақ тышқан объектіден алынған жағдайда ғана
орындалады.
ОnLoad оқиғасын қолдану
ОnLoad оқиғасын JavaScript функциясын шақыру үші қолданғанда, келесі оқиғаны өндеушіні
(event handler) Web-бетінің <body> тегіне орналастыру керек:
<body onLoad=”Функция аты()”>
Ескерту Оқиғаны өндеуші – бұл оқиға суреттелетін және пайда болу нәтижесінде кейбір
әрекет орындалатын, мысалы, орындалуға JavaScript функциясы енгізілетін, код фрагменті.Егер сіз
файлды сақтап, браузер ішінде ашсаңыз, онда сіздің функцияңыз тышқанмен беттің кез-келген
жерінде шерткеннен кейін орындалатынын көресіз.
HTML- бетте JavaScript –ті орналастыру. JavaScript скрипт коды міндетті түрде HTML –
бетте орналасады. Келесі қарапайым мысалда көруге болады:
<html>
<body>
<br>
Бұл қарапайым HTML құжаты.
<br>
<script language=”JavaScript”>
document.write(“Ал бұл JavaScript!”)
</script>
<br>
Тағы да HTML құжаты.
</body>
</html>
Бірінші қарағанға мысал жай HTML файлын еске түсіреді. Мұндағы конструкциясы:
60.
60
<script language=”JavaScript”>
document.write(“А этоJavaScript!”)
</script>
Бұл JavaScript коды.
Бұл скриптің қалай жұмыс істеуін көру үшін оны жай HTML файлда жазып және оны
браузерге жүктеңіз. Нәтижесінде 3 жолды мәтін аламыз:
Бұл қарапайым HTML құжат.
Ал бұл JavaScript!
Тағы да HTML құжаты.
Мұнда <script> тэгінің белгісін көрсетейін дегем. JavaScript тілінің кодттары барлығы
<script> және <script/> тэгтерінің аралығында жазылады. Бұл мысалда JavaScript тілінде
программалауда қолданатын маңызды командалардың бірі document.write() – қолданылған.
Команда document.write() командасын ағымдағы құжатқа жазбалар жазу үшін қолданады ( бұл
жағдайда өзіміздің HTML- құжат келтірілген). Біздің кішігірім HTML- құжатындағы JavaScript
программасы «Ал бұл JavaScript!» фразасы жазылады.
JavaScript қолдамайтын браузерлер. Біздің бетіміз қалай көрінеді егер браузер JavaScript –
ті қолдамаса? JavaScript –тің қолдауынсыз болатын браузерлер <script> тэгін білмейді. Олар оның
соңында тұрған барлық кодттарды бірін соң бірін кәдімгі текст ретінде шығара береді. Басқаша
айтқанда, оқырман, біздің мысалда келтірілген JavaScript кодының HTML-құжатының дәл
ортасында ашық текст түрінде орналасқанын көреді. Нәтижесінде біздің жаңаша вариантымыз
мынадай түрде келтіріледі:
<html>
<body>
<br>
Бұл қарапайым HTML құжат.
<br>
<script language=»JavaScript»>
<!—ескі браузерлерден кодттарды жасырады
document.write(“Ал бұл JavaScript!”)
//
</script>
<br>
Тағы да HTML құжаты.
</body>
</html>
Бұл жағдайда JavaScript қолдамайтын браузерлер былай жазылады:
Бұл қарапайым HTML құжат.
Тағы да HTML құжаты.
Ал HTML – тэгінің коментариясы болмаса JavaScript қолдамайтын браузер мынадай түрде
жазылар еді:
Бұл қарапайым HTML құжат.
Document.write(“Ал бұл JavaScript!”)
Тағы да HTML құжаты.
Назар аударыңыз JavaScript кодын жасыру мүмкін емес.
Пожалуйста обратите внимание, что Вы не можете полностью скрыть исходный код
JavaScript. То, что мы здесь делаете, имеет целью предотвратить распечатку кода скрипта на старых
браузерах — однако тем неменее читатель сможет увидеть этом код посредствомпункта меню 'View
document source'. Не существует также способа скрыть что-либо от просмотра в вашем исходном
коде (и увидеть, как выполнен тот или иной трюк).
Оқиға. Оқиға және оқиғаны өңдеу JavaScript тілінде программалау үшін ең маңызды бөлігі
болып табылады. Оқиға тақырып немесе қолданушы басқа іс —әрекетісмен бейнеленеді. Егер ол
бірнеше батырмаларды басса, «Click» оқиғасы болады. Егер тышқанның курсоры қандай да бір
гиперсілтемені көрсетіп өтсе – MouseOver оқиғасы орындалады. Оқиғаның бірнеше әртүрлі типтері
бар. Біз өзіміздің JavaScript-программамызды олардың кейбіреуіне әсер етуіне көмегіміз тиеді. Және
де бұл оқиғаны өңдеудің арнайы программасымен жүзеге асырылады. Батырманы басқан кезде
ашылған терезе төмен түседі. Бұл мынадай мағана береді, терезені құру Click шерткен кездегі оқиға
61.
61
реакциясы болу керек.Программа – onClick деп аталатын осы жағдай қолданылатын оқиғаны
өңдеуші болып табылады. Және де ол компьютерге оқиға нені орындау керектігін хабарлап тұрады.
Төменде келтірілген код onClick оқиғасымен өңделген қарапайым мысал келтірілген:
<form>
<input type=»button» value=»Click me» onClick=»alert('Yo')»>
</form>
Келтірілген мысал бірнеше жаңа оқиғалардан тұрады – оларды рет – ретімен келтірейік. Бұл
жерде біз батырмалы қалып құрамыз(бұл жерде HTML тілінің мәселелерін қарастырмаймыз).
<input> тэгіндегі - onClick=»alert('Yo')» бірінші жаңа ерекшелігі. Айтып кеткендей, бұл атрибут
батырманы басқанда не болатынын анықтайды. Егер Click оқиғасы орын алса, комьютерда
alert('Yo') шақырылуы орындалады. Бұл осы мысалда JavaScript тілінің коды болып саналады (Назар
аударыңыз, бұл жағдайда біз <script> тэгін қолданбаймыз). Alert() функциясы сізге ашылатын
терезе құруға мүкіндік береді. Оны шақырған кезде сіз жақшаның ішіне бір жол жазуыныз керек.
Біздің жағдайда 'Yo' болып табылады. Бұл осы ашылған терезеде орналасатын текс болады. Мұндай
жағдайда оқырман осы батырманы басқан кезде, біздің скрипт 'Yo' тексттен тұратын терезе құрады.
Кейбір кедергілер осы мысалдың тағы бір ерекшелігі болады: document.write () командасында
біз екі тырнақша қолдандық («), ал alert() конструкциясында біреу. Неге? Көптеген жағдайларда
тырнақшаның екеуінде қолдануға болады. Бірақ та соңғы мысалда — onClick=»alert('Yo')» деп
жаздық, яғни біз екі және бір тырнақшаныда қолдандық. Егер біз onClick=»alert(«Yo»)» деп жазсақ,
онда компьютер біздің скрипті ажырата алмас еді, конструкцияның қай бөлігінде функцияны
onClick оқиғасымен өңдеу керектігі түсініксіз болады. Сондықтан сіз бұл жағдайда екі тырнақша
түрінде жазуға тура келеді. Тырнақшаларды қандай жағдайда жазу керектігі міндетті емес, оны
былай деп те жазуға болады: onClick='alert(«Yo»)'. Сіз скрипте көптеген әртүрлі функция типтері
оқиғаны өңдеуге қолданылады.
Егер сіз Netscape Navigator браузерін пайдалансаңыз, ашылған терезеде текст мәні JavaScript-
те alert функциясымен берілген. Осындай ашылатын терезені сіз prompt() көмегімен дк құруыңызға
болады. Бірақ та бұл жағдайда терезеде оқырман енгізген мәтін шығады. Сондықтан, қылмыскерлер
жазған скрипт оқырманнан жүйелік хабарлама сұрау мүмкін және пароль енгізуін сұрайды. Ал егер
текст ашылған терезенге сиса, онда оқырманға осы терезе web-браузерде құрылғаннын түсіндіреді.
Функциялар. Біздің программамыздың көбісі JavaScript тілінде функциялардың көмегімен
қолданамыз. Сондықтан да маған осы тілдің ең маңызды элементі туралы айту керек. Көптеген
жағдайда функциялар бірнеше командаларды біріктіруді жүзеге асырады. Бір мысалды
қарастырайық, бір тексті үш рет шығаратын скрипті құрастырайық: Бастапқыда қарапайымын
қарастырайық:
<html>
<script language=»JavaScript»>
<!—hide
document.write(«Менің бетімен қош келдіңіз!<br>»);
document.write(“Бұл JavaScript!<br>”);
document.write(“Менің бетімен қош келдіңіз!<br>”);
document.write(Бұл JavaScript!<br>”);
document.write(“Менің бетімен қош келдіңіз!<br>”);
document.write(“Бұл JavaScript!<br>”);
//
</script>
</html>
Және мынадай скрипті келесі мәтін жазады:
Менің бетімен қош келдіңіз!
Бұл JavaScript!
Үш рет. Егер скриптің шығару кодына қарасақ, қажетті нәтижені алу үшін оның анықталған
кодын үш рет қайталанғанын көруге болады. Біз бұл тапсырманы бұдан да жақсы шеше аламыз.
<html>
<script language=»JavaScript»>
<!—hide
function myFunction() {
document.write(«Менің бетімен қош келдіңіз!<br>»);
62.
62
document.write(“Бұл JavaScript!<br>”);
}
myFunction();
myFunction();
myFunction();
//
</script>
</html>
Бұлскрипте келесідей жолдан тұратын функцияны анықтадық:
function myFunction() {
document.write(«Менің бетімен қош келдіңіз!<br>»);
document.write(“Бұл JavaScript!<br>”);
}
Фигуралық жақшаның ішіндегі {} скриптің барлық командалары myFunction () функциясына
жатады. Енді бұл екі командада функцияны шақырған кезде ғана орындалады деген мағана береді.
Шындығында біздің мысалда осы функцияны үш рет шақырғанбыз.Біз функцияға анықтама берер
алдында myFunction() жолын үш рет жазғанбыз. Сондықтан үш шақыру орындадық. Өз кезегінде
бұл функцияда (фигуралы жақшада көрсетілген команда) үш рет орындалғанын білдіреді. Бірақ та
функцияны қолдануда қарапайым мысал, сізде сұрақ туындауы мүмкін неге бұл функциялар
JavaScript үшін маңызды. Берілген түсініктемені оқығанда олардың қажеттілігін түсінесіз.
Функциялар оқиғаны өңдеуде процедурамен бірге қолдануға да болады. Келесі мысалды
қарастырайық:
<html>
<head>
<script language=”JavaScript”>
<!—hide
function calculation() {
var x= 12;
var y= 5;
var result= x + y;
alert(result);
}
//
</script>
</head>
<body>
<form>
<input type=”button” value=”Calculate” onClick=”calculation()”>
</form>
</body>
</html>
Мұнда батырманы басқан кезде calculation() функциясы шақырылады. Бұл функция x, y және
result айнымаларын қолданып есептеулер жүргізілгенін көруге болады. Айнымалыларды Var кілттік
сөйлем көмегімен анықтауға болады. Айнымалыларды әр түрлі сандар, мәтін жолдарын және тағы
басқа өлшемдерді сақтау үшін пайдалануға болады. Var result= x + y скрипт жолы браузерге result
айнымалысын құру керектігін және оған x + y (т.е. 5 + 12) арифметикалық амалының орындау
нәтижесін сидыруды хабарлайды. Одан кейін result айнымалысында 17 саны орналасады. Бұл
жағдайда alert(result) командасы alert(17) сияқты орындайды. Біз ашық терезеде 17 деп жазылған
санды аламыз.
JavaScript объектілерінің иерархиясы. JavaScript тілінде web-беттерде барлық иерархиялық
құрылымнан тұрады.Әр бір элемент объект ретінде қарастырамыз. Және де сондай әр бір объекттің
анықталған оқиғасы және тәсілі болады. Өз кезегінде JavaScript тілі web – беттің объектілерімен
оңай басқаруға мүмкіндік береді, бірақ ол үшін объектілер иерархиясын білу маңызды болып
табылады. Келесі мысалда осының барлығы қалай жүзеге асатынын көруге болады. Қарапайым
HTML-бетті қарастырайық:
<html>
<head>
63.
63
</head>
<body bgcolor=#ffffff>
<center>
<img src=”home.gif”name=”pic1” width=200 height=100>
</center>
<p>
<form name=”myForm”>
Name:
<input type=”text” name=”name” value=””><br>
e-Mail:
<input type=”text” name=”email” value=””><br><br>
<input type=”button” value=”Push me” name=”myButton” onClick=”alert(‘Yo’)”>
</form>
<p>
<center>
<img src=”ruler.gif” name=”pic4” width=300 height=15>
<p>
<a href=”http://rummelplatz.uni-mannheim.de/~skoch/”>My homepage</a>
</center>
</body>
</html>
Ал бұл бет экранда қалай көрінеді:
Сонымен бізде бір сілтеме және мәтін енгізуге арналған екі жолы бар қалып және бір батырма,
екі сурет көрсетілген.
JavaScript тілінің браузер терезесі – бұл window бір объектісі. Бұл объект өз кезегінде қалып
күй жолы сияқты, безендірудің бірнеше элементтерінен тұрады. Терезе ішіне HTML құжатын
орналастыруымызға болады (немесе қандай да бір басқа типті файлды, бірақ та біз HTML
файлдарымен шектеліп отырмыз). Мұндай бет document объектісі ретінде біреу ғана емес. Document
объектісі JavaScript тілінде осы сәттегі жүктелген HTML құжатын көрсетеді. Document объектісі
JavaScript тілінің маңызды объектісінің бірі болып саналады және онымен сіз көп рет қолданасыз.
Document объектісінің қасиетіне мысалы, web – беттің фонының түсін жатқызуға болады.
Примерами объекта HTML объектілерінң мысалы, мысалығы, сілтеме немесе толтырылған қалып.
Келесі суретте объектілер иерархиясы келтірілген:
64.
64
Бұл иерархиядан бізәртүрлі объектілер туралы ақпарат ала алуымыз керек және оны басқара
алуымыз керек. Ол үшін,біз JavaScript тілінде әртүрлі объектілерге қалай рұқсат алу керектігін
білуіміз керек. Көріп отырғанымыздай әрбір иерархиялық құрылымның өз атауы болады. Егер
өзіңіздің HTML бетімізде бірінші суретке шығу үшін иерархия объектісіне бағытталу керек.
Бастағанда ең басыннан бастау керек. Мұндай структураның бірінші объектісі document деп
аталады. Беттегі бірінші сурет images[0] объектісі ретінде көрсетілген. Бұл объектіге біз JavaScript
–ке document.images[0] деп жазу арқылы рұқсат ала аламыз. Егер де, мысалы, қалыптың бірінші
элементіне оқырман қандай текст қалдырғанын білгіңіз келсе, онда біріншіден осы объектіге қалай
рұқсат алу керектігін білу керек. Және де тағы да өзіміздің объектісі иерархиясы басынан
бастаймыз. Elements[0] атаулы объектіге жол көрсетеміз және барлық объектілер атауларын
жазамыз. Текст жазу үшін бірінші жолға рұқсат алу үшін, мынадай тұрде жазуға болады:
document.forms[0].elements[0]
Ал енді оқырман жазған тексті қалай білуге болады? Осы ақпаратқа объектінің қай қасиеті мен
тәсілі рұқсатты бар екенін білу керек, ол үшін JavaScript қандай да бір анықтамасына жүгіну керек
(мысалы, ол Netscape фирмасы ұсынған құжат болуы мүмкін, немесе менің кітабым). Текст енгізуге
арналған жолға сәйкес келетін элемент value қасиетін қабылдайды, және де ол енгізілген текстке
сәйкес келеді. Енді біз іздеген мәнімізді оқи аламыз. Ол үшін JavaScript тілінде мынадай жолды жазу
керек:
name= document.forms[0].elements[0].value;
Алынған жол name айнымалысына кіреді. Ендібіз бұл айнымалымен өзімізге керектей
айналысамыз. Мысалы, alert(«Hi « + name) командасын орындау арқылы, ашылатын терезе құра
аламыз. Нәтижесінде егер оқырман бұл жолға Stefan' сөзін еңізсе, онда alert(«Hi « + name)
командасы бойынша ашылатын терезеден ' Hi Stefan ' сәлемдемесі ашылады.
Егер сіз үлкен беттермен жұмыс жасасаңыз әртүрлі объектілер процедура адрестері
түсініксіз болу мүмкін.
Мысалы, document.forms[3].elements[17] document.forms[2].elements[18] объектілеріне қалай
назар аударуға болады? Біздің мысалдан көруге болады:
<form name=”myForm”>
Name:
<input type=”text” name=”name” value=””><br>
…
Бұл жазу forms[0] объектісі енді тағы да екінші myForm атауына ие болады. Тура осылай
elements[0] орнына сіз name деп жаза аласыз. Мұндай жағдайда
name= document.forms[0].elements[0].value;
Сіз былай жаза аласыз:
name= document.myForm.name.value;
Бұл JavaScript-те көптеген объектілері бар әсіресе үлкен web-беттерді программалауды
жеңілдетеді. JavaScript –те көптеген объектілердің қасиеті тек оқуға ғана жеңіл емес. Сіз оларға
жаңа мәндерді жазуға мүмкіндігіңіз бар. Мысалы, JavaScript құралдарымен сіз еске түсіретін жаңа
жолды жаза аласыз.
Мысалы, JavaScript коды, <input> екінші тэгіндегі onClick қасиеті жазылған:
<form name=”myForm”>
<input type=”text” name=”input” value=”64lab la bla”>
<input type=”button” value=”Write”
onClick=”document.myForm.input.value= ‘Yo!’; “>
65.
65
Берілген мысалдың әрбірдеталін жазып отырғанға мүмкіндік болмай тұр. Жақсы болар еді
егер сіз JavaScript объектілер иерархиясын өзіңіз түсінсеңіз. Қорытындысында кішігірім мысал
жаздым. Мұнда сіз әртүрлі объектілер қалай қолданылатынын көресіз. Скриптің жазылу коды:
<html>
<head>
<title>Objects</title>
<script language=”JavaScript”>
<!—hide
function first() {
// создает выпадающее окно, где размещается
// текст, введенный в поле формы
alert(“The value of the textelement is: “ +
document.myForm.myText.value);
}
function second() {
// данная функция проверяет состояние переключателей
var myString= “The checkbox is “;
// переключатель включен, или нет?
If (document.myForm.myCheckbox.checked) myString+= “checked”
else myString+= “not checked”;
// вывод строки на экран
alert(myString);
}
//
</script>
</head>
<body bgcolor=lightblue>
<form name=”myForm”>
<input type=”text” name=”myText”value=”65lab la bla”>
<input type=”button” name=”button1” value=”Button 1”
onClick=”first()”>
<br>
<input type=”checkbox” name=”myCheckbox”CHECKED>
<input type=”button” name=”button2” value=”Button 2”
onClick=”second()”>
</form>
<p><br><br>
<script language=”JavaScript”>
<!—hide
document.write(“The background color is: “);
document.write(document.bgColor + “<br>”);
document.write(“The text on the second button is: “);
document.write(document.myForm.button2.value);
//
</script>
</body>
</html>
location объектсі. JavaScript –те window және document объектілерінен басқа тағы да бір
маңызды объект – location бар. Бұл объектіге жүктелген HTML-құжаты көрсетілген. Мысалы, егер
сіз http://www.xyz.com/page.html бетін жүктесеңіз, онда location.href мәні осы адреске сәйкес келеді.
Біз үшін аса маңызды болды, location.href –ға өз жаңа мәндеріңізді жаза аласыз. Мысалы,
келтірілген мысалда батырма ағымдағы терезені жаңа бетке ашады.
<form>
<input type=button value=”Yandex”
onClick=”location.href=’http://www.yandex.ru’; “>
</form>
66.
66
§ 2.3 СКРИПТЕРДІҚҰРУ ЖӘНЕ КОЛДАНУ
Меншіктеу операторлары және өрнектер. Басқару конструкциялары.
Шартты операторлар, if … else и elseif конструкциялары. Таңдау операторы, switch
конструкциясы
Өрнектер операциялар (амалдар) таңбаларымен біріктірілген литералдардан, айныма-
лылардан және жақшалардан тұрады. Өрнектерді есептеу нәтижесінде сан (бүтін не нақты), сөз
тіркесі немесе логикалық типте болатын бір ғана мән шығады. Өрнектерде қолданылатын
айнымалылар оған дейін инициалданған болуы керек. Өрнектерді есептеу кезінде анықталмаған
немесе инициалданбаған айнымалылар кездессе қате шығады. JavaScript тілінде анықталмаған
мәнді белгілеу үшін null литералы қолданылады. Егер айнымалы null мәнін меншіктесе, ол
инициалданған болып саналады.
Өрнек операндтардан (мәндер мен айнымалылардан) және операциялар таңбаларынан (+, -, *,
/) тұрады. Мысалы, а*b формуласында а және b операндтар, * таңбасы – көбейту операциясы.
Операциялар унарлық (бірорындық) немесе бинарлық (екіорындық) болып екіге бөлінеді.
Өрнек +А түрінде жазылса, ондағы + – унарлық операцияны белгілейді, ал егер ол А + В түрінде
берілсе, ондағы + – бинарлық операцияның орындалатынын көрсетеді. +А өрнегін есептеу А
операндының мәнін есептеп, оған + операциясын қолдану дегенді білдіреді. Ал А+В өрнегін есептеу
төмендегі әрекеттерден тұрады:
1. А және В мәндері есептеледі.
2. Операция 1-ші қадамда табылған операндтар мәндеріне қолданылады.
Есептелген мәннің типіне қарай өрнек арифметикалық, логикалық және тіркестік типтердің
біріне жатқызылады.
Цикл операторлары. Басқаруды беру операторлары.
Қолданушы анықтайтын функциялар. Функция айнымалылары
Белгілі бір әректтердің қайталанып орындалуын цикл операторларының көмегімен
ұйымдастыруға болатындығы бізге белгілі. JavaScript программалау тілінде циклді
ұйымдастырудың өзіндік ерекшелітері бар.
1. While циклі
Цикл орындалуы: алдымен шарт тексеріледі. Егер ол ақиқат болса, командалар (цикл денесі)
орындалады. Келесі жолы да осы әрекеттер қайталанады, яғни шарт тексеріледі, егер ол ақиқат
болса, цикл орындалады, т.с.с. Кезекті тексеру кезінде шарт жалған болған кезде, цикл жұмысы
аяқталады. Циклда шарт алдын ала тексерілетін болғандықтан, ол бір де бір рет орындалмауы да
мүмкін.
Жалпы жазылу түрі:
while (шарт) команда;
2. For циклі
Төменде for циклының жалпы жазылу түрі мен алдыңғы мысалдың осы команда арқылы
орындалуы көрсетілген.
Жалпы жазылу түрі:
for(цикл басы; шарт; қадамы) команда;
Break және continue командалары
Бұл командалар циклдағы командалардың орындалу реттілігін өзгерту үшін қолданылады.
Continue командасы циклдың онан кейінгі тұрған барлық командаларын аттап өтіп, цикл
параметрінің келесі мәніне көшіреді. Break командасы жалпы цикл орындалуын аяқтап, одан
кейінгі келесі командаларға көшіреді.
Цикл айнымалысын JavaScript тілінде келесі түрде жазуға болады:
for(var i = 100; i; i --) ...
немесе
67.
67
var i;
for(i =100; i; i --) ...
Браузер үшін бұл екеуі де бірдей болады. Келесі цикл құрылымында:
for(басы; шарт; өсуі)
команда;
басы командасы цикл басында бір-ақ рет орындалады. Сондықтан i айнымалысы 100 рет var
сипаттауышы арқылы тексерілмейді.
Келесі ұсыныстар беріледі:
i цикл санауышын функция немесе скрипт басында басқа айнымалылар сипатталаған кезде
сипаттап кету керек;
егер бір санауыш бірнеше циклде пайдаланылатын болса, оны жалпы сипаттау бөлімінде
көрсету қажет;
егер функция құрамында цикл біреу ғана болса, онда for (var i = …,…; …) – түрінде жазған
дұрыс, өйткені i айнымалысы бір-ақ рет кездеседі.
Егер бір digit айнымалысы цикл ішінде пайдаланылып, сыртында кездеспесе, оны циклдың
ішінде локальды айнымалы ретінде сипаттаған дұрыс.
Функцияны сипаттау және шақыру.
Функцияның формальды және нақты аргументтері
Барлық стандартты математикалық функциялар мен жиі қолданылатын тұрақтылар Math -
математикалық объектісінің тәсілдері мен қасиеттері түрінде беріледі.
Math объектісі JavaScript тілінің ішкі объектісі болып табылады. Мысалы, PI тұрақтысын
пайдалану үшін Math.PI түрінде жазу керек. JavaScript тұрақтыларының дәлдігі үтірден кейінгі 15-
цифрды қамтиды. Math функцияларын да тәсіл ретінде пайдаланып, мысалы, синус функциясы -
Math.sin(argument), түрінде жазылады, мұндағы argument функция аргументі болып табылады.
1. Стандартты тұрақтылар
1. Натуралдық логарифм негізі – Е болып жазылады.
Мысалы: Alert(Math.E)
2. 10 санының натуралдық логарифмі – LN10.
мысалы: Alert(Math.LN10)
3. 2 санының натуралдық логарифмі – LN2.
мысалы: Alert(Math.LN2)
4. ПИ саны – PI
мысал: Alert(Math.PI)
5.1/2 санының квадраттық түбірі – SQRT1_2
мысал: Alert(Math.SQRT1_2)
6. 2 санының квадраттық түбірі – SQRT2
мысал: Alert(Math.SQRT2)
Программалауда бір командалар тобын бірнеше рет қайталауға тура келетін жағдайлар жиі
кездеседі. Егер қайталау «бір орында» орындалатын болса — (while, for) циклдар қолданылады. Ал
егер кодтарды программаның әр жерінде қайталау қажет болса – оны тұтынушы функциясы ретінде
жазу керек болады.
Функцияларды сипаттау және пайдалану. Мысалы, егер берілген бүтін санның цифрларының
қанша екенін анықтау керек болса, оны бір рет анықтап алып, одан кейін математикадағы сияқты
F(num) деп жазып, ол функцияның ішкі әрекетін қарастырмай, кодтарын жазбай, нәтижесін
есептеуге болады.
Функциядан кейін орналасқан командалар әдеттегідей орындалады. Соның ішінде F
функциясы кездессе, браузер функция сипаттамасына оралып, оның формальды аргументі num
орнына num1, num2, num3 тәрізді нақты параметрлерді қойып орындап шығады. Негізінде
параметрлерді ауыстыру кезінде браузер F функциясын орындамай тұрып, мынадай меншіктеулер
жасайды:
num = num1; — сонан соң F(numl)орындау;
num = num2; — сонан соң F(num2) орындау;
68.
68
num = num3;— сонан соң F(num3) орындау.
Жалпы функцияны сипаттау былай атқарылады:
function Функция_аты(үтірмен бөлінген формальды аргументтер тізімі)
{
...
функция денесі
...
return (мәні);
}
return командасы программада қолданылатын функция мәндерін анықтайды, ол бірнешеу
болуы да мүмкін, тіпті болмауы да мүмкін. Ол болмаса, функция ешқандай мән бермейді, мұндайда
функцияны өрнектерге енгізуге болмайды. Мысалы, мәні жоқ функцияны меншіктеу командасында
пайдалануға болмайды.
Функцияны шақыру (пайдалану) былай орындалады:
Функция_аты(үтірмен бөлінген нақты аргументтер тізімі)
Нақты аргументтер ретінде тұрақты, айнымалы, өрнек немесе сан қолданылады. F атауын
функцияға дұрыс берілген атау деп айта алмаймыз, мұнда математикадағы сияқты функция бір
әріппен белгіленген. Программалауда бір әріппен емес бір сөзбен белгілеу қалыптасқан, ол функция
әрекетін білдіретін сөз болуы тиіс. Жоғарыда келтірілген мысалда DlinaChisla немесе LenOfNumber
атаулары F атауына қарағанда түсініктірек болар еді. Функция аты шектелмейді, бірақ ол бір сөзден
ғана тұруы тиіс (бос орын болмауы керек). Атау латын әріптері мен цифрлардан тұрады, астын сызу
таңбасын қолдануға болады. Орыс, қазақ әріптерін пайдалануға болмайды. Атаудың алғашқы
символы әріп немесе астын сызу таңбасы болуы керек. Әріптер регистрі бірдей болып
қабылданбайды.
Класстар мен объектілер. Объектілер. Объект: әдістері мен қасиеттері.
Объект және объект экземпляры. Қасиеттер мен әдістерге қол жеткізу.
Браузер объектілері мен оқиғалары
Объект – бұл мәліметтер мен функциялар жиынынан тұратын бірыңғай конструкция немесе
JavaScript терминологиясы бойынша қасиеттер мен тәсілдер жиыны болып табылады.
Функция = тәсіл (метод).
Айнымалы = қасиет (свойства).
Инкапсуляция термині «қара жәшік» ретінде қарастырылатын объектінің ішкі құрылымын
жасыру деген сөз. Объектінің қасиеттері белгілі болып саналады, яғни олар - сырттан қол жеткізуге
болатын айнымалылар. Бірақ бұл функциялар қалай құрылған, олар қандай алгоритммен жұмыс
істейді, ол туралы программалаушыға айтылмайды. Программалаушы немесе объектіні тұтынушы
адам объектінің қосымша ішкі функциялары мен айнымалыларыбар ма, олар қол жеткізуге болатын
қасиеттер мен тәсілдермен қалай байланысқан, ол жағын білмейді.
Объект және объектінің бір данасы (экземпляры)
Мысалы, нақты телевизор – бұл JavaScript терминологиясы бойынша объект емес, ол
объектінің бір данасы (экземпляры). Объект болып зауытта нақты өнім шығаруға арналған
құжаттамалар жинағы саналады. Конвейерден шығып жатқан барлық телевизорлар бейнелерінің
қасиеттеріде оларды басқаратын тәсілдер де бірдей экземпляр болып табылады. Программалауда
да дәл осылай болады. Объект – бұл шаблон, құжаттар жиыны, ал объектінің бір данасы
(экземпляры) оның жұмыстық көшірмесі ғана болып табылады.
Объект интерфейсі және объектінің ішкі құрылымы
Rectangle объектісін қарастырайық. Rectangle объектісі тіктөртбұрыштармен жұмыс істеуге
мүмкіндік береді. Объектінің бір данасын жасау үшін былай жазу керек:
var х = new Rectangle(a,b); // Мұндағы х Rectangle
69.
69
// объектінің бірданасы (экземпляры).
// а мен b тіктөртбұрыш ені мен биіктігі.
// new сөзі бір дана жасау үшін керек.
Объектінің бір данасы жасалған соң, келесі тәсілдер мен қасиеттерді пайдалауға болады:
Қасиеттер: width, height; Тәсілдер square(), perimeter(), radius()
Объект интерфейсі – пайдалануға болатын объектінің айнымалылары мен функциялары
болып табылады.
Объектінің ішкі құрылымы – программалау тілінде объектінің ішкі айнымалылары мен
функцияларын сипаттау.
Скрипт. JavaScript скриптінің жазылуы
Біріншіден естеріңізде болсын, JavaScript бұл HTML емес!Көбінесе біреуі екіншісін ің
версиясы емес пе деген сұрақ жиі қойылады. Жоқ, олай емес. Сонымен қатар JavaScript тілінде
скрипт жаза отырып Сіз HTML тілінің ережелеріне ұқсас көптеген ережелермен жұмыс істейсіз.
JavaScript тіліндегі программа HTML құжатында болмауы керек. Программаның нақты орналасуы
туралы кейінірек қарастырамыз. JavaScript тіліндегі программалар HTML құжаттарында мәтін
ретіде сақталады.Негізгі айырмашылығы HTML тілі қателерге өте бейім. HTML тілі үшін
пробелдердің маңызы жоқ. Сөздер мен абзацтардың арасындағы қалтырылған бос орындардың да
маңызы жоқ. HTML құжатын ұзын бір жол ретінде жазуға да болады. Оның да маңызы жоқ.
JavaScript тілінде тура қарама қарсы жағдай. Онда жариялау формасының шектеуі бар. Кейбір
жағдайда форманы өзгерту жағымсыз қорытындыға әкеп соғады. Бұл сабақтың скриптінің екінші
жолы келесідей болуы керек:
document.write("<FONT COLOR='RED'> Бұл мәтін қызыл түсті </FONT>")
Егер Сіз бұл жолды былай өзгертетін болсаңыз:
document.write("<FONT COLOR='RED'> Бұл мәтін қызыл түсті </FONT> ")
онда қате туралы хабарлма аласыз (біз қатені және оны жөндеуді келесі сабақта
қарастырамыз).
JavaScript -ті редакциялау. Скрипті жазу немесе редактірлеу кезінде скрипт мәтіні шетінде
шектеулердің пайда болмуын қадағалаңыз. Әрқашан скрипті жазу немесе редактрлеу кезінде ені
бойынша шектеуі жоқ редакторді қолданыңыз. Сіз жолды оң жағынан жалғастыруға әрқашан дайын
болуыңыз керек. Егер олай болмаса, Сізде күрделі проблема пайда болуы мүмкін.
JavaScript әріптер регистрін есепке ала ма? Иә.
Скрипті талдауға кері қайту. Жоғарыдан бастайық. Мәтіннің бірінші жолы төмендегідей:
<SCRIPT LANGUAGE="JavaScript">
Бұл жол браузерге төмендегі JavaScript тіліндегі скрипт екенін хабарлайлын HTML коды
болып табылады. Бұл өте қарапайым болып көрінеді. JavaScript тіліндегі барлық скрипттер мына
командадан басталады.
LANGUAGE="JavaScript" туралы қалай? Бұл анықтама шынымен қажет пе? Иә. Скрипттің
басқа түрлері бар ма, мысалы, VBS және LiveScript . LANGUAGE командасын қолдана отырып,
скрипт тілі туралы ақпаратты тура браузерге беруге болады.
Бізде бұл жерде кодтың үш жолы ғана болғандықтан, ең соңына түсейік: </SCRIPT>
Бұл тег кез келген JavaScript –ті аяқтайды. Ерекшеліксіз. Есіңізде болсын скрипт <SCRIPT
LANGUAGE="JavaScript"> тегінен басталып, </SCRIPT> тегімен аяқталады.
Енді тегтің мазмұнды бөлімімен айналысамыз:
document.write("<FONT COLOR='RED'> Бұл мәтін қызыл түсті </FONT>")
Бұл скриптің қарапайымдылығы соншалық, Сіз оның әр бөлімінің не істейтінін таба аласыз.
Бір терминдерді қолдану үшін бұл жолды қарастырып өтейік.
Ең бірінші DOCUMENT ( HTML құжаты) пайда болады. Құжат WRITE командасының
көмегімен өзгертіледі, бұл команданың көмегімен құжатқа бірнәрсе жазыла алады.
Енді кейбір терминдер турал. Құжат (DOCUMENT) «объект» ретінде анықталады. Нүктеден
кейінгі WRITE командасы объектінің әдісі ретінде анықталады. Сондықтан жалпы жағдайда,
скрипт объекті алып (бар бір нәрсені) және оған бірнәрсені жазуды білдіреді. Жақша ішіндегі ол
әдісті жүзеге асыру немесе әдістің объектіге әсер етуі. Жақшаның ішіндегі тырнақшаға
70.
70
алынатынына назар аударыңыз.HTML тілінде тырнақша керек емес, ал JavaScript тілінде олар
керек ,сондықтан оларды қолданыңыз.
Тырнақша ішіндегі мәтін бұл HTML тілінің қарапайым коды. Сізге мәтінді мәтінге қызыл түс
беретін FONT командасы ретінде тану керек. HTML тілінің тырнақшалары біреу екеніне назар
аударыңыз. Олар солай болуы да керек. Егер Сіз екі тырнақша қолдансаңыз, онда JavaScript жолдың
соңы деп қабылдайды, ал Сіз тек объекттке жолдың бөлігін ғана жазасыз. Нәтижесінде қате туралы
хабарлама пайда болады.
Есіңізде болсын: Екі тырнақшаның ортасында бір тырнақшаны қолданыңыз.
Сонымен, шынында да JavaScript мәтінді қызыл түске бояй ма? Жоқ. Оны ол үшін HTML
істейді. Ал JavaScript-тің бар істегені ол кодты бетке жазды.
Тапсырма
Скрипті қызыл және көгілдір екі жол жазатындай етіп өзгертіңдер:
Бұл мәтін қызыл түсті
Бұл мәтін көгілдір түсті
Жауап:
<SCRIPT LANGUAGE="JavaScript">
document.write("<FONT COLOR='RED'> Бұл мәтін қызыл түсті
</FONT><BR>")
document.write("<FONT COLOR='BLUE'> Бұл мәтін көгілдір түсті
</FONT>")
</SCRIPT>
Қате туралы хабарлама
JavaScript туралы кітаптарда қандай тақырып мүлдем жоқ екенін білесіз бе? Қате туралы
хабарлама туралы тақырыптар. Басынан бастап соңын дейін қате болмайды деп жорамалданған.
Нақтылыққа хош келдіңіздер.
Егер де Сіз скрипті жазып және өзіңіздің Web бетіңізге орналастырмақ болған болсаңыз, онда
Сіз «көңіл көтеруге» жақын біраз «қуанышты» білесіз. Сіз бәрі орынында деп ойлап болмай-ақ бәрі
бұзылады! Мынадай пайда блады:
Бұл сабақ қате туралы хабарлама шыққанда не істеу керектігін үйретуге арналған. Қалыпты
түрде скрипт жазушы адам мыңдаған қате туралы хабарламалармен кездеседі. Егер Сіз скрипт
жазып бастаған болсаңыз, онда Сіз міндетті түрде қате туралы хабарламамен кездесесіз.
Ескерту! MSIE (Internet Explorer) мен Netscape Navigator –дың соңғы версияларында, Сіз
жоғарыда көрсетілген терезені ала аласыз, қатені хабарлаудың жаңа тиімді әдістері пайда болды.
Егер Сіз MSIE қолданған болсаңыз,қате туралы хабарлама үшбұрыштың ішінде сол жақ
бұрышта пайда болады. Үшбұрыштың ішінде леп белгісі болады. Сондай –ақ бетте қате бары
туралы мәтін болады. Үшбұрышта тышқанмен шерту арқылы осы сабақта талқыланатын қате
туралы хабарлараны аламыз. Егер Сіз үшбұрышты шертпей қате туралы хабарма алғыңыз келсе,
онда Tools негізгі мәзіріндегі Internet Options пункт астын таңдаңыз. Осы пункт астынан Advanced
закладкасын шертіп және жолға қарама –қарсы келесі белгілеуді ерекшелеңіз: «Display a notification
about every script error».
Сіздің жүйеңіздің конфигурациясына байланысты, Сіз қте туралы хабарламаны бірден ала
аласыз. Қате туралы хабарламаны алу үшін «Details» батырмасын басу керектігін ескеріңіз.
Егер Сіз Netscape Navigator –дың соңғы версияларымен жұмыс істейтін блсаңыз , онда
инструкцияны дәрежелік жолдан ала аласыз. Егер қате бар болса, онда Сізден JavaScript – ті басып
шығаруды сұрайды: адрестік жолда (location bar). Сондан кейін Сіз қате мен ол туралы мәтінді
аласыз.
Қате туралы хабарлама
Негізінен қате туралы хабарлама екі түрде болады: синтакстік қате және орындалу уақытының
қателері (семантикалық). Синтаксистік қателер бірнәрсені қате жазғаныңызды немесе JavaScript –
тің дұрыс конфигурацияламағанын білдіреді. Орындалу уақытының қателері Сіздің
71.
71
программаңыздың дұрыс емескоманда тудырғанын білдіреді. Кез келген жағдайда себеп біреу ғана
. Бір жерде бір нәрсе шатастырылған.
Қазіргі кезде қатені түзетуге арналған программалар бар. Түзету процессі жөндеу деп аталады
(«debugging»), бірақ бәрін қолмен де түзетуге де болады, бұл бір қарағанға жеңіл.
Қатені түзету
Қатені түзетудің ең жеңіл түрі оны жібермеу болып табылады. Шындығында ол істеуге
қарағанда, айтуға ғана жеңіл. Жолдың еніне шектеу қоймайтын редактормен жұмыс ісиеу арқылы
Сіз қате туралы хабарламаның санын азайта аласыз. Тағы бір ереже, JavaScript- тің әр командасы өз
жолында жазылуы тиіс. Жолды екіге бөлудің қажеті жоқ. Шындығында бөлу қатенің көбеюіне
әкеп соғады. Сіз жаңа тілід үйренуде міндетті түрде қате жіберетін боларсыз, сондықтан қателерді
қлай жою керектігін қарастырайық.
JavaScript тілінің қатені хабарлауының жақсы қасиеті ол қай жердегі қандай мәселе қате
тудырып тұрғанын айтатындығы. Жоғарыда келтірілген қате туралы хабарламаны тағы бір рет
қарастырыңыздар. Ол скрипттің дұрыс жазылмағаны туралы синаксистік қате және қате 29 жолда
орналасқан.Сондай – ақ , қате туралы хбрлама мәселелік аймақты нұсқайды. Егер HTML – де де
жағдай осындай болса жақсы болар еді.
Қате жолы
Қате туралы хабарлмаада жол нөмірі нұсқалған болса, онда ол жол скрипттің басынан бастап
емес, HTML құжатының басынан басталып саналады. Мысалы, төмендегі құжаттың қатесі 9- жолда
. Бұл синтаксистік қате , себебі команда басталған жолында аяқталған жоқ.
<HTML>
<HEAD>
<TITLE> JavaScript тілінің №2 сабағы </TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=”JavaScript”>
document.write(“ Бетүшін мәтін “
)
</SCRIPT>
</BODY>
</HTML>
Неліктен қате 9 жолда? Себебісіз HTML құжатыныңбасынан бастапсанайсыз. Төменде сол құжат тағы
бір рет келтірілген, бұл жолы жолдар нөмірленген.
(line 1)<HTML>
(line 2)<HEAD>
(line 3)<TITLE> JavaScript тілінің №2 сабағы </TITLE>
(line 4)</HEAD>
(line 5)
(line 6)<BODY>
(line 7)
(line 8)<SCRIPT LANGUAGE=”JavaScript”>
(line 9)document.write(“Бетүшін мәтін “
(line 10))
(line 11)
(line 12)</SCRIPT>
(line 13)
(line 14)</BODY>
(line 15)</HTML>
Жолды санағанда бос жолдарды да санайтындығыңызды ескеріңіз.
Енді не? Сіз қате бар жолда тұрсаңыз, не істеу керек екенін шешуіңіз керек. Көптеген
жағдайда қате синтксистік болады, жол ертерек бөлінген немесе бірнәрсе дұрыс жазылмаған немесе
бір тырнақшаның орнына екі тырнақша жазып қойдыңыз.
72.
72
Егер қате орындалууақытына баланысты болса, қате туралы хабарлама орыдалмайтын қатеге
нұсқайды. Мысалы, Сіз батырманы терезе шақыратын командамен шақырдыңыз.
Көпсанды қателер .
Қате туралы шыққан бірнеше хабарлама міндетті түрде қате сонша деген сөз емес. JavaScript
тілі жоғарғы дәрежедегі логикалық тіл, ол барлық нәрселер сызықты түрде болғанын қалайды. Ұзақ
скриптта Сізде 10 қате бар деп айталақ. Қате туралы хабарламалар шыққандағы, ең біріншісі ең
соңғысы болып табылады. Ең соңғысынан бастамаңыз. Себебі оның болмауы да мүмкін. Бірінші
қате қалғандарын тудыруы мүмкін. Сондықтан, қателерді HTML құжатының басынан бастап
төменге қарай жөндеген жөн.
Қателерді бір реттен түзетіңіз және әр түзетуден кейін скриптті жауып отырыңыз. Басында
Сізде 20 немесе одан да көп болуы мүмкін, ал 1 немесе 2 ғана түзету жеткілікті.
Бір нәрсе анықталмаған. Бұл өте кең ауқымды. Оларскрипте бір нәрсе дұрыс жұмыс істемей
тұрғанын білдіретін орындалу уақытының қателері. Біріншіден, командалар уақытынан бұрын жаңа
жолға бөлініп кетпегенін қарау үшін скрипт мәтінін тексеріп көру керек. Егер солай болған
жағдайда программа мәтініп бөліктеп алып тастаңыз. Алынып тасталған мәтінді әрқашан қайтаруға
болады. Жаңылыс жазу пайда болады. Мәселе жаңылыс жазуда емес екеніне мән беріңіз. Жаңылыс
жазу күтілгеннен көп кездеседі.
Қате туралы қазір аз ғана айтуға болады. Жоғарыда келтірілген ескерулерден пайда болған
барлық қатенің 99% жоюға болады. Есіңізде болсын қате туралы хабарлама алу ол плюс. Қате бар
болғанда бірақ хабарлама болмаса қате қайда түсініксіз бос бет аласыз. Егер дұрыс түсінсеңіз қате
туралы хабарлама өте пайдалы.
Тапсырма
Төменде прогонкасы екі қате туралы хабарлама беретін беретін скрипт мәтіні берілген. Сіздің
міндетіңіз скрипт қатесіз жұмыс істейтіндей қатені түзету. Сіз барлық командаларды білмеуіңіз
мүмкін, бірақ бұл жағдайда ол аса қажет емес.
Егер скрипт дұрыс өңдесе, онда сіз бетте ағымдағы датаны алуыңыз керек. Нұсқау: Скриптті
жапқан кезде, бір қате туралы хабарлама алуыңыз мүмкін. Екінші хабарлама бірінші қатені
түзеткенде ғана пайда болады.
<SCRIPT LANGUAGE=»JavaScript»>
…x
dothis = new Date()
month = dothis.getMonth()
month = (month * 1) + 1
day = dothis.getDate()
year = dothis.getFullYear()
document.wrte(“ “,month,”/”,day,”/”,year,” “)
</SCRIPT>
Скрипт ағымдағы датаны шығарады. Егер датаны алған болсаңыз онда Сіз екі қатені
түзеттіңіз. Біріншісі «...x» өрнегі анықталмаған деп ұйғарады. Бұл қатені жөндеудің ең жылдам
жолы – жай келтірілген мәтінді өшіріп тастау. Ал скриптті қайта жіберген кезде «document.wrte»
өрнегі функция емес деген хабарлама аласыз. Себебі «wrіte» сөзінің қате жазылуы.
Күн мен уақыт
JavaScript тілінде скрипті жазудың жақсы жағы бұл тілде бар және оларды алып бетке қоя
салуға болатын көптеген алдын ала өңдемелердің бар болуы. Бастапқы екі сабақтың скриптерін
өолдана аламыз. Бұл сабақта біз жеті жаңа әдістер туралы өтеміз: getDay(), getDate(), getMonth(),
getFullYear(), getHours(), getMinutes(), and getSeconds(). Бұл функциялардың әр қайсысы бар және
Сіздің Web бетіңізге қойыла алады. Бұлар функция ғана екені басты мәселе.Оларға олар әсер ететін
объект қажет, құжат- объект жарамайды, сондықтан оларды құру керек.
Скрипт
<SCRIPT LANGUAGE=»JavaScript»>
//Скрипт Сіздің сайтқа кірген күніңіз бенуақытыңызды жазады
RightNow= newDate();
document.write(“Текущая дата: “ + (RightNow.getMonth()+1)+
«-« + RightNow.getDate() + «-« + RightNow.getFullYear() +
73.
73
«. Вы попалина эту Web страницу точно в: «
+ RightNow.getHours() +
“:” + RightNow.getMinutes() + “ и “ + RightNow.getSeconds() +
“ секунд”)
</SCRIPT>
Негізінде document.write командасы толығымен бір бетте болуы керек. Ол барлық команданы
бір экранда көру үшін бөліктеліп жазылған.
Скриптті өңдеудің әсері. Сайтқа кірген күн мен уақыт шығады.
Скриптті талдау . Скрипттің өлшемінен қорықпаңыз. Барлығы жақын арада жөнделеді.
Скрипт формасын енгізіңіз, бір жол экраннан кетіп қалады. Бұл форма сақталу керек. Жолды
бөлуден қате туындауы мүмкін.
«//»символдары нені білдіреді? Курста алдыға жылжыған сайын жаңа командалар пайда
болады. Бұл солардың бірі. Ол скриптегі коментариді білдіреді.Ол символдан кейінгі мәтін
скрипттің жұмысы кезінде қолданылмайды. Сіз қанша болса да коментарий жазуыңызға болады ,
бірақ ол «//»символдарынан басталуы керек.
Күн мен уақыт әдістері. Егер Сіз жоғарыда көрсетілген скритқа тағы бір рет қарасаңыз, оның
функционалдығы бетте күнмен уақыттың жазылуынан құрылатынын көресіз. Қосымша сөздер
қайда қарау керектігін түсіндіреді. Әр позиция «getSomething()» әдісімен құрылады. Әдіс атын
жазуда әріптер регистрі маңызды екені есіңізде болсын. «g» әріпі жодық, ал Сіз алатын сан атының
бірінші әріпі жазылымдық. Біріншіден,барлық позициялар сандық екені есіңізде болсын.Олар
садарды қайтарады. Тіпті апта күндерін білдіретін getDay() әдісі де 1 ден 7 ге дейінгі сандарды
қайтарады.
Скрипт шақыратын бірінші ай әдісінен бастайық. Жоғрыда айтылғандай «getMonth()» бұл
әдіс.Осыны айтысымен «getMonth()» қай объектіге тиісті екенін ойлауымыз керек. (Бірінші сабақты
естеріңізге түсіріңіздер, Әдіс объектіге әсер етеді.)
Скрипттен «getSomething()»функциясы «document» объектісінің әдісі сияқты. Ол олай емес.
«document» объектісінің әдісі «write» болып табылады. «getMonth()»функциясы шындығында Date
объектінің әдісі. Қайта скриптке қарайық . «Date» типінің объектісі келесі командамен құрылған:
RightNow = new Date();
Объектіні Zork немесе Fred деп атауға болушы еді. Бұл жағдайдағы бастысы ат оригинальді
болуы керек, JavaScript тілінде де программада да басқа мағынадағы бұндай кілттік сөз болмауы
керек. Бұл форматты әрқашан дата мен уақытты қолданғанда қолданыңыз.
Мүмкін Сізге бұл күрделі көрінетін шығар, мүмкін new Date = RightNow дұрыс шығар,бірақ
ол олай емес. Ойанбастан сүйенуге арналған бірмәнді анықталған ережелер бар.
Команда RightNow айнымалысы Date()типінің немесе Date()құрылымының объектісі екнін
білдіреді. Туылған күні жаңа болуы керек. Сөйтіп, Сіз бетке әр кірген сайын немесе бет жүктелген
сайын жаңа уақыт аласыз. Жаңа командасыз уақыт статистикалық болып қалушы еді. Сонымен
қатар команда соңында нүктелі үтір болатынын есіңізде сақтаңыз. Ол команданың соңын білдіреді,
яғни JavaScript – тің командасы аяқталды. Ол белгі болмаса браузер команда келесі жолда
жалғасады деп түсінеді. Ол қате.
Ура! Бізде «getMonth()» әдісі әсер ететін объект бар. Біз ай бетке шықсын дейміз, сондықтан
бізге document.write()командасы қажет. Сонымен қатар жақша ішіндегінің бетке шығатынын
білеміз, сондықтан бәрін жинақтаймыз:
Бірінші <SCRIPT LANGUAGE=»JavaScript»> жолын орналастыру керек .
Содан кейін скрипттің не істейтіні туралы комментариді орналастырамыз.
Объектіні getMonth() функциясын қолданбас бұрын құруымыз керек, сәйкес команданы
қоямыз және нүктелі үтірді де ұмытпаймыз.
Енді document.write командасын жазамыз.
document.write командасында бірінші сабақ форматына сүйенеміз.
Бетте жазылатын мәтін екі тырнақшаның ішінде болуы керек. Бір тырнақша HTML
тэгінде қолданылады.
Жаңа ереже: Команда мен мәтіннің сәйкестенуі арасында плюс (+) белгісін қажет етеді.
Объект пен әдіс бөлетін нүкте арқылы жазылады, яғни келесідей: RightNow.getMonth().
74.
74
Жаңа ереже: RightNow.getMonth() бұл жазылатын мәтін емес, ол айды беретін команда ,
сондықтан оны жазғанда тырнақша қажет емес.
getMonth функциясымен жұмыс нәтижесіне 1 қосылғанын ескеріңіз:
(RightNow.getMonth()+1). Себебі , бірінші айдың нөмірі нөлдік, сондықтан дұрыс реттік
нөмір алу үшін бірді қосқан жөн.
</SCRIPT> тэгімен аяқтаңыз
Біздің алатынымыз:
<SCRIPT LANGUAGE=»JavaScript»>
// Бұл скрипт ағымдағы айдың реттік санын көрсетеді
RightNow = new Date();
document.write(“Бұл ай: “ + (RightNow.getMonth()+1))
</SCRIPT>
Скрипттің толық мәтініне тағы бір рет қараңыз. Мәтіннің ұзақ жолы енді түсініксіз болып
көрінбейді.Бұл жай «RightNow» объектісі, оның соңынан «getSomething()» әдісі болады. Үлкен
скриптте олар тырнақшаға алынған тасымалдау белгісімен бөлінген. Тасымалдау белгісін жазу кеек
болған соң оны тырнақшаға алу керек екендігі есіңізде болсын. Сонан соң барлық бөліктер плюс
(+) белгісімен біріктірілген.
Пробелдерді қосып. Бұл Сіз білу керек трюк. Плюс белгісіне дейін де одан кейін де неше
пробел болса да ол бетте жазылмайды.Сондықтан егер Сізге бос орын қажет болса оны мәтінмен
бірге жазу керек. Мысал: « Бұл дата «
Жабатын тырнақша алдындағы пробелдерге қараңыз, бетте сонша бос орын жазылып шығады.
Есіңізде болсын бұл HTML емес. Бұнда побелдерге қатысты өз ережелері бар .
Ұзақ жолды орналастыру. Біз барлығын аяғына дейін аяқтамаймыз , себебі бөліктерін өзіңіз
де жасай алуыңыз мүмкін. Біз тек толық датаны ғана жасаймыз. Ол келесі түрде болады:
document.write(«Ағымдағыдата: « + (RightNow.getMonth()+1)+
«-« + RightNow.getDate() + «-« + RightNow.getFullYear() + «.
Сіз бетке кірдіңіз: « + RightNow.getHours() +
“:” + RightNow.getMinutes() + “ and “ + RightNow.getSeconds() +
“ секунд”)
1. Үзіліссіздік үшін соңына пробел қойып, “ Ағымдағы датадан: “ бастаймыз .
2. Келесісі плюс белгісі.
3. (RightNow.getMonth()+1) функциясы тырнақшасыз жазылады, себебі біз бетте функция
атының жазылғанын қаламаймыз, бізге функция қайтаратын сан керек.
4. Тағы бір плюс белгісі.
5. Енді тырнақша ішіндегі тире, ол бір санды екіншісінен ажыратады. Пробел жоқ, себебі
сандар бірінен соңбірі орналасуы керек.
6. Плюс белгісі.
7. Енді күннің нөмірін алу үшін RightNow.getDate() функциясын тырнақшасыз қоямыз.
8. Плюс белгісі.
9. Бетте дұрыс жазылуы үшін тағы бір тире.
10. Плюс белгісі.
11. Жыл нөмірін қайтару үшін тағы бір RightNow.getFullYear()функциясы.
Танымалы қиындықтар: Айлардың саналуы нөлден басталатындықтан, getMonth()
функциясы бірге кем ай нөмірін қайтаратынын тағы бір еске салып өтейік.Қызық бірақ ол солай.
Бұндай жағдайда не істеу керек?Әрине, 1 ді қосу керек! Ол мынадай түрде болады:
<SCRIPT LANGUAGE=”JavaScript”>
RightNow = new Date();
var mpo = RightNow.getMonth();
var mpo1 = mpo + 1;
document.write(“Ағымдағы ай нөмірі “ +mpo1+ “”);
</SCRIPT>
Сіздің алатыныңыз:
Ағымдғы ай нөмірі X,
Мұндағы Х – ағымдғы ай нөмірі.
75.
75
Тапсырма
Әртүрлі иілген сызықтарменайды жазатын скрипт жазыңыз. Қарсы алатын жасыл мәтін
жазыңыз. Өз скрипттіңізді комментациялаңыз.
Жауап:
Жаттығу тапсырмасын орындайтын скрипт:
<SCRIPT LANGUAGE=»JavaScript»>
//Бұл скрипт Joe Burns’пен Ph.D жазылған .
RightNow = new Date();
document.write(“<FONT COLOR=’green’> Менің бетіме хош келдіңіз! Сіз бетке
кірдіңіз:</FONT> “ + (RightNow.getMonth()+1)+ “/” + RightNow.getDate() + “/” +
RightNow.getFullYear() )
</SCRIPT>
Бір тырнақшаны қолданатын, жасыл түске боялатын мәтіні бар FONT тэгі жазылғанын
ескеріңіз. Датаны жазатын бскрипт бөлігі көшіріліп алынып мәтінге қойылған, содан соң сызықтар
слэштерге алмастырылған.
§ 2.4 PHP ТІЛІНІҢ НЕГІЗГІ ҚАСИЕТТЕРІ
РНР дегеніміз не?
РНР-бұл Web –серверге жіберілетін скриптердің көмегімен Web-беттерінің динамикалық
генерациясына қажетті бағдарламалау тілі. Сіз бетті РНР және HTML-дің көмегімен ашасыз.
Сайтты пайдаланушы бетті ашқанда, сервер html-код қосылған РНР операторларын орындайды
және нәтижені пайдаланушының браузеріне жібереді. Бұл әрекет дәл осылай ASP және Cold Fusion-
ның көмегімен жасалады. Дегенмен ASP және Cold Fusionға қарағанда, РНР ашық бастапқы кодты
өнім болып табылады және платформалы тәуелсіз. РНР Windows NT және Unix-тің көптеген
версияларында жұмыс жасайды. Ол Аpache –дегі модуль ретінде жіберіле береді. Егер жіберілу
Apache модулі түрінде болса РНР оңай және жылдам жұмыс жасайды. Бұл кезде процессті жасауға
байланысты туындайтын қосымша шығындар болмайды. Сондықтан нәтижесі тез шығады және
сервердегі сақтаудағы шығынды азайтатын mod _perl-ді орнатудың қажеттілігі болмайды.
Сіздің құжат бетіңіздегі әртүрлі операциялардан басқа сіз РНР көмегімен НТТР-
тақырыптарды қалыптастырып HTTP орната аласыз. Сонымен қатар аутенфификацияны басқарып
пайдаланушыны басқа бетке бағыттай аласыз. РНР берілгендер қорына енуге үлкен мүмкіндіктер
ашады. Бұл сізге PDF құжаттарды инерациялаудан, ХМL-дегі грамматикалық талдауды жасауға
мүмкіндік береді.
РНР операторлары сіздің бетіңізге Web-беттерді қойып береді, сондықтан арнайы ортада
жүзеге асырудың қажеттілігі туындамайды. Сіз РНР-кодының блогын <?php тегінен бастап, оны ?>
тегімен аяқтайсыз. Бұл тегтердің арасындағылардың барлығы РНР код ретінде
интерпритацияланады.
РНР тілінің синтаксисі Си және Рerl синтаксисіне ұқсас келеді сіз ауспалыларды оларды
пайдаланудан бұрын жарияламауыңыз керек. Массивтермен Хэмтер оңай жүзеге асырылады.
Дегенмен РНР Apache құрылған жағдайда бәрінен жылдам жұмыс жасайды. РНР Web –
сайтында оныMicrosoft ІІS және Netscape Enterprise Server орналастырудың реті бар. Егер сізде РНР
ді орнатуға бағдарламалық қамтамасыз етудің көшірмесі жоқ болса, оны сізге ресми Web –сайттан
ала аласыз. Ол жерден сіз РНР дің барлық ерекшелігі мен қызмет бейнеленген түсіндірілге н
жетекшілікті таба аласыз.
РНР дің пайда болуы және даму тарихы
РНР дің тарихы 1995 жылы Расмус Лердорф (Rasmys Lerdorf) Perl тіліндегі қарапайым
қосымшаны ойлап табуымен басталады. Ол қосымша вебсайтта пайдаланушылардың оның
резюмесін сараптайды. Содан бұл қосымшамен бірнеше адам пайдаланғанда оны алғысы
76.
76
келетіндердің саны өсетүсті. Ледорф өзінің жаңалығын Personal Home Page Tools версия 1 деп
аталады және оныеркін таратуға жібереді. Осыкезеңнен бастап РНР-дің танымалдылығы арта түсті.
Ылғи кездесетін жәйт сияқты оны өңдеу мен толықтыру қажет болды. Оны жүзеге асыру үшін
Расмус Си-ға жазылған пакеттің жаңа версиясын жасап шығаруға осылайша құрал жұмыстың атауға
ие болады РНР /Fl /Personal Home Рage /Forms Interpreter/ ары қарай ол РНР 2 деген атаумен де
белгілі болады. Бұл версия қазіргі уақытта осы күнгі РНР-ге ұқсас. Оның синтаксисі және Perl тілі
стилінде ауыспалы атау алуы, болатын формаларды автоматты интерпетациялауға берілгендермен
интеграциясына, және РНР операторларын html код беттерге орналастыруға мүмкіндігі болатын.
Сонымен қоса бұның барлығы қате жылдам жұмыс жасайтын болды. Өйткені РНР Apаche серверіне
компилирленген еді. 1997 жылы РНР 50,000 - дай доменде қолданылады.
Дәл осы жылы 1997 де РНР жобасына Зив Сураски мен Энди Гутманс (Andi Gytmans)
қосылды. Олар Израил университеттерінің бірінде студент болып жүріп, РНР ді коммерциялық
университеттік жобаға пайдалануға тырысты. Осы жерде олар көптеген қиындықтармен, бұл
технологияның шектеулі екеніне кездесуге тура келді. Яғни Энди мен Зив РНР 2-нің алғашқы кодын
үйрене отырып оған өңдеудің, әсіресе тілдің синтаксисіне қайта өңдеу қажет деген тұжырымға
келді. Бірнеше ай көлемінде олар бұл тапсырманы кереметтей орындай білді. Оның үстіне бұл
жұмыс оларға университеттің оқу жүктемесі ретінде сыналды.
Жұмысты бітірген Зив пен Энди Расмуспен байланысты. Ол РНР дегі барлық өзгерістерді
қуана қабылдады. Осы кезеңнен бастап РНР технологиясын дамытумен айналысатын РНР Group
топтары пайдаболады. Бірлескен әрекет нәтижесінде алынған өнім 1998 жылы РНР 3 деген атаумен
жарық көрді.
Бұл жердегі РНР 3-тің басты ерекшелігі ядролық кеңеюіне мүмкіндік туды. Бұл
арнайыландырылған модульді тудыратын РНР - дің әржақты өңдеуіне әкелді. Олардың үлесі РНР
үлкен көлемдегі берілгендер қоры мен хаттамалармен жұмыс жасауға мүмкіндік тудырды. 1998
жылы РНР ді қолданушылардың саны 10000 жетті. Ал РНР интернет серверінің 10 пайыздай
шамасына орнатылды. Баспаларда 20–дан астам мақала мен 2 кітап РНР жайында жарияланды.
РНР 3-тің жарық көргеннен соң Энди Тутамано және Зив Сурски РНР -тің ядросын өңдеуге
кірісті. Ең бірінші кезектегі мәселе өндірісті жоғарылатуды шешу керек еді. Zend Engine деп
аталатын жақ қозғалыс бұл тапсырманы нәтижелі орындады және 1999 жылы пайда болды.
РНР 4 бұл қозғалыста жұмыс жасаушы ретінде 2000 жылы жарыққа шықты. Өндірісті
жоғарылатуда қосымша ретінде РНР 4 тің мүмкіндіктері зор еді. РНР 4-тің шығуымен ол интернет
доменінің 20 пайыздан көбінде қолданыла бастады.
2000-2004 жылдар арасында 4 версияны жұмсарту үшін белсенді жұмыстар жалғасты.
Шамамен сол кезден бастап ақ РНР Group жаңа версияның мүмкіндігін ойластыруға кірісті. Бірінші
кезекте тілдің объектілік мүмкіндіктерін күшейту шешілді. Бұл оның жүзеге асыру үшін ірі
жобаларды пайдалануға мүмкіндік берді. 5-ші версияны жарыққа шығару үшін қосымша уақыт
бөлінді. Оған көптеген мамандар қатысты олардың ішінен Стерлинг Хьюза және Маркус Бергерді
атап өткен жөн болар.
Ақыры 2004 жылдың шілдесінде РНР 5 ресми түрде жарыққа шығады. Бірінші кезекте
жоспарланғандай өңдеуде объектілермен жұмысты барлық механизм жұмылдырылды. Егер
алдыңғы версияларда РНР –дегі объектілік-жобалаушылық бағдарламалау минимальды деңгейде
мүмкін болатын болса, ал РНР 5 объектілік бағдарламалауды жүзеге асыруда көптеген
потенциалдарға ие. Онымен қоса РНР ХМL мен жұмыс жасауда бағалы кеңейтулермен,
берілгендердің әртүрлі қайнар көзіне байыды.
РНР 4-дегі ХМL мен жұмыс жасауға арналған барлық негізгі кітапқаналар күрделі өңдеуге
ұшырады. Мынадай танымал кеңйтілер SAX, DOM, және XSLT қазір libxml2-нің құрал-сайманын
пайдаланады. Сонымен қатар тағы да жаңа екі кеңейтулер қосылды-SimpleXML және SOAP.
Somple XML XML- берілгендермен жұмысты айтарлықтай оңайлатады. Бұдан алдын РНР-да
ХМL мен жұмыс бұншалықты қарапайым болмаған еді.
SOAP -тың кеңеюі РНР да ХМL –хабарламаның көмегімен басқа қосымшалармен ақпарат
ауысатын сценарий құрға мүмкіндік береді. Мысалы НТТР. РНР қосымшалы қазіргі таңдағы
танымал веб-сервистермен интеграциялауға мүмкіндік туындайды.
РНР 5 My SQL (My SQL Improved) жаңа кеңeйтулер Му SQL – сервер версиясымен 4.1.2 және
жоғарылармен жұмыс жасауға арналған. Му SQL - ға тек қана процедуралық емес сонымен қатар
77.
77
объекті жобалаушылық интерфейсжүзеге асады. Бұл модульдің қосымша мүмкіндіктері SSL-ді,
транзакцияны бақылауды қосады.
SQLite–тің кеңеюі мәліметтерді кәдімгі файлдарда сатайтын қоcымшаны құрастыруға
мүмкіндік береді. Ол SQL интерфейсін пайдалануға мүмкінік тудырады. SQLite – нің маңызды
ыңғайлылығы – пайдаланылу қарапайымдылығы. SQLite процедуралықпен қатар мәлiметтермен
жұмыс жаcау үшін мықты объектілік - жобалаушылық мүмкіндіктері бар. SQLite-нің басқа
ерекшеліктері –жоғары жылдамдық, басқарудағы күрделі механизмдердің жоқ болуы және оңай
тізгіштік. Көптеген эксперттер РНР -нің бұл кеңейюінің үлкен танымалдылыққа ие болатындығын
жоспарлап отыр.
РНР 5-тің басқа кеңейтілуі өзіне төмендегілерді қосады.
Tidy –HTML-құжаттарды сараптау және түзету үшін.
Perl - Perl сценарийлерді пайдалану.
SPL – кластармен интерфейстердің стандарты жиынтығын анықтайтын ZE2 –нің кеңеюі.
-РDО -PHP-нің мәліметтеріне әмбебап интерфейс ұсынады.
-PІMP-GD модульінің орнына келген, графикамен жұмыс жасауға арналған жаңа
кітапхана.
Бұдан басқа РНР 5-те есте сақтаудың әлдеқайда жылдам диспетчері пайдаланылады.
-РНР 5 REAR құрылымын нақты жүзеге асыруға керекті қасиеттермен толықтырылған.
PHP скрипті әрқашан <?php басталып, ?> аяқталады. Сценарий <body></body> секторында
орнатылады. PHP HTML құжатқа салынып, кеңейтуі .php болып қала береді.
echo операторына мысал:
<html>
<head>
<title>Сәлем</title>
</head>
<body>
<?php echo "Сәлем, Әлем!"; ?>
</body>
</html>
PHP-де браузер арқылы мәтінді экранға шығарудың бірнеше жолдары бар. Бірінші —
echo операторы арқылы, екінші — print операторы көмегімен және үшінші —print_r() функциясын
қолдану арқылы.
<?php
$city = "Астана";
print_r($city);
?>
Айнымалылардың мәнілерін немесе әр түрлі мәнілерді және айнымалыларды қосу үшін “.”
операторы қолданылады. Конкатенация операторымен мысал:
<?php
$t = "Сәлем!";
$t2 = "... мен студентпін!";
echo $t . " " . $t2;
?>
Тырнақша ішіндегі “ ” бос орын (пробел) екі сөйлемді бір қатарға қосқанда, солардың
арасындағы бос орынды білдіреді.
Ал әр команда қатарының соңында қойылған (;) үтір-нүкте командаларды бір-бірінен ажырату
үшін қолданылады.
PHP түсініктемелер(комментарийлер)
Сызықтық түсініктемелер
// Түсініктеме мәтіні
Түсініктемелер уеб бетте оқырмандарға көрінбейді, түсініктеме бағдарламашылар кодты
анығырақ түсінуі үшін қолданылады.
Блоктық түсініктемелер
/* Егерде түсініктеме бір қатарға сыймай қалса, блоктық түсініктеме қолданылады. */
78.
78
Айнымалалар
Айнымалылар дегеніміз белгілібір мәліметті сақтайды. Мысалы: мәтіндік мәні, сан немесе
массив. Айнымалы аты PHP тілінде латын графикасындағы әріптер, сандар және символдар
болуына болады.
$my_exercise;
$exercise5;
$1_exercise;
Айнымалыларға мән беру арқылы оларды жасай алмаймыз. Мысалы:
<?php
$t = "Жаттығу";
$a = 231;
$d = -98;
?>
Айнымалы $t “Жаттығу” мәтінін өзіне алып тұр. Ал одан өзгеше сандық жазылған айнымалы
ешқандай тырнақшасыз қолданып тұр. Айнымалы мәнін өзгертуге болады:
<?php
$city = "Алматы";
$city = "Ақтау";
?>
Мынадай қылсақ та болады:
<?php
$city = "Алматы";
$city2 = "Ақтау";
$my_city = $city2;
?>
$my_city айнымалысына демек, “Ақтау” мәнісі қолданылады.
Операторлар
Оператор деп белгілі бір мәні қайтаратын функция немесе басқа да консрукцияларды айтуға
болады. Мысалға алатын болсақ, мәтінді айнымалыға тіркеген мәніні қайтарған print() және
echo() функцияларын айтуға болады.
Арифметикалық операторлар
Төмендегі кестеде b=4 болады:
Оператор Анықтама Мысал Нәтиже
+ Қосу a=b+1 a=5
- Алу a=b-2 а=2
* Көбейту a=b*3 a=12
/ Бөлу a=b/2 a=2
% Қалдық a=b%3 a=1
++ Арттыру a=++b a=5
-- Кемейту a=--b a=3
Тіркеу операторлар
Төмендегі кестеде x=6, y=4 болады
Оператор Мысалы Екінші түрі Нәтиже
= x=y x=6
+= x+=y x=x+y x=18
-= x-=y x=x-y x=6
79.
79
*= x*=y x=x*yx=72
/= x/=y x=x/y x=2
%= x%=y x=x%y x=0
.= x.=y x=x.y x=126
Салыстыру операторлар
Оператор Анықтама Нәтиже
== Теңдік 8==10 жалған қайтарады (false)
!= Теңсіздік 8!=10 шын қайтарады (true)
<> Теңсіздік 8<>10 шын қайтарады (true)
> Үлкен …тен 8>10 жалған қайтарады (false)
< Кіші …тен 8<10 шын қайтарады (true)
>= Үлкен немесе тең 8>=10 жалған қайтарады (false)
<= Кіші немесе тең 8<=10 шын қайтарады (true)
Логикалық операторлар
Төмендегі кестеде x=3, y=1 болады
Оператор Анықтама Нәтиже
&& және (and) (x < 5 && y > 2) жалған қайтарады (false)
|| немесе (or) (x==3 || y==1) шын қайтарады (true)
! емес (not) !(x==y) шын қайтарады (true)
PHP-да айнымалылар және экранға шығару
PHP- тілінде экранға шығару өте оңай, мысалы:
<?php
echo “My first Program !!!”;
?>
Скрипт дегеніміздің не екенін түсіну үшін алдымен айнымалылармен танысып алайық.
Айнымалының аты, типі жәлне мәні болады. Айным. ының атына кез келген алфавиттік символмен
сандар бола алады. PHP кез келген айнымалы $ белгісімен басталуы тиіс. Айнымалылар типтері
бойынша өзара бұтінсанды, бөлшек санды, қатар, обьектті, логикалық және массив болып бөлінеді.
Айнымалы типін алдын ала Паскаль тіліндегідей анықтаудың қажеті жоқ. Айнымалы типтері
шартты түрде жүреді. Әр айнымалы автоматты түрде өз мәніне сәйкес типке ие болып отырады.
Мысалы: $a=5 жазуы айнымалывның аты $a екенін, типі бүттін сан екенін, мәні 5-ке тең екенін
білдіреді. Толықтай мысал келтіретін болсақ:
1 <?php
2 $name = 6;
3 $h12 = 4.89;
4 $file_type = "path/index.phtml";
5 $os = "Welcome to PHP ";
6 ? >
Скрипттің екінші қатарында $name айнымалысының мәні бүтінсаны 6 мәнін қабылдап тұр.
80.
80
Үшінші қатарда $h12айнымалысының мәні 4.89 бөлшек санын қабылдап тұр. Төртінші және
бесінші қатарда айнымалыға қатар типі тағайындалып тұр.
Қарапайым аримфметикалық операциялар
Басқа бағдарламалау тілдеріндегі сияқты кез-келген арифметикалық операциялар орындауға
болады. Мысалы, екі санның қосындысы бағдарламасын қарастыратын болсақ:
<?php
$a = 5;
$b = 3;
$d = $a + $b;
echo $d
? >
скрипт жұмысының нәтижесі экранға 8 санын шығарады. PHP тілі барлық математикалық
функцияларды, көп деңгейлі жақшалармен, логикалық операциялармен, бірге көбейту немесе
азайту операцияларын және т.б. көптеген операцияларды орындай алады. Айнымалыны бірге
көбейту операциясы С тіліндегідей $a++; орындалады. Бірнеше элементке бір мәнді тағайындауда
мүмкін: $a = $b = 7; PHP тілінде стандартты емес арифметикалық өрнектің орындалуына мысал
келтірейік:
<?php
$b = $a = 5;
$c = $a++;
$e = $d = ++$b; /* алдын-ала көбейту, яғни үш айнымалының мәніде 6-ға тең */
$f = 2 * ($d++); /* айнымалының мәні көбейгенге дейін екі есе көбейту */
$g = 2 * (++$e); /* айнымалының мәні көбейгеннен кейін екі есе көбейту */
$h = $g += 10;
?>
Мысал:Тізбектелген сандарды бір қатарға бос аралық түрінде экранға шығар. Біздің жағдайда
тізбектер саны беске дейін болсын. Шешімі:
<?php
$i = 1; echo $i;
$i++; echo " ".$i;
$i++; echo " ".$i;
$i++; echo " ".$i;
$i++; echo " ".$i;
?>
Егер есепте бір қатарға емес бағана түрінде шығару керек болса, онда тырнақшалар орнына
<br> қатар ауыстыру HTML-тегін қою керек: echo "<br>".$i; Сонда нәтижеде сандар бір баған
бойына орналасқан түрде шығады.
81.
81
§ 2.5 АЙНЫМАЛЫЛАР.МӘЛІМЕТТЕР ТИПТЕРІ.
ШАРТ, ТАҢДАУ ЖӘНЕ ЦИКЛДЕР ОПЕРАТОРЛАРЫ
Қарапайым логикалық және шартты операторлар
1) if операторы
if (выражение) блок_выполнения
Мұнда выражение– кез келген РНР-дегі айтылым (т.е. барлық мән). Скриптің орындалу
барысында выражение (айтылым) логикалық типке түрленеді. Егер түрлену нәтижесінде айтылым
мәні шындық (True) болса, онда блок_выполнения орындалады, кері жағдайда блок_выполнения
орындалмайды. Егер блок_выполнения бірнеше командадан тұрса, онда ол фигуралық жақшаға
алынады{ }.
Айтылымның логикалық типке түрлену ережесі:
1. В FALSE келесі мәнді түрлендіреді:
False логикалық; бүтін ноль (0); ақиақт ноль (0.0);
Бос қатар және қатар "0";Элементтсіз массив;
Айнымалысыз объект; NULL арнайы тип.
Қалған мәндер TRUE түрленеді
2) if … else операторлары
else операторы тексерілетін if айтылымы дұрыс болмаса қандай да бір әрекет орындайды.
if (выражение) блок_выполнения
else блок_выполнения_1
Егер шарт орындалса (т.е. выражение=true), онда орындалу блогындағы әрекет орындалады,
әйтпесе – блока_выполнения1 әрекет.
Мысал 1. if …else операторындағы салыстыру операциясының орындалуы
<?php
$age = 18;
if ($age< 18) { echo "Вы еще не можете голосовать!<ВR>"; }
else echo "Поздравляем! Уже можете голосовать!!!<BR>";
?>
3) elseif операторы
elseif операторы бірнеше шартты тізбектей тексереді.
if (условие)
блок_выполнения
elseif(выражение1) блок_выполнения_1
...
else блок_выполнения_N
Elseif- айтылым орындалады, тек егер if-шартты False болса.
Мысал 2. elseif операторын қолдану
<?php $score = 5;
if ($score == 5) echo "Отлично";
elseif ($score == 4) echo "Хорошо";
elseif ($score == 3) echo "Удовлетворительно";
else echo "Неудовлетворительно";
?>
4) switch операторы
switch (выражение или переменная)
{
case значение_1:
блок_действий_1
break;
82.
82
case значение 2:
блок_действий_2
break;
...
default:
блок_действий_по_умолчанию
}
Айтылыммәні case (мән 1, мән 2 және т.б.) кілттік сөзінен кейінгі мәндермен салыстырлады.
Егер айтылым мәні қандай да бір нұсқамен сәйкес келсе, онда тиісті блок_действий– сәйкес мәннен
қос нүктеден switch соңына дейін немесе break бірінші операторына дейін орындалады. Егер
айтылым мәні сәйкес келмесе, онда default кілттік сөзінен кейін әрекет үнсіздік бойынша
(блок_действий_по_умолчанию) орындалады. switch айтылым бір рет есептелінеді.
Мысал 3. switch операторын қолдану
<?php $score = 5;
switch ($score) {
case 5: echo "Отлично"; break;
case 4: echo "Хорошо"; break;
case 3: echo "Удовлетворительно"; break;
default: echo "Оценка за заданными пределами"; break; }
?>
Салыстыру қарапайым түрде ұйымдастырылады: "егер-онда-болмаса". Бұл үшін PHP-де
келесі конструкция қолданылады:
if ( ) { } else { }
бұл оператордың түрлі синтаксисі бар, бірақ жоғарыда келтірілген синтаксис ең тиімді әрі
дұрыс болып есептеледі. Мысал:
<?php
$a = 5;
$b = 9;
if ($a == $b) {echo $b - $a;} else {echo $b.$a;}
?>
Бағдарлама нәтижесі 95 - ті көрсетеді, себебі $a -ға $b тең емес, ал echo $b.$a; командасы
айнымалыларды рет-рнетімен шығарады. Мұндағы нүкте айнымалыларды бір-бірімен жабыстыру
үшін қолданылады.
Циклдер
Бағдарламалаудағы циклдер дегеніміз - бір операцияның бірнеше рет қайталануы. PHP-де
циклдерді ұйымдастыру үшін келесі операторлар қолданылады: while, do…while, for және foreach.
Циклге мысал ретінде бірнеше файлдарды көшіру қызметін көрсетуге болады. Оның алгоритмі
төмендегідей болады:
файлдар санын беру
көшірілген файлдар есептегішінің мәнін нөлге қою
файлды көшіру
есептігіштің мәнін берілген файлдар санына теңдігін тексеру
егер тең болмаса, онда көшірілген файлдар есептегішінің мәнін арттыру және цикл басына
қайта келу
егер тең болса, онда циклды аяқтау
Циклдық әр қайталануы итерация деп аталады.
PHP-де шартқа сәйкес қайталанатын әрекетті орындайтын бірнеше конструкция бар. Ол
циклдер while, do..while, foreach және for.
1) while құрылымы
while (выражение) { блок_выполнения }
немесе
while (выражение): блок_выполнения endwhile;
83.
83
while циклі (TRUE)шындық болғанға дейін блока_выполнения орындауды қайталай беруге
мүмкіндік береді. Айтылым мәні цикл басында тексеріледі, егер оның мәні орындалу процесінде
өзгерсе де, циклдің барлық денесі (команды блока_выполнения) соңына дейін орындалады.
Мысал 4. while операторын қолдану
<?
//эта программа печатает все четные цифры
$i = 1; while ($i < 10) {
if ($i % 2 == 0) print $i; // печатаемцифру, еслионачетная
$i++; } // увеличиваем $i на единицу
?>
2) do... while:құрылымы
do {блок_выполнения}
while (выражение);
do..whileциклінде айтылым шындығы цикл соңына дейін тексеріледі. Осыған сәйкес
do...whileциклінің орындалу блогі бір рет орындалуы қажет.
3) for циклінің құрлымы:
for (выражение_1; выражение_2; выражение_3) {блок_выполнения}
либо
for (выражение_1; выражение_2; выражение_3): блок_выполнения endfor;
Циклдің басында выражение_1. айтылымы бір рет есептелінеді. Содан кейін әр итерацияның
басында выражение_2. циклінің шарт мәні есептелінеді. Выражение_2 (TRUE) шындық болғанға
дейін цикл денесі орындалады - блок_выполнения. Әр итерация соңында выражение3
орындалады.Цикл шартты жалған (FALSE) болғанда цикл орындалуы тоқтатылады.
Айтылымдардың 1, 2, 3 бос болуы мүмкін. Егервыражение2 бос болса, онда цикл нақты емес
уақытта орындалуы керек (бұл жағдайда РНР бұл айтылымды шындық деп санайды). break
операторын қолданып циклді тоқтатуға болады
Мысалы 5. for операторы
<?php
for ($counter=0; $counter<3; $counter++)
{ echo"Номер счетчика цикла: " , $counter, " <BR>"; }
?>
Нәтиже:
Басқару берілісінің операторлары break және continue
Егер цикл жұмысын бірден аяқтау қажет болса немесе жеке оның итериациясын, онда break
және continue операторлары қолданылады. break операторы ағымдағы циклдің орындалуын
анықтайды. continue операторы орындалу блогынан кез келген циклдің алдағы кеңесін өткізеді
және орындалу барысын қайта бастайды.
4) foreach операторы
Бұл конструкция массивпен жұмыс істеуге арналған.
foreach ($array as $value)
{блок_выполнения}
болмаса
foreach ($array as $key => $value)
{блок_выполнения}
Бірінші жағдайда цикл $array айнымалысымен берілгенмассивтің барлық элементі бойынша
қалыптастырылады. Циклдің әр қадамында массивтің ағымдағы элемент мәні $value
айнымалысына жазылады, және массивтің ішкі санағышы бірлікке жылжиды. Орындалу блогі
84.
84
ішінде массивтің ағымдағыэлемент мәні $value айнымалысы көмегімен алынады.
блока_выполнения орындалуы $array масивінде қанша элемент болса сонша рет орындалады
Циклдің әр қадамында жазбаның екінші формасы массивтің ағымдағы элемент кілтін $key
айнымалысына жазады, блоке_выполнения. Қолдануға болады.
foreach орындау бастағанда массивтің ішкі көрсеткіші бірінші элементке автоматты түрде
келтіріледі.
Мысалы 6. foreach операторының орындалуы
<?php
$names = array("Иван","Петр","Семен");
foreach ($names as $val)
{ echo "Привет, $val <br>"; // выводим всем приветствие
}
foreach ($names as $k => $val) {
// кроме приветствия, выведем номера в списке, т.е. ключи
echo "Привет, $val ! Ты в списке под номером $k <br>"; }
?>
Мысалдар
Енді PHP-де циклдерді ұйымдастыру мысалын қарастырайық:
<?php
$i = 0;
$n = 10;
while ($i <=$n):
echo $i. “<br>n” ;
$i++;
endwhile;
?>
Скрипттің мағынасы өте қарапайым. $i айнымалысына циклдың басындағы мәнді
тағайындаймыз да, $n айнымалысына циклдың соңындағы мәнді тағайындаймыз. Ары қарай
циклды while() операторы арқылы ашып, жақшаның ішіне берілетін шартты жазамыз. Ол шарт $i
<=$n болғанша орындалады. Бұл цикл шарты бұлған заматта цикл аяқталады. еndwhile операторы
циклдың аяқталғанын білдіреді. Скрипт, браузер экранына баған бойынша бірден онға дейінгі
сандарды шығарады. Себебі echo операторының $i айнымалысынан кейін қатарды ауыстыратын
<br> HTML-тегін қойдық.
Жоғарыдағы есепке тағы да басқа бір вариантын көрсетейік:
<?php
$i = 0;
while ($i<=10)
{
echo $i++. “<br>n”;
}
?>
Бұл екі бағдарламаның нәтижесі бірдей болады.
Енді PHP-де do…while операторының құрылысын қарастырайық. Бұл да цикл болып
саналады, оның while операторынан ерекшелігі “дейін” емес “кейін”, яғни цикл жұмысы
оператордан кейін аяқталады. do...while циклі үшін тек бірақ синтаксис бар:
<?php
$i = 0;
do
{
echo $i. "<br>n";
$i++;
}
while ($i <= 10);
85.
85
?>
Енді for циклынамысал келтірейік, оның синтаксисі:
for (expr1; expr2; expr3) (операторлар тіізбегі)
(expr1) - өрнегі шартсыз болып есептелінеді және циклдың басында орындалады. Әр
итерацияның басында (expr2) өрнегі орындалады. Егер ол ақиқат болса, онда цикл жалғасады да
ішкі операторлар орындалады. Егер ол жалған болса, онда цикл аяқталады да әр итерацияның
соңында (expr3) өрнегі орындалады. Бұл өрнектердің әрқайсысы бос болуы мүмкін. Егер (expr2)
өрнегі бос болса, онда цикл шексіз орындалады. Шексіз орындалуды break операторы арқылы
тоқтатуға болады. Мысалы:
<?php
$a = 0;
while ($a < 5)
{
if ($arr[$a] == "atop" )
{
break;
}
$a++;
}
?>
Егер continue операторы кездесетін болса, онда басқару келесі жақын циклге беріледі. Мысалы
while (list($key,$value)=each($arr))
{
if ($key 2)
{
continue;
}
}
Енді сандарды for операторы арқылы экранға шығару есебінің мүмкін жолдарын
қарастырайық:
Мысал1:
for ($i = 1; $i <= 10; $i++)
{ print $i ; }
Мысал2:
for ($i = 1;; $i++)
{ if ($i >10)
{ break; }
print $i;
}
Мысал3:
$i = 1;
for (;;)
{ if ($i > 10) { break; }
print $i; $i++;
}
Альтернативті синтаксис
PHP кейбір басқару құрылымдарына альтернативті синтаксис ұсынады: if, while, for,
foreachжәнеswitch. Әр жағдайда ашылатын жақшаны қос нүктеге ауыстыру қажет (:), ал жабылатын
жақшаны – endif;, endwhile;және т.б.
86.
86
Мысалы, ifоператорының синтаксисінжазуға болады:
if(выражение): блок_выполнения endif;
Егер if домалақ жақшаға жазылған шарт шындық болса, онда барлық код орындалады қос
нүктеден «:» endif командасына дейінгі;.Мұндай синтаксисті қолдану php-ді html-кодқа
түрлендіруде ыңғайлы.
Мысалы 7. Альтернативті синтаксисті қолдану
<?php
$names = array("Иван","Петр","Алекс");
if($names[0]=="Иван"): echo "Привет, Ваня!"; endif;
?>
switchконструкциясы үшін, if сияқты альтернативті синтаксис мүмкін, фигуралық
жақшамен ашылатын switch қос нүктемен ауыстырылады, ал жабылатын – endswitch.
Уақыт пен мерзім
PHP-де уақыт форматымен жұмыс істеу үшін көбінесе date функциясы қолданылады. Оның
синтаксисі $date = date("параметр"); Параметрлер бірнеше болуы мүмкін және олар бір-бірінен үтір
арқылы ажыратылады. Онда төмендегі параметрлерді қолдануға болады:
а - "am" немесе "pm" мәндерін қабылдайды;
А - "AM" немесе "PM";
d - ай күні, сандық, екі сан (бірінші орынға нөл қою керек), яғни 01-
ден 31-ге дейін;
D - апта күні, мәтіндік, үш әріп, мысалы: "Fri";
F - ай, сандық, мысалы: "February";
h - сағат, сандық, екі сан, 12 сағаттық формат;
H- сағат, сандық, екі сан, 24 сағаттық формат;
i - минут, сандық, екі сан, яғни 00-ден 59-ға дейін;
j - ай күні, сандық, бастапқы нөлсіз;
l - апта күні, мәтіндік, мысалы: "Wednesday";
L-төрт жылда қайталанатын жылды көрсетеді, яғни "0" немесе "1";
m-ай, сандық, яғни "01"-ден "12"-ге дейін;
M-ай, мәтіндік, үш әріп, мысалы: "Feb";
n -ай, сандық, бір сан, яғни "1"-ден "12"-ге дейін;
О-Гринвич уақыты бойынша сағат аралығы, мысалы: "+0200";
s - секунд, сандық, екі сан, яғни 00-ден 59-ға дейін;
S- ағылшынша реттік жалғау, мәтіндік, екі символ, мысалы: "nd" және "th"
t - ағымдық айдағы күндер саны, яғни "28"-ден "31"-ге дейін;
U-Unix ғасырынан басталатын секунд, яғни 1970 жылдың 1 қаңтары;
Y-жыл, сандық, төрт сан;
w-апта күні, сандық, мысалы "0" саны жексенбіні білдіреді;
y -жыл, сандық, екі сан, мысалы: "99";
z -жыл күні, сандық, мысалы: "299";
Осы параметрлерді қолдану арқылы біз өзіміздің сайтымызда ағымдық уақытты пайдалана
аламыз. Оның ішінде ең көп қолданылатыны ағымдық уақыт пен мерзімді шығару. Аптаны, айды,
күнді шығару сайтта өте пайдалы болып есептеледі. Мысалы, сайтымызға кірушілерді тәулікке
байланысты уақытпен қарсы алатын болсақ, онда бағдарлама коды төмендегідей болады:
<?php
$h = date("H")
if ($h >= 5 && $h <= 11) echo "Қайырлы таң !";
if ($h >= 12 && $h <= 18) echo "Саламатсызба !";
if ($h >= 19 && $h <= 24) echo "Қайырлы кеш !";
if ($h >= 1 && $h <= 4) echo "Қайырлы түн !";
?>
87.
87
Бұл скриптте серверденdate(“H”) функциясы арқылы ағымдық сағат уақытының мәнін
аламызда, оған талдау жүргземз. Алынған мән қай аралықта орналасқанына байланысты сәйкес
сөздерді экранға шығарамыз. Егер бағдарлама кодына назар аударатын болсақ, онда сағат
белдеуінсіз және сәйкес уақыт аралығынсыз тек сервер уақыты ғана алынып тұрғанын көремз.
Сондықтан уақыт аралығын бағдарламаға алдын-ала енгзуіміз қажет. Оған мысал ретнде келес код
бола алады:
$time = date(“H:i”);
$time1 = date(“H”);
$time2 = date(“i”);
$time_s = 7;
$time1 = $time1+ $time_s;
if ($time1 >= 24) { $time1 = $time1 – 24; }
$time = “$time1: $time2”;
Бірінші қатарда ағымдық уақытты алу сервердің сағат белдеуі бойынша іске асырылады. Ары
қарай түрлі дұрыс уақыт белдеуі бойынша бағдарлама өзі есептейді. $time_s айнымалысында өз
уақыт аралығы сақталады.
§ 2.6 ФУНКЦИЯЛАР
САНДАР, ЖОЛДАР, ОБЪЕКТІЛЕР ЖӘНЕ МАССИВТЕРМЕН ЖҰМЫС
PHP тіліндегі функция
PHP тілінде функция құруға болады. Функция дегеніміз - барлық инструкциялардың
жиынтығы, олардың бәрі функцияға қатысты орындалатын әрекеттер. Функцияға ат беру арқылы
қатынас орнатады немесе функция параметрлерімен берілуі мүмкін. Функциямен жұмыс жсағанда
тек қана баяндалған функциялармен қатынас орнатылады. Мысалы:
function qwert ($arg_l $arg_2, …,$arg_n)
{ echo "Пример n";
return $retval;
}
Функцияның аргументтері үтір арқылы ерекшеленеді. Аргументтер функция мәні арқылы
беріледі, ал айнымалы мәндерден функцияның қызметі өзгермейді. Сол сияқты мәндерді сілтеме
арқылы (бұл жағдайда айнымалы мәндерден функцияның қызметі өзгеруі мүмкін) беруге де болады.
Егер мәндерді сілтеме арқылы беретін болсақ, онда берілген аргументтің алдына амперсанд (&)
белгісін қоямыз. Сол сияқты мендерді параметрлер арқылы көрсетуге болады, ол кезде үндеместік
әдісімен орындалады.
Кластар
Кластар пайдаланушылардың мақсатының түріне байланысты қолданылады. Кластың
құрамына әдістемелік функциялар мен айнымалылар кіреді.
Extends операторы
Extends операторын кластарды құруға және басқа да кластармен функционалдық қатынас
құру үшін қолданылады.
Конструкторлар
Кластың конструкторы әрқашанда функциялар болып табылады. Функиялар жаңа кластың
мәлімттері құрылғанша бірнеш рет шақырады. Функция құрылатын кластың конструкторы болу
үшін оның аты мен кластың аты бірдей болуы тиіс. Конструктордың арнайы әдісі construct болып
табылады.
Деструктор
Деструктор – бұл әдіс, нақты берілген обьектіге қатысты сілтеменің жойылуына байланысты
қолданылады. Деструктор (_destruct) функциясының көмегімен құрылады.
Көрінетін аймақтағы кластардың құрамы
88.
88
Көрінетін аймақтағы кластарэлементіне резервтелген сөздердің көмегімен public, private және
protected орындалады. Көп жағдайда (егер модификатор көрсетілмесе ) көрінетін аймақтағы public
ласс әдісі қолданылады.
Кілт сөзі static
Егер әдіс немесе айнымалы static арқылы орындалатын болса, онда оған обьект ретінде қарау
қажет емес. Бұл сөзді көрінетін аймақтардан немесе айнымалылардан кейін қолданылады. Көп
жағдайда айнымалылардың жазылуы мына public static әдістерімен орындалады. Static - әдісінің
ішіне $this сілтемесін қолдануға болмайды.
Абстрактті кластар
Абстрактті кластар тек қана әдістердің сигнатураларын иелеаптаі, ал имплементацияларын
иеленбейді. Осындай әдістер абстактті әдістер болып аталады. Егер класс ең болмағанда бір
абстрактті әдісті иеленетін болса, онда ол абстрактті класс ретінде баяндалуы керек. Абстрактті
кластардың көшірме кластары болмайды, ал олардың негізіне обьект құруға да болмайды.
Интерфейстер
PHP-дің бұдан басқа да интерфейстермен жұмыс жасауға абстрактті кластары қарастырылған.
Барлық интерфейстердің әдістері public түрінде баяндалуы керек.
Final операторы
Final операторы класс әдістерінен туындайтын ішкі кластардан қорғайды және оның негізіне
кластарды құруға болмайды.
Массивтер
РНР-да массивтер деп - бір айнымалыға топтастырылған айнымалылар жиынтығын айтады.
Олардың типтеріне тәуелді емес. PHP-де массив былайша өрнектеледі: $массив_аты[индекс].
Массивті беру мысалы:
$а = array( 1 => 'one', 2 => 'two', 3 => 'three');
Бұл жерде үш элементімен массив беріледі: $а[1], $а[2], $а[3] 'one', 'two', 'three' мәнерімен
сәйкесінше. Кілттер ретінде сандар колданылған: 1, 2, 3. Кілттер ретінде дәл солай жолдар
қолданылуы мүмкін, мысалы:
$а = array( 'color' => 'red' , 'taste' => 'sweet' , 'shape1 => 'round' , 'name' => 'apple'
Массивті дәл солай оның элементінің иелену жолымен беруге болады
$а['taste']='sweet'; немесе $a[]='red'.
Мысалы:
<?php
$a[0] = 1;
$a[1] = 12244;
$a[2]=0 “example”;
?>
Бұл мысалдың нәтижеснде $a массиві құрылып, оның 0,1 және 2 ұяшықтарына 1, 12244 және
example мәндері тағайындалады. Енді echo $a[2] командасын берсек онда экранға example сөзі
шығады.
Массив ұяшықтарымен кез-келген операциялар жасауға болады: арифметикалық, логикалық
амалдар қолдану, салыстыру операциялары, арттыру, азайту және т.б.
PHP-дің басқа бағдарламалау тілдерінен ерекшелігі мұнда бүтіндей файлды массив ретінде
алуға болады және бұл мүмкіншілік көптеген қызықты амалдар қолдануға жол ашады. Оның
форматы:
<?php
$a = file(“файл_аты”);
?>
Бұл команданың нәтижесінде $a массивінде файл мазмұны болады.
Әр массивтің ағымдық элементі анықтайтын ішкі көрсеткіштері болады. Массивпен жұмыс
басының кезінде ішкі массив көрсеткіші бірінші элементте орналасады. end(), next(), prev(), және
reset() функциялары массивтің ішкі көрсеткішінің орнын ауыстырады.
89.
89
end() функциясы массивішкі көрсеткішін соңғы элементке орнатады. next() функциясы массив
ішкі көрсеткішін бір элемент алға жылжытады. prev() функциясы массив ішкі көрсеткішін бір
элемент артқа жылжытады. reset() функциясы массив ішкі көрсеткішін бірінші элементке орнатады.
current() функциясы массив ішкі көрсеткіші тұрған массив элементін шығарады. sort() функциясы
массивті өсу реті бойынша сұрыптайды.rsort() функциясы массивті кему реті бойынша сұрыптайды.
Мұнан басқа PHP-де массивтермен жұмыс істеу үшін көптеген арнайы функция түрлері бар.
- бір өлшемді және көп өлшемді массивтар құру;
- массивтерді өңдеуге арналған ішкі функциялармен жұмыс;
- массивті кестені ұйымдастыруда қолдану.
1. Бір өлшемді массивтер
1 мысал. Бір өлшемді массивті құру мысалы.
<?php
/* массив мәнін меншіктеу */
$num[' a '] = 1;
$num[' b '] = 2;
$num [' c '] = 3;
/* массивтің мәнімен манипуляциялау */
$ num[‘b'] = $num[ ' a ' ] + $num [' c '] ;
/* массив индекстерін автоматты генерациялау*/
$num[ ] = "1 мән"; /* 0 индексіне меншіктенеді*/
$num[ ] = "2 мән"; /* 1 индексіне меншіктенеді */
$num[5]= " 3 мән"; /* 5 индексіне меншіктенеді */
$num[ ] = "4 мән"; /* 6 индексіне меншіктенеді */
/* массив құру үшін array () функциясын пайдалану */
$num= array('a' => 1, 'b' -> 2, 'с' => 3) ;
$bar['a'] = 1; $bar['b'] = 2; $bar['c'] = 3; /* $num массивтар және $bar эквиваленттер */
$myarray [] array('a', 'b', 'с', 'd'); /* 0 ден 3 дейін кілтпен */массиыті құрады
/* 1, 2 және 3 мәнімен және 'а', 'b' и 'с' кілтімен массивті құрады, сонымен қатар 'а', 'b' и 'с'
мәндеріне 0,1,2 кілттері сай келеді */
$myarray = array('а'=>1, 'a', 'b'=>2, 'b', 'с'=>3, 'с');
/* 1 ден 7 дейін апта күндерін кілттерге меншіктеп, массив құрады */
$days = array(1=>"Жексенбі", "Дүйсенбі", "Сейсенбі", "Сәрсенбі",
"Бейсенбі", "Жұма", "Сенбі");
?>
2. Көп өлшемді массивтар
Көп өлшемді массивтар array() функциясы көмегімен құрылуы мүмкін немесе тік жақша
пайдаланылуы мүмкін.
2 мысал.Көп өлшемді массивтерді құрк
<?php
/* Формальдысинтаксис */
$myarray = array('mykey'=> 'myvalue', 'key2'=> array(1, 2, 3));
/* тік жақша арқылы берілген синтаксис */
/* тік жақшаны пайдаланудың альтернативті әдісі */
$anotherarray['mykey'] = 'myvalue'; $anotherarray['key2'][] = 1;
$anotherarray['key2'][] = 2; $anotherarray['key2'][] = 3;
?>
Белгілі бір көп өлшемді массивтармен жұмыс жасағанда кілттік сілтемелер ішкі массив
мазмұнына бір бірімен қатар берілуі мүмкін. Мысалы, оператор:
echo $anotherarray['key2'][0]; -массивтің бірінші индексіне қатынас алады.
1 Листинг. Array_rand() функциясын пайдаланып сценаррийда кездейсоқ таңдалған
суретті шығару
<HTML><НЕАD>
<TITLE> Кездейсоқ таңдалған суретті шығару</TITLE>
90.
90
</НЕАD><BODY>
<?php
srand((double) microtime()*1000000) ;
$images= array(imagel.jpg1, 'image2.jpg', 'image3.jpg');
$rlmage = array_rand($images)
?>
<IMG SRC="<?php echo $images[$rlmage]; ?>">
</BODY></HTML>
3. Массивті сұрыпталатын кесте түрінде пайдалану
Мәліметтерді кесте түрінде қолдануда PHP массивтары барынша ыңғайлы. РНР массивтары
көмегімен қарапайым кесте қалай жүзеге асырылатынын, сондай ақ РНР функциясы көмегімен
массивтарға сұрыптау қалай жүрігізілетінін қарастырайық.
Кесте 2.5 Мысалдың орындалу кестесі
Жануар атауы Иесінің аты Салмағы Жануар
Бим Иванов 12 Ит
Макс Петров 6 Мысық
Рекс Сидоров 11 Ит
1 тәсіл — ассоциативті массив құру (әр бір жануар аты негізінде), мәндер басұа массивта
болады, басқа мәліметтер 2-листінгіде көрсетілгендей қалады
2 Листинг. Массив көмегімен қарапайым кесте құру
<?php
$petshack = array('Бим' => array('name' => 'Иванов', 'weight' => 12,'animal' => 'Ит'),
'Макс' =>array('name' => 'Петров', 'weight' => 6, 'animal' => 'Мысық'),
'Рекс' => array('name' => 'Сидоров', 'weight' => 11, 'animal' => 'Ит'));
?>
Массив құрылымының басты мәселесі белгілі бір бағана бойынша сұрыптама жасауға
көмектесе алмайды. Ішкі функционалдылықты қолдану үшін әр бір бағана жеке массивта сақталуы
қажет (әр бір массивтің 1 индексі құрас мәнге сәйкес келуі қажет).
3.Листинг. Массив көмегімен сұрыпталатын кесте құру
<?php
$petshack['name'] = array('Бим', 'Макс', 'Рекс');
$petshack['owner'] = array('Иванов', 'Петров', 'Сидоров');
$petshack['weight'] = array(12,6,11);
$petshack['animal'] = array('Ит', 'Мысық', 'Ит');
?>
Кестенің әр бағанасы жеке массив түрінде беріледі, сонымен қатар массивпен жұмыс
жасайтын ішкі функцияны қолдану арқылы сұрыпталады.
4 Листинг. Asort() пайдаланып массивта сақталған кестелерді сұрыптау,
<html><head><title>Массивті сұрыптау</title </head><body>
<?php
$pets['name'] = array('Бим', 'Макс', 'Рекс', 'Бастер', 'Алиса');
$pets['owner'] = array('Иванов', 'Анискин', 'Сидоров', 'Кович', 'Петров');
$pets['weight'] = array(12, 4, 1, 16, 9);
$pets['animal'] = array('Собака', 'Кот', 'Хомячок', 'Собака', 'Собака');
asort($pets['weight'], SORT_NUMERIC);
?><TABLE border = "1">
<TR><TD>Жануар аты</TD><TD>Жануар иесі</TD>
<TD>Жануар салмағы</TD><TD>Жануар түрі</TD></TR>
<?ph foreach($pets['weight'] as $key=>$weight) { echo "<TR>";
echo "<TD>{$pets['name'][$key]}</TD><TD>{$pets['owner'][$key]}";
echo "<TD>{$weight}</TD><TD>{$pets['animal'][$key]}</TD>"; echo "</TR>"; }
?>
91.
91
</TABLE></body><html>
Қатарлармен жұмыс
Қатар дегеніміз– символдар тізбегі. Сондай-ақ сандарда әріптермен тең дәрежеде қатар
ретінде теңесе алады. Қатар тек символдан немесе тіпті бос болуы мүмкін. Қатармен жұмыс әр
уақытта оны енгізуден басталады. Ең қарапайымы қажет қатарды бір айнымалыға тағайындау. Оны
жасаудың түрлері өте көп: файлдан оқу, массивтен немесе формадан таңдап алу, т.с.с. Бізге тек
алынған қатармен не жұмыс жасауымыз керек, соны білсек оның жолы көп. Мысалы: Бірнеше
қатарды жалғастыру қажет болсын:
<?php
$str = “сәлем”;
$sto = “хат”;
$qwer = “!”;
$mir = $str.” “.$sto;
echo $mir.$qwer;
?>
Скрипт жұмысының нәтижесінде бірнеше бөліктен құралған “сәлем хат!” сөзі экранға
шығады. Қатарлармен арифметикалық амалдар қолдануға болмайды. Ол үшін айнымалыларды
алдын-ала анықтап алу керек. Егер қатар файлдан оқылып немесе формадан оқылып жатса онда
қатар өңделуге тиіс болады. Ол үшін алдымен орындалатын амал қайталанатын бос аралықтарды
жою: chop(str);
Мысалы:
$str = chop($str);
нәтижеде $str қатарында қайталанатын бос аралықтар болмайды.
trim(str) функциясы қатардың басындағы және соңындағы бос аралықтарды жояды. Мысалы:
$str = trim($str); ltrim(str) функциясы қатардың басындағы бос аралықтарды ғана жояды. Мысалы:
$str =ltrim($str); ucfirst() функциясы қатардың басындағы символды бас әріп қылады. ucwords (str)
функциясы қатардың ішіндегі барлық сөздің бірінші әрібін бас әріп қылады.
Кейде қатарларды бір шаблонмен салыстыру мәселесі жиі кездеседі. Соның ішінде қатардан
іздеу болып табылады. Бірақ енгізілген қатар немесе файлдан алынған қатар дұрыс болмауы мүмкін,
себебі, қатарда артық бос аралықтар сөздің арасында кездесуі мүмкін немесе кейбір әріптер бас
әріппен (кіші әріппен) жазылуы мүмкін. Бұл мәселені шешу үшін strtolower (str) (қатарды кіші
әріпке ауыстырады) және strtoupper (str); (қатарды үлкен әріпке ауыстырады) функциялары арқылы
шешуге болады.
Қатарлармен жұмыс кезінде тағы да көп кездесетін қатарларды кесіп алу операциясы. Ол
берілгенді енгізуде, форманы өңдегенде көп қолданылады. Формадағы енгізу ұяшығына енгізілетін
қатар санын шектеу үшін форманың өзінде HTML код арқылы шектеу қою керек:
<input maxlength=”100” name=”form”>.
Бұл жерде формада енгізу ұяшығына тек 100 символ ғана сияды.
Бірақ бұл шектеу толыққанды емес, себебі оны айналып өту қиын емес. Сол үшін сайтқа
кірушіге шектеу шегін көрсетіп қою керек. Мұндай айналып өтуді келесі жолдар арқылы іске
асырады. Тура біздікіндей WEB бетін жасап 100 санын өзіне керек санға ауыстырады да өз
компьютеріне HTML кеңейтілуімен сақтап оны өз компьютерінен жүктейді. Ал серверге ақпарат
қайдан алынса да бәрібір болғандықтан мұндай ауыстыруды ол кәдімгідей қабылдайды да, алынған
ақпаратты өңдейді. Мұндай жағдайды болдырмау үшін өңдеушіге енгізу амалы қай жерден жүріп
жатқандығын және алынған ақпараттың өлшемін тексерту қажет. Ол үшін substring(string, start,
length) PHP функциясын қолдану керек. Мысалы:
$form = substr($form, 0, 99);
Бұл арқылы біз 100 символдан асатын қатардың бір бөлігін ғана кесіп аламыз. Осылайша біздің
сайтымызға кірушілер жалған ақпарат бере алмай қалады. Себебі біздің жазған скрипт кірушілерге
ондай мүмкіндік бермейді.
92.
92
substr функциясының қызметіstart (бастапқы), length (ұзындығы) параметрлері арқылы string
қатарының бөлігін береді. Егер start параметрі оң болса, онда шығатын қатар string қатарының start
позициясында тұрған символдан басталады.
Мысалы:
$form = substr(“abcdef”, 1); // нәтижесі “bcdef”
$form = substr(“abcdef”, 1, 3); // нәтижесі “bcd”
Егер start параметрі теріс болса, онда шығатын қатар string қатарының start позициясының
соңында тұрған символдан басталады.
Мысалы:
$rest = substr(“abcdef”, -1); // нәтижесі “f”
$rest = substr(“abcdef”, -2); // нәтижесі “ef”
$rest = substr(“abcdef”, -3, 1); // нәтижесі “d”
Егер length параметрі көрсетіліп және оң болса, онда шығатын қатар start – тан басталып, length
символынан кейін аяқталады.
Мысалы:
$rest = substr(“abcdef”, -1, -1); // нәтижесі “bcde”
Бұдан басқа форманы өңдеуде қатарлардан керек немесе артық жерді кесіп алу қажеттілігі
туады, ол үшін арнайы функция бар:
str_replace(needle, str, haystack) ;
Мысалы:
$str = str_replace(“”, “n”, $str); // енгізілген символ кесіп алынады
$str = str_replace(“red”, “black”, $str); // red сөзінің орнына black сөзі орналасады
Егер ауыстыруда айрықша ережелер қолданылу керек болса, онда ereg_replace() функциясын
қолдануға болады, бірақ бұл функция жақсы жұмыс істегенімен біраз уақыттың жоғалуына әкеліп
соғады.
§ 2.7 КАТАЛОГ ЖӘНЕ ФАЙЛДАР ОПЕРАЦИЯЛАРЫМЕН ЖҰМЫС
Файлдарды құжаттарға салу
include және require
Include операторы көрсетілген файлдан тұратын кодты қосуға мүмкіндік береді, осы оператор
программа қанша рет кездессе сонша рет орындалады.Қосылу төменде көрсетілген тәсілдердің
бірімен жүзеге асырылуы мүмкін:
1) include 'имя_файла';
2) include $file_name;
3) include ("имя_файла");
Мысалы params.inc файлында қандай бір параметрлер мен функциялар жиыны
сақталынынады. Әр кезде осы параметрлерді (функцияларды) қолдануда, негізгі программаның
мәтініне include 'params.inc' командасын жазуға болады.
Мысалы 8. include қосылу операторын қолдану
Файл params.inc
<?php
$user = "Дик"; $today = date("d.m.y");
/* функция date() возвращает дату в формате день.месяц.год) */
?>
Файл include.php
<?php
include ("params.inc");
/* переменные $user и $today заданы в файле params.inc.
Здесь мы тоже можем ими пользоваться благодаря команде include("params.inc") */
93.
93
echo "Привет, $user!<br>";echo "Сегодня $today";
// выведет, например, "Сегодня 7.12.09"
?>
Include операторын қолдану include.php программа кодында params.inc файлына құрамына
қою эквивалентті. Фалды қою кезінде РНР өңдеу режимінен HTML режиміне өту жүзеге
асырылады. Сондықтан РНР-скрипт сияқты өнделетін қосылатын файл ішіндегі код тиісті тегтерге
қорытындылау керек.
Require операторы программаға қандай да бір файлды қосуға және орындауға мүмкіндік
береді. Негізгілер require мен include ерекшелігі қатенің пайда болуына әсер етеді. include ескерту
жасайды және скрипт жұмысын жалғастырады. require қате скрипт жұмысының қатесін шақырады
және оның орындалуын тоқтатады.
require мен include қолдану кезінде шартты блоктардың ішінде фигуралық жақшаға алу қажет.
/* Этоневернаязапись. */
if ($condition) include("first.php");
else include("second.php");
if ($condition) { include("first.php"); } // Правильнаязапись.
else { include("second.php"); }
Файлға деректерді жазу. Файлдан деректерді оқу. Локалдьды веб серверден файлды жүктеу
және сол файлда деректерді өңдеу
1. fgets() функциясымен мәтін жолын оқу.
File.txt файлына кез келген мәтінді жазу және мазмұнын файлдан қарау.
1 мысал. Fgets() функциясы. Файлдан мәтінді оқу және көрсету. phpreadfile.php
<?php
$handle = fopen ("file.txt", "r"); // оқуға арналған файлды ашамыз
/* feof функциясы файлдың соңына барғанда true мәнін қайтарады */
while (!feof ($handle))
{
$text = fgets ($handle); // мәтін жолын оқу
echo $text, "<BR>"; // Жолды көрсету
}
fclose ($handle); // Файлды жабу
?>
2. Файлдан мәтінді символдық оқу: fgetc()функциясы.
Жолдың соңындағы символ <br> тегін алмастырады (есте сақтаңыз).
2-мысал. Файлдан символдық оқу, phpfgrtc.php
<?php
echo "<BR>"; $handle = fopen ("file.txt", "r");
while ($char = fgetc ($handle))
{ if ($char == "n") { $char = "<BR>"; } echo $char; }
fclose ($handle);
?>
3. Файлдан екілік оқу:fread() функциясы.
3-мысал phpread.php файлынан екілік оқу.
<?php
$handle = fopen ("file.txt", "rb"); $text =fread ($handle, filesize ("file.txt"));
$br_text = str_replace ("n", "<BR>", $text); echo$br_text; fclose ($handle);
?>
4. Файлға синтаксистік талдау:fscanf функциясы
94.
94
Мысалы tabs.txt файлынаадамдар аты мен тегі символдық кестелеу бойынша жазылған
болсын:
Нильс Бор
Батыр Адамов
Федор Максимов
Деректер форматын беретін жол келесідегідей болады — "%st%sn" (жол6 кестелеу
символы, жол, жолдың аяққы символы).
4 мысал. phpfscant.php файлынан fscanf() функциясы көмегімен оқу
<?php
$handle = fopen ("tabs.txt", "rb"); // файлды ашамыз
/* fscanf функциясы көмегімен файлдан жолдарды оқу жүргізіледі, нәтижі $name
массивіне орналастырылады*/:
while ($names = fscanf ($handle, "%st%srn")) {
/* list функциясы көмегімен массивтің элементтерін жекелеу жүргізіледі.*/
list ($firstname, $lastname) = $names;
/* файлды өңдеу нәтижесі браузерге шығарылады */
echo $firstname, " ", $lastname, "<BR>"; }
fclose ($handle);
?>
5. Файлға жазу: fwrite() функциясы
5 мысал.fwrite көмегімен файлға жазу, phpfwrite.php
<?php
/* екілік режимде файлды ашу, егер файл жоқ болса автоматты түрдк құрылады*/
$handle = fopen ("textw.txt", "wb");
/* Файлға мәтін $test айнымалысы түрінде азылады */
$text="Файлға жазу fwrite функциясы көмегімен жүргізіледі ";
if (fwrite($handle, $text) == false) { echo " файлға жазуда қателік орын алды 'textw.txt' "; }
else { echo " Файлға 'textw.txt' жазу сәтті жүргізілді."; }
fclose ($handle);
?>
6. Веб – сервердан файлды жүктеу.
«Multipart/form-data» деректер типімен арнайы форма типі пайдаланылады, бұлар <FORM
> тегінің ENCTYPE атрибутында беріледі. 6 мысалда userfile атымен өріс иемденетін формадан
тұрады. <INPUT TYPE=FILE> тегі бір мезетте файл атын енгізуге арналған өрісті де және
диалогтық терезе көмегімен таңдауға арналған «Обзор» батырмасын сипттайды.
6 мысал. Файлды жүктеуге арналған форма, phpfile.html
/* «multipart/form-data» арнайы деректер типімен форма типін береміз*/
<FORM ENCTYPE="multipart/form-data" METHOD="POST"
ACTION="http://localhost/phpfile.php">Жүктелетін файлды таңдаңыз:
/* формаға жүктелетін атын таңдауға арналған өрісті қосу */
<INPUT NAME="userfile" TYPE="file" ><BR><BR>
<INPUT TYPE="SUBMIT" VALUE="Жүктеу!">
</FORM>
Сурет 8 - Файлды жүктеуге арналған форма.
95.
95
7. Жүктелген файлдыөңдеу
Жүктелген файлға қатынас оның аты бойынша жүргізіледі (мысалда userfile файл аты
берілген).Файл мазмұны жүктеліп болғаннан кейін уақытта файлда сақталады, ал уақытша файл аты
$_FILES [' userfile'] ['tmp_name'] (файл жүктеу өрісі userfile деп аталады деп алайық)
суперглобальды массивқа орналастырылады.
7-мысалда жүктелген файл экранда көрсетілген. Файл мазмұны fopen функциясы көмегімен
ашылады.
7 мысал. Жүктелген файлды көрсету, phpfile.php
<?php
$handle=fopen($_FILES['userfile'] ['tmp_name'], "r");
while (!feof($handle)) { $text=fgets($handle); echo $text, "<BR>"; }
fclose($handle);
?>
Сурет 9 - Жүктелген файды көрсету
8 мысал.Файл пайдаланып, сайтқа қатынаған пайдаланушыны есептеуге арналған қарапайым
есептеуіш құру.
Санауыштың негізгі қызметі сайтқа қатынау саны туралы ақпарат беру. Санауыш мәні
statistika.txt файлында сақталады.
Іndex.php файлы
<html><head><title>Менің есептеуішім</title></head>
<body bgcolor="white" text="blue" >
<p style=color:red style=font-size=20>Сайтқа хош келдіңіз!!!</p>
<?php
include("counter.php");
?>
</body></html>
counter.php файлы
<?php
$url = "statistika.txt";
if(!file_exists($url)) { //Файлдың бар екенін тексеру.
//Егер файл жоқ болса,
$count = 0;
$handle = fopen($url,"a"); //Файл құрамыз
fwrite($handle,$count); // файлға нолдік мәндерді жазамыз
fclose($handle); //Файлды жабамыз
}
else { //егер файл бар болса, онда сол файлмен жұмыс жасаймыз
$handle = fopen($url,"a+"); //файлды ашамыз
96.
96
//деректерді оқимыз жәнеоларды $count айнымалысына жазамыз
$count = fread($handle,filesize($url));
fclose($handle); //Файлды жабамыз
$count++; //санауыш мәнін арттыру
$handle = fopen($url,"w"); // файлды ашамыз
fwrite($handle,$count); // $count айынмалысына жазамыз
fclose($handle); //файлды жабамыз
}
echo "Қараулар саны: $count ";
?>
http хаттамасы және серверге мәліметтерді берудің тәсілдері.
Сұранысты жіберудің әдістері. Сұранысты жөнелту әдістері.
HTML-форманы серверге мәліметтерді беру үшін қолдану
HTTP-сұраныстың құрылымы. HTTP-сұраныс бос қатармен бөлініп жазылған сұраныстың
тақырыбымен сұраныс денесінен тұрады. Сұраныс денесі болмауы да мүмкін. Сұраныс тақырыбы
сұраныстың негізгі (бірінші) қатарынан және негізгі қатардағыларды анықтай түсетін келесі
қатарлардан тұрады. Келесі қатарлардың да болмауы мүмкін. Негізгі қатардағы сұраныс бос
орынмен бөлінген үш бөлімнен тұрады:
1. Әдіс (басқаша айтқанда, http командасы):
GET – құжат сұранысы. Анағұрлым көп қолданылатын әдіс; HTTP/0.9-да, осы әдіс қана
болған.
HEAD – құжат тақырыбына сұраныс. GET-тен, тек құжат жөнінде ақпарат жазылған
тақырып сұранысы шығарылатындығымен ерекшеленеді. Құжаттың өзі шығарылмайды.
POST – бұл әдіс мәліметтерді CGI-скрипттеріне жіберу үшін қолданылады. Мәліметтердің
өзі келесі қатарларда параметрлер түрінде орналасады.
PUT – құжатты серверге орналастыру. Сирек қолданылады. Бұл әдіс қолданылған сұраныс
құжаттың өзі жіберілетін бөліктен тұрады.
2. Ресурс – бұл клиент алғысы келетін, сервердегі нақты файлдың орналасқан орнының жолы
(немесе PUT әдісі үшін орналастыру). Егер ресурс – оқуға арналған жай ғана файл болса, сервер
бұл сұраныс бойынша оны жауап бөлігінде шығаруы керек. Егер бұл CGI-скриптке апаратын
жол болса, онда сервер скрипті іске қосып, оның орындалу нәтижесін шығарады.
3. Хаттама нұсқасы – клиент программасы жұмыс істейтін, http хаттамасының нұсқасы.
Сонымен қарапайым HTTP-сұраныс келесі түрде болады:
GET / HTTP/1.0 - web-сервердің түпкі директориясынан түпкі файл сұралады. Сұраныстың
негізгі қатарынан кейінгі қатардың форматы: Параметр: мәні түрінде болады. Осылай сұраныс
параметрлері беріледі. Бұл міндетті емес, негізгі қатардан кейінгі қатарлардың барлығы болмауы да
мүмкін; бұл кезде сервер олардың мәнін үнсіз келісім немесе алдыңғы сұраныстың нәтижесі (Keep-
Alive режимінде жұмыс істеу кезінде) бойынша қабылдайды.
HTTP-сұраныстың анағұрлым көп қолданылатын параметрлерін қарастырайық:
Connection (байланыстыру)- Keep-Alive және close мәндерін қабылдай алады.
Keep-Alive ("тірі қалдыру") құжаттты шығарғаннан кейін сервермен байланыс
үзілмейтіндігін, тағы да сұраныстар беруді жалғастыруға болатындығын білдіреді.
Көптеген браузерлер Keep-Alive режимінде жұмыс істейді, өйткені ол сервермен
байланыстырып, html-парақтар мен ондағы суреттерді жазып алу мүмкіндігін береді. Бұл
режим қосылғаннан кейін алғашқы қате кездескенге немесе Connection: close режимінің
кезекті қосылғанына дейін жұмыс істейді.
close ("закрыть") – байланыс берілген сұранысқа жауаптан кейін үзіледі.
User-Agent – мәні браузердің "кодтық белгілеуі" болады, мысалы: Mozilla/4.0 (compatible;
MSIE 5.0; Windows 95; DigExt)
Accept – браузер қолдайтын типтер мазмұны берілген браузердің ретіндегідей болады,
мысалы, IE5 үшін: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*. Бұл
97.
97
параметрдің мәні негізіненжауаптарды құру үшін CGI-скриптерінде қолданылады.
Referer - URL, осы ресурсқа көшу.
Host – ресурс сұралатын хостың аты. Серверде бір IP-адреспен бірнеше виртуалды
серверлер болған кезде пайдаланылады. Бұл кезде виртуалды серверді осы өрісі бойынша
анықтайды.
Accept-Language – қолдайтын тіл. Бір құжатты әр түрлі тілдер нұсқаларымен беру кезінде
маңызды орын алады.
HTTP-жауаптардың форматтары. Жауап форматы сұраныс форматына өте ұқсас. Ол да бос
қатармен бөлінген тақырып пен құжат денесінен тұрады. Тақырып негізгі қатар мен парамертлер
қатарынан тұрады. Бірақ негізгі қатардың форматының сұраныс қатарындағыдан айырмашылығы
бар. Сұраныстың негізгі қатары бос орынмен бөлінген 3 өрістен тұрады:
Хаттама нұсқасы – сұраныстың сәйкес параметріне ұқсас.
Қате коды – кодтық белгілеу. 200 коды "барлығы дұрыс" (OK) дегенді білдіреді.
Қатенің сөзбен талдануы – алдыңғы кодты "талдау". Мысалы, 200 үшін OK, 500 үшін -
Internal Server Error.
http-жауаптың анағұрлым көп қолданылатын параметрлері:
Connection – сұраныстың сәйкес параметрі сияқты. Егер сервер Keep-Alive режімін
қолдамаса, онда Connection мәні әрқашан close.
Content-Type ("мазмұнның типі") – жауап мазмұнынынң типі.
Content-Type мәніне байланысты браузер жауапты HTML-парақ, gif немесе jpeg суретті,
дискіге сақтауға арналған файл т.с.с сияқты қабылдайды. Content-Type мәні браузер үшін
Windows арналған файл типіне ұқсаса болады.
Құжаттардың типтері:
text/html - HTML (веб-парақ) форматындағы мәтін;
text/plain – жай мәтін ("блокноттағыдай");
image/jpeg – JPEG форматындағы сүрет;
image/gif – GIF форматындағы сурет;
application/octet-stream - "октеттер" (т.е. жай байт) ағыны дискіге жазу үшін.
Content-Length ("мазмұн ұзындығы") –жауап мазмұнның байтпен берілген ұзындығы.
Last-Modified ("Соңғы рет жаңартылған") – құжаттың соңғы өзгертілген уақыты.
CGI – бұл сервердегі программалар веб-сервер арқылы кленттерге мәліметтерді жіберетін
ережелер жинағы.
CGI программаларға мәліметтерді клиентттерге жөнелту мүмкіндігін берсе, формалар CGI-
программалар үшін осы мүмкіндікті кеңейтеді.
CGI қосымшаларын таратуға келесілер жатады:
Динамикалық HTML. Тұтас сайттар бір CGI-программасымен басқарылады.
Пайдаланушы енгізген сөздері бар құжаттарды табатын іздеу механизмдері.
Пайдаланушылар өз хабарламаларын қоса алатын хабарландыру тақталары мен қонақ
кітаптары.
Тапсырыс қағаздары.
Сауалнамалар (анкеты).
Серверге орналастырылған мәліметтер базасынан ақпараттарды шығару.
Осылардың барлығы CGI-ді мәліметтер базасымен байланыстыруға мүмкіндік береді.
CGI-дің CGI-программасы, веб-сервер және Web клиенті арасында мәліметтерді жіберетін
төрт тәсілі бар:
Айнымалылар қоршауы.
Командалық қатар.
Стандартты енгізу құрылғысы.
Стандартты шығару құрылғысы.
Осы төрт әдістің көмегімен сервер клиент жіберген барлық мәліметтерді CGI-программаға
қайта жібереді. Одан кейін CGI-программа өзінің таңғажайып ісін орындап, барлық шығу
ақпараттарын қайтадан серверге жібереді.
98.
98
Формаларды өңдеу жәнепочтаны жіберу
Әр кезде сайтқа кіргенде түрлі формалармен енгізу ұяшықтарына тап боламыз. Формадағы
берілгендер қалайша өңделеді деген сұраққа PHP арқылы деп жауап береміз.
Ең бірінші алдымен кез-келген адреске хат жіберетін форма құрайық:
<form method = “POST” action = “action.phtml”>
<p><input type = “text” name = “email” size = “20”>
<br><input type = “text” name = “name” size = “20”>
<br><textarea rows = “2” name = “txt” cols = “20” ></textarea>
<br><input type = “submit” value = “Send” name = “B1”>
<input type = “reset” value= “Clear” name = “B2” ></p></form>
Бұл HTML кодты браузермен жүктегенде біз үш енгізу ұяшығы бар форманы көреміз.“Send”
батырмасын басқаннан кейінгі өңдеу операциясы action.phtml файлына беріледі. “email” атты
бірінші ұяшыққа, сайтқа кіруші хат жіберілетін адресті енгізеді. “name” атты екінші ұяшыққа сайтқа
кіруші өз аты-жөнін енгізеді. Келесі “txt” атты енгізу ұяшығы хат жазу үшін арналған. Енді ең негізгі
бөлікке өтеттін болсақ, ол action.phtml файлындағы форма өңдеушісін құру. Форманыөңдеудің PHP
коды:
<?php mail($email, $name, $txt); ?>
Көріп отырғанымыздай формадағы енгізу ұяшықтарына тағайындаған аттарымыз сол күйінше
айнымалы ретінде PHP сриптіне өтіп кетті. Бұл айнымалылардың PHP-дегі мәндері енгізетін
ұяшыққа сәйкес болады. Адрес $email айнымалысында,аты-жөні $name айнымалысында, мәтін $txt
айнымалысында болады. PHP-де поштамен хат жіберудің амалдары өте көп, соның біреуін
қарастырайық, ол mail функциясы. Оның синтаксисі:
mail( $mail, “хат енгізілді”,$str, “From: хат” );
Мысалыға, кейбір мақалаларға кірушілер жөнінде талдау жасау үшін сайттың бірнеше бетін
бақылайтын жүйені қарастырайық. Ол үшін бізге сайтқа кіруші жөнінде ақпарат қажет болады, ол
PHP-де автоматты түрде мүмкін. Бұл ақпаратты біз өзіміздің пошталық жәшігімізге жіберіп
отырамыз:
<?php
$host = gethostbyaddr($REMOTE_ADDR);
$ip = getenv(“REMOTE_ADDR”);
$date = date(“d M Y, H:i:s”);
$str = (“
Дата - $date
Хост - $host
IP-адрес - $ip
-----------------”);
mail($email, “статистика”,$str,”From: информация”);
?>
99.
99
3 БӨЛІМ. ДЕРЕКТЕРҚОРЫМЕН ЖҰМЫС
§ 3.1 MySQL ДЕРЕКТЕР ҚОРЫ
Деректер қор құрылымы
SQL Server мәліметтер деректер қорында сақталады. Деректер қор құрылымын екі жақтан
қарастыруға болады: қисын және физикалық.
Деректер қордың қисын құрылымы кестелердің құрылымын, олардың арасындағы өзара
қарым-қатынасын, қолданушылардың тізімін, сақталатын процедураларды, ережелерді, және
деректер қордың басқа объектілерін сипаттайды. Кесте өріс және жазба жинағынан тұрады.
Кестелердің екі түрін белгілейді: тұрақты және уақытша. Тұрақты кестелер бар болады,
өшірілгенше. Уақытша кестелер олар өшірілгенше. Жергілікті уақытша кестелер ағымдағы сеанста
бар болады, содан кейін өшіріледі. Аумақты уақытша кестелер бар болады қолданылған барлық
сеанстар аяқталғанша.Транзакция журналы жұмыс аймағы болып келеді. Бұл аймаққа SQL Server
транзакция басталып аяқталғанша ақпаратты жазады.
Деректер қордың физикалық құрылымына деректер қордың файлдары мен транзакция
журналының сипаттамасы кіреді. Сонымен қатар, ДҚ алғашқы өлшемі, өсу қадамы, максималды
өлшемі, конфигурация параметрлері кіреді.
2. SQL Server деректер қор архитектурасы.
Бір серверге мыңдаған қолданушылар қатынай алатын көптеген деректер қоры кіреді.
Microsoft SQL Server ДҚ екі типке бөлінеді: жүйелік және қолданушылық. Жүйелік ДҚ жүйені
басқаратын метамәліметтер орналасады. Microsoft SQL Server орнатқан кезде келесі жүйелік ДҚ
құрылады: master, model, tempdb и msdb.
Master жүйелік ДҚ қолданушылық ДҚ мен Microsoft SQL Server жұмысын басқарады. Мұнда
келесі мәліметтер бар:
қолданушылардың есептік жазбалары;
ағымдағы процесстер туралы мәліметтер;
- жүйелік қателер туралы хабарламалар;
- сервердегі деректер қоры туралы хабарламалар;
деректер қордың ерекшеленген өлшемдері;
белсенді блокировкалар туралы хабарламалар;
ДҚ қатынауға мүмкін құрылғылар туралы хабарламалар;
жүйелік администрлеудің процедуралары.
Model жүйелік ДҚ ағымдағы серверде құрылатын ДҚ үшін шаблон болып келеді. Мұнда әр
қолданушылық ДҚ-на қажет жүйелік кестелер бар. Бұл ДҚ-на келесі объектілерді орналастырады:
қолданушымен анықталатын мәліметтер типтері;
енгізуді тексеретін ережелер;
үнсіз келісім шарт бойынша мәндер;
сақталатын процедуралар;
ДҚ рұқсат беретін қолданушылар туралы ақпарат.
Тempdb жүйелік ДҚ дискіге келесі уақытша объектілерді орналастыру үшін қызмет етеді:
кесте, топтасу не реттеу ұсыныстардың аралық нәтижелері және т.б. Мsdb жүйелік ДҚ SQL
Executive қызметін жоспарлау үшін қолданылады. Msdb ДҚ келесі жүйелік кестелер: sysalerts,
sysoperators, sysnotifications, systasks, syshistory және sysservermessages. Бұл кестелерде сәйкесінше
келесі ақпарат бар: оқиғамен анықталған қолданушылар; операторлар; оқиғамен операторлардың
байланысы; серверге хабарлама және т.б.
ДҚ каталогы жүйелік кестелердің жинағы болып келеді. Жүйелік кестелердің атаулары sys
сөзінен басталады. Мұнда қолданушылар, триггерлер мен сақталатын процедуралар, кестелер,
кестедегі индекстер, мәліметтер типтері және т.б. туралы ақпарат сақталады. Жүйелік кестелердің
атаулары сақталатын ақпаратқа байланысты. Мысалы, sysindexes жүйелік кестесінде индекстер
туралы мәліметтер бар. Әр ДҚ-да шамамен екі файл бар: біреуі ақпаратты сақтау үшін
қолданылады, екінші транзакция журналы үшін. ДҚ-да келесі типтес файлдар бар:
100.
100
primary –негізгі файл. Бұл файлда ДҚ мен оның объектілері туралы жүйелік ақпарат бар.
Primary файлында мәліметтер де сақталады. Әр ДҚ-да бір ғана primary типтес файл бар.
Файлдың кеңейтілуі - .mdf.
secondary – екінші файл. Тек мәліметтерді сақтау үшін қолданылады. Файлдың кеңейтілуі -
.ndf.
transaction log – транзакция журналы. Мұнда деректер қорында орындалатын транзакция
туралы ақпарат сақталады. Файлдың кеңейтілуі: .ldf.
Деректер қордың физикалық архитектурасы
ДҚ-дың файлында мәліметтерді сақтаудың негізгі бірлігі – парақ. Әр парақтың көлемі - 8192
байт, бірінші 96 байт парақтың тақырыбына беріледі. Парақтардың келесі алты типтері бар:
1) Data –text, ntext, image типтес мәліметтерден басқа деректер сақталады;
2) Index – индекстер туралы ақпаратты сақтайды;
3) Text/Image – text, ntext, image типтес мәліметтер сақталады;
4) Global Allocation Map (GAM) – экстерн (8 парақтан тұратын топ) қолданған жөнінде ақпарат
сақтайды;
5) Page Free Space (PFS) – парақтағы бос орын туралы ақпарат сақтайды;
6) Index Allocation Map (IAM) – кесте не индекс қолданатын экстерн жөнінде ақпарат
сақтайды;
Парақтарды сақтау үшін, яғни Data, Index, Text/Image экстернге бірігеді. Әр экстернде 8 парақ
және 64 Кбайт көлемі бар. Әр парақта қолданушы бар. Қолданушыға байланысты экстерннің біреуі
пайдаланылады:
1. Mixed экстерн.
2. Uniform экстерн
GAM парағы биттік өрістердің екі типін қолданады:
GAM-өрістер нақты экстерн қолданылуы туралы ақпарат сақтайды. Сонымен қатар, GAM-
да әр бит сәйкесінше бір экстернге келеді. Бірлік парақтың бос екендігін тексереді. GAM
бір парағы 64000 экстерндер туралы ақпарат сақтайды (яғни мәліметтердің 4 Гбайт).
Shared Global Allocation Map (SGAM) осы парақтың әр биті экстерннің типіне нұсқау
көрсетеді. Бірлік экстерннің типін Mixed екенін көрсетеді. PFS парағында келесі 8000
парақтардағы бос кеңістік туралы ақпарат сақтайды. IAM парағы бір қолданушыға тәуелді
парақтар жөнінде ақпарат сақтайды. Әр қолданушы үшін шамамен 1 парақ жасалады.
Деректер қордың қисын құрылымы
Деректер қордың қисын құрылымы ДҚ физикалық құрылғаннан кейін қалыптастырылады.
Құрылған кезінде әр деректер қоры құрамында бірнеше жүйелік кестелер бар болады. Әр объект
бірнеше жүйелік кестелерде сипатталады.
Объекттің толық атауында төрт идентификатор бар:
[сервер атауы].[деректер қор атауы].[қолданушы атауы].[объект атауы]
SQL Server-де объектілердің тоғыз түрі бар:
Table (кесте) – осы объектте ғана деректер қор мәліметтері сақталады. Қалған объектілерде
мәліметтер сақталмайды, тек оларға кестеде қатынауға болады. Реляциялық кестеде жолдар мен
бағандар бар.
View (көріністер) – сұраныспен анықталатын виртуалды кесте болып келеді.
Index (индекс) – мәліметтерді тездетіп іздеу үшін және кестелер арасында тұрақты
байланыстарды орнату үшін қолданылады. Индекс бір немесе бірнеше бағандарда анықталады.
Stored procedure (сақталатын процедуралар) – деректер қор мәліметтермен жұмыс жасайтын
командалар жинағы. Сақталатын процедура серверде орындалады. Сақталатын процедураның іске
қосуы клиенттік қосымша арқылы жүзеге асырылады.
Trigger (триггерлер) – кестеден мәліметтерді қосқанда, жойғанда, өзгерткенде автоматты
түрде іске қосылатын сақталатын процедуралардың арнайы классы. Барлық триггерлер үш
категорияға бөлінеді: қосып қою триггерлері, жаңарту триггерлері, өщіру триггерлері.
101.
101
User Defined datatype (қолданушылық мәліметтер типі) – мәліметтердің жүйелік типі негізінде
жасалады.
Default (үнсіз келісімдер) – кесте бағанына меншіктеледі, егер қосып қою командасында бұл
бағанда мән берілмесе.
Rule (ережелер) – кесте бағанында сақталатын мәндердің жинақтауын шектеу үшін
қолданылады.
Constraint (біртұтастықты шектеу) – бұл орнатылған шарттарға байланысты мәліметтерді
автоматты түрде тексеретін SQL Server механизмдері болып келеді.
MS SQL Server утилиталары
SQL Server жұмысын басқарумен байланысты негізгі амалдар келесі утилиталар көмегімен
іске асырылады:
1. SQL Server Books Online – анықтамалық жүйеге қатынайтын қосымша;
2. SQL Server Query Analyzer – Transact SQL сұраныс тілінің командаларын орындауға
мүмкіндік беретін утилита.
3. SQL Server Service Manager – SQL Server іске қосуын, толық және уақытша тоқтатуын
қамтамасыз ететін утилита.
4. SQL Server Enterprise Manager – қолданушыға SQL Server-ді администрлеуге, барлық
объектілерге қатынауға, сонымен қатар алдында айтылып кеткен утилиталарды іске қосуға
мүмкіндік беретін утилита.
SQL Query Analyzer. Берілген утилита Windows ортасында жұмыс жасайды, жүйе іске
қосылғаннан кейін сұхбат терезесі SQL Server атауын, қолданушы атын және оның паролін
сұратады. Утилитаның негізгі терезесі екі бөліктен тұрады: жоғарғы жағында комнадалардың теруі
ұйымдастырылады, ал төмеңгі жағында сұраныстардың нәтижелері көрсетіледі (сур. 10 қараңыз).
Сурет 10 – SQL Query Analyzer терезесі
Барлық әрекеттер саймандар панелі арқылы жүзеге асырылады. Саймандар панелінде келесі
әрекеттерді орындайтын батырмалар орналасады:
- текст немесе grid-кесте сияқты нәтижені шығарады;
- команда орындалуысыз оның дұрыстығын тексереді;
- команданы іске қосу;
- сұранысты болдырмау;
- сұраныс орындалуы жөнінде қосымша статикалық ақпаратты шығару;
- ағымды қосылыстың параметрлерін шығарады;
- терезені екіге бөлу: сұраныс терезесі және нәтиже терезесі;
- деректер қорын таңдау.
SQL Server Enterprise Manager серверді конфигурирлеуге мүмкіндік береді. Берілген утилита
клиент компьютерінде де іске қосылады. Утилитаның сол жағында объект утилиталарының
102.
102
иерархиясы, ал оңжағында объект мазмұны орналасады (сур. 1). Enterprise Manager менюі және
саймандар панелі таңдалған объектіге байланысты өзгертіледі.
Сурет 11 – SQL Server Enterprise Manager терезесі
Деректер қорды жасау
Деректер қоры екі тәсілмен жасалады: Enterprise Manager утилитасы арқылы немесе Create
Database командасы көмегімен. Databases тобында қолданылатын серверді таңдап, Action
менюіндегі New Database командасын орындау қажет. Содан кейін ДҚ файл параметрлерін
анықтайтын сұхбат терезесі мен транзакция журналы шығады:
- Name – жасалатын деректер қордың атауы;
- Automatically grow title – ДҚ-дың өлшемінің автоматты өсуіне рұқсат бермейді: in megabytes
– мегабайтқа ауысуына нұсқау береду, by percent – пайызда көрсетеді;
- Restrict File growth – мегабайтта бір мәндерге байланысты ДҚ-дың өсуін шектейді;
- Unrestricted file growth – ДҚ-дың өлшемін тексеретін режимді сөндіреді.
§ 3.2 SQL КЕСТЕМЕН ЖҰМЫС. SQL СҰРАНЫСТАРЫ
Реляциялық деректер қорында мәліметтер базалық кестеде сақталады. SQL Server-дің бір
деректер қорында мәліметтер екі миллиардқа дейін жетуі мүмкін. SQL Server-де кестені не SQL
Server Enterprise Manager көмегімен, не Transact-SQL тілінде CREATE TABLE командасы арқылы.
Бұл командада келесі опциялар бар:
құрылған кестесі бар деректер қор атауы;
кесте қолданушысы;
кесте атауы;
1-ден 1024 баған аралығында спецификациялар;
бірінші кілтті шектеу (қажет емес);
1-ден 250 шектеулер (қажет емес);
сыртқы кілттің 1-ден 253 шектеулер (қажет емес);
кесте сақталатын файлдар тізімі (қажет емес).
Бағанның әр анықтамасында оның атауы мен мәліметтер типі бар болу керек. Кейбір
мәліметтер типтері үшін ұзындық пен дәлдік берілуі қажет. Сонымен қатар, decimal мәліметтер типі
үшін үтірден оң жағынан қарағанда мәндер саны берілуі қажет.
Кестені құру үшін Action менюінде New Table командасын таңдау қажет. Содан кейін,
жасалатын кестенің атауы сұратылады. Келесі опциялары бар кестенің дизайнері ашылады:
Column Name – баған атауы;
Data Type – берілген өріс типі. Кесте 1-де Microsoft SQL Server негізгі типтері көрсетіледі:
Кесте 1 – MS SQL Server мәліметтер типтері
103.
103
Типі Байттар өлшеміСипаттамасы
Binary(n) 1,2 Гб дейін Файлдарды сақтау үшін екілік мәліметтер
Varbinary(n) 1,2 Гб дейін Файлдарды сақтау үшін екілік мәліметтер
Char(n) n Символдық жол
Vchar(n) n Символдық жол
Datetime 8 Күн мен уақыт
Smalldatetime 4 Күн мен уақыт
Decimal(p,s) 1-17 p цифрлардың жалпы саны мен үтірден
кейінгі s цифрлар саны
Numeric(p,s) 1-17 p цифрлардың жалпы саны мен үтірден
кейінгі s цифрлар саны
Float 8 Жылжымалы нүктемен сан
Real 4 Жылжымалы нүктемен сан
Int 4 Жылжымалы нүктемен сан
Smallint 2 Бүтін сан
Tinyint 1 0-ден 255-ге дейін бүтін оң сан
Money 8 Ақша мәні
Smallmoney 4 Ақша мәні
Bit 1 Булды мәні
Timestamp Binary (8) сияқты
Text 4 Символдық мәліметтер
Image 4 Екілік мәліметтер
Length – типті таңдағаннан кейін өріс өлшемі автоматты түрде беріледі;
Precision – типті таңдағаннан кейін ондық өлшемі автоматты түрде беріледі;
Default Value – үнсіз келісім бойынша өріс мәндері беріледі;
Allow Null – жалаушаның белгісі берілген өрісте бос мәнді беруге рұқсат береді;
Scale – типті таңдағанда мәліметтердің сандық типі дәл беріледі;
Identity – кестеге жаңа жазбаны енгізген сайын өріске берілген шамамен автоматты түрде
өсіріледі: Identity Seed – бастапқы мән, Identity Increment – санауыштың өсуі.
Кесте дизайнеріне Action менюіндегі Design Table командасы арқылы не контексті меню
арқылы жүзеге асыруға болады. Enterprise Manager арқылы кестеге ақпаратты енгізу үшін Open
Table | Return All Rows командасын орныдау қажет. Жазбалардың санын Open Table | Return Top
командасы арқылы шектеуге болады.
Индекстер
Индекстер мәліметтердің реттеп шығаруын және таңдауын ұйымдастыру үшін қолданылады.
Индекс болмаса SQL Server сұраныстыорындау үшін кестені сканерлеу керек, яғни кестенің барлық
жазбаларын қарастыру керек. Егер кестенің өлшемі көлемді болса, онда серверге үлкен жұмыс
жүктеледі. Индекстер қажет мәліметтерге нұсқау болып келеді.
Деректер қорында индекс дегеніміз кесте парақтарындағы қажет мәліметтерге сілтеме
жасалатын тізім. Басқа жақтан қарағанда, деректер қордың объектісі болып келеді. Бірақ бұл
обектілерге қосымша жады қажет. SQL Server индексін құрған кезде кесте сканерленеді, сонымен
қатар индекстелген бағанда мәнді таңдап, индекстелген параққа мәліметтер парағына нұсқағыш
және индекстелген мәндер үшін жолдар идентификаторларын жасайды.
SQL Server-де индекстердің келесі екі типі мүмкін: кластерлік және кластерлік емес.
Кластерлік типтес индекстер үшін индекстегі жолдардың тізбегі мәліметтердің физикалық
ретімен сәйкес келу керек. Кластерлік индексте тікелей мәліметтер орналасады. Мұндай индекс
мәліметтерге қатынау жұмысын тездетеді. Іздеу, реттеу және топтау амалдарын орындау үшін
көбінесі кластерлік индекс қолданылады. Мысалы, ол үшін көбінесе алғашқы кілт құрылған баған
қолданылады.
Кластерлік емес типтес индекстерде мәліметтермен байланыс қисын түрдес. Сондықтан, бір
кесте үшін бірнеше индекстер беруге болады.
104.
104
SQL Server-де индекстердіекі тәсілмен құруға болады: SQL Server Enterprise Manager
программасы арқылы және Transact-SQL тілінің CREATE INDEX операторы көмегімен. Кесте үшін
индексті тек оның тікелей қолданушысы ғана құра алады.
CREATE INDEX инструкциясында индекс атауы, бір кесте және 16 баған болу керек. Мұнда
индекс атауы, бір кесте және 16 бағанға дейін беріледі. Кластерлік индекс жасау үшін CREATE
INDEX инструкциясына CLUSTERED кілттік сөз қолданылады.
CREATE [UNIQUE][CLUSTERED|NONCLUSTERED]INDEX имя_индекса
ON имя_таблицы(имя_столбца[,имя_столбца]...)
[WITH]
[FILLFACTOR = x]
[[,] IGNORE_DUP_KEY]
[[,] {SORTED_DATA | SORTED_DATA_REORG}]
[[,] {IGNORE_DUP_ROW | ALLOW_DUP_ROW}]]
[ON имя_сегмента]
Мысал
CREATE UNIQUE CLUSTERED INDEX au_id_ind
ON authors (au_id)
Индексті құрастырғанда Enterprise Manager утилитасы қолданылады. Алғашқы қадамда, кесте
ерекшеленеді, содан кейін, Action| All Tasks| Manage Index командасы орындалады. Ашылған сұхбат
терезесінде мәліметтер қоры мен кесте пайдаланылады. New батырмасы жаңа индексті ашу үшін
терезені ашады, содан кейін индекске кіретін өрістерді ерекшелейді, сонымен қатар, келесі
опцияларды орнатады:
Unique values – ендірілетін мәндердің ерекшелігі;
Ignore duplicate values – индекстелген өрістерде қайталанатын мәндерді ұйымдастырады;
Clustered index – бұл опция кластерлік индекстеуді ұйымдастыру үшін қоладанылады.
Кестеде бір кластерлік индекс болу мүмкін.
Кестеден индекстен басқа алғашқы кілтті құруға болады. Алғашқы кілтті құрғанда кесте
дизайнерін ашу қажет, таңдалған өрісте нөлдік емес мәндер енгізуіне рұқсат бермеу керек, яғни
Allow Null бағанында белгі алынуы керек, содан кейін Set Primary Key батырмасына басу қажет.
Диаграммаларды қолдану
Диаграмма объектісі графиктік режимде мәліметтердің құрылымын өңдеуге мүмкіндік береді.
Сонымен қатар, кестені құру, кілттерді анықтау, кестелер арасындағы байланысты ұйымдастыру
мүмкіндіктерін туғызады. Диаграмманың ерекшелігі оның барлық объектілердің автоматты
жасалынуы. Action менюінің New Database Diagram командасы диаграммаларды өңдеу мастерін іске
қосуына алып келеді.
Саймандар панелінің батырмаларының көмегімен кестенің сыртқа бейнесі мен орналасуын
басқаруға болады. Кілттердің көмегімен диаграмма терезесінде кестелер арасындағы байланысты
орнатуға болады. Мұндай өріс кестенің сыртқы кілті деп аталады. Содан кейін экранда сұхбат
терезесі шығады. Бұл терезеде байланыс атауы және сипаттамасы сұратылады:
Relationship name – байланыс атауы;
Primary key table – кестенің алғашқы кілті;
Foreign key table – кестенің сыртқы кілті;
Check Existing data on creation – берілген байланысқа кесте мәндерін тексереді;
Enabled relationship for INSERT and UPDATE – жасалынған байланыс кестеде ақпаратты
қосу және өзгерту амалдары қарастырылады.
Жасалынған диаграмманы құрастырып болғанда, жүйе атауын мен мүмкіндіктерін сұратады.
Деректер қорын, кестені және көріністерді өшіру
Деректер қоры мен оның объектілері SQL Server-де SQL Server Enterprise Manager
программасының көмегімен өшірілуі мүмкін не келесі инструкциялар арқылы:
105.
105
DROP DATABASEимя_базы_данных;
DROP TABLE имя_таблицы;
DROP VIEW имя_представления;
DROP INDEX имя_индекса.
Бұл инструкциялар қатаң сұранысты қажет етеді. Деректер қорын өшіргенде онымен бірге
объектілері де өшіріледі. Кесте өшірілгенде онымен байланысқан индекстер, шектеулер, триггерлер
мен мүмкіндіктер өшіріледі.
Басты кестені өшіру үшін бірінші қосымша кестенің сыртқы кілттің шектеулерін өшіру керек.
Идентификаторлар және өрнектер
SQL Server-мен жұмысы үшін Transact-SQL деп аталатын SQL тілінің диалекті қолданылады.
SQL алғашқы тілімен салыстырғанда Transact-SQL-да қосымша кілттік сөздер енгізілген.
Негізгі операторлар INSERT, DELETE, UPDATE, SELECT және басқа операторларда SQL
тілінің синтаксисі қолданылады. Transact-SQL қосымша мүмкіндіктері ақпараттың көлемін
басқарауына байланысты.
SQL Server барлық объектілерінде өз атаулары бар. Уақытша объектілерді белгілеу үшін
арнайысимволдар қолданылады: @ - уақытша айнымалыларнемесе параметрлер, # - уақытша кесте
не сақталатын процедура. Уақытша объектілер бір сеанс не транзакция уақытында бар болып, содан
кейін өшіріледі. Аумақты айнымалыларды белгілеу үшін келесі символдар қолданылады:
@@[атауы], ##[атауы]. Шектеулерді шектеу үшін объект атауын квадрат жақшаларына не
тырнақшаға алады. Егер объект атауы (кесте, баған не т.б.) сақталатын процедураның аргументі
ретінде қажет етілсе, онда командалар апострофқа алынады.
Өрнектер функция, амалдар, тұрақталыр идентификаторларының жинағы ретінде көрсетіледі.
Өрнек сақталатын процедураның командаларында аргумент ретінде қолданылады. Келесі
операторлар SQL Server-де анықталады:
Унарлық +,-
Меншіктеу =
Арифметикалық +,-,*,/,%
Жолдық +
Салыстыру <,>,=,<=,>=,<>,!=,!<,!>
Қисын ALL, AND, ANY, BEETWEN, EXISTS, IN, LIKE, NOT, OR, SOME
Биттік &,|,^
Қисын операторлар сұратуларды жазғанда не мәліметтерді өзгерту командаларында
қолданылады.
ALL – скалярлық өрнектің барлық ішкі сұраныстың қайтаратын мәндерімен салыстыруы
орындалады. Егер қисын шарты орындалса, сонда ғана барлық шарттар орындалды деп айтуға
болады.
Синтаксисі:
<өрнек>{=,<>,!=,>,>=,!<,<=,!<} ALL (<ішкі сұраныс>)
ANY – ішкі сұраныстың қайтаратын мәндерінің әрқайсысымен скалярлық өрнектің
салыстыруын орындайды. Және ақиқатты қайтарады, егер ішкі сұраныстың мәндерінің бірі жұмыс
істесе.
Синтаксисі:
< өрнек >{=,<>,!=,>,>=,!<,<=,!<} ANY (<ішкі сұраныс >)
BEETWEN – оператор ақиқат мәнін қайтарады, егер өрнек мәні анықталатын диапазонына
кірсе. Егер NOT қисын операторы ақиқатты қайтарады егер мән диапазонға кірмесе.
Синтаксисі:
< өрнек > [NOT] BEETWEN <жоғарғы табалдырық> AND <төмеңгі табалдырық >
IN – оператор ақиқатты қайтарады, егер ішкі сұраныстың қайтаратын мәндерімен өрнек
мәндері сәйкес келсе. Мәндер тізімі үтір арқылы саналады. Оператордың жалпы форматы:
< өрнек > [NOT] IN (<ішкі сұраныс > | <мәндер тізімі>)
EXISTS – бар болу операторы ақиқатты қайтарады, егер ішкі сұраныс бір жолды қайтарса, ал
ішкі сұраныстың нәтижесі бос болса, онда жалған мәні қайтарылады.
106.
106
Синтаксисі:
EXISTS (<ішкі сұраныс>)
LIKE – жолдық мәндер салыстырмасы берілген шаблонмен өрнекті салыстыру амалын
орындайды. Шаблонда алмастыру символдары бар: % - символдардың кез келген саны, _ - кез
келген бір символ,[] – мүмкін болатын символдаржинағы, [^ ]- сәйкес символдың орынынаберілген
тізімнің барлық символдары болу мүмкін.
Синтаксисі:
<өрнек> [NOT] LIKE <шаблон>
Басқаратын конструкциялар
1) BEGIN … END – бір блокқа екі не одан көп командаларды топтау амалын жүргізеді. transact
SQL кейбір командалары басқа командалармен орныдалмайды, сондықтан олар берілген
конструкцияға кірмейді. Мұндай командаларға: резервті көшіру командасы, кесте
құрылымын өзгерту командасы, сақталатын процедураның командасы және т.б. жатады.
2) If <қисын өрнек >
<команда 1>
[ Else
<команда 2>]
IF кілттік сөзден кейін шарт болады. Есептеу нәтижесі ақиқат, жалған, не белгіссіз болу
мүмкін. Егер шарт ақиқат болса, онда келесі инструкция орындалады. Егер жалған не белгіссіз
болса, онда ELSE кілттік сөзден кейін болатын инструкция орындалады.
3) CASE … END – жиын таралымы, басқа өрнектерде айнымалы ретінде қолданылатын
функция болады. Конструкцияда екі түрі бар:
CASE <өрнек >
WHEN <вариант> THEN <нәтиже>
[…]
[ ELSE <нәтиже> ]
END
CASE
WHEN <шарт> THEN <нәтиже >
[…]
[ ELSE <нәтиже> ]
END
4) COALESCE – мәндер тізімінен нөлдік емес бірінші мәнді қайтарады.
COALSCE (<мәндер тізімі >)
5) WHILE циклінің инструкциясы
WHILE <шарт>
< цикл денесі>
BREAK операторы циклді аяқтап, басқармасын келесі WHILE операторына береді;
CONTINUE операторы – циклдің ағымды итерациясын тоқтатып, келесі итерацияға көшеді.
SELECT, INSERT, UPDATE, DELETE инструкциялар
SQL SELECT инструкциясы бір не бірнеше кестелерден жолдарды шығарады. SELECT
инструкциясында қажет мәліметтермен бағандар тізіміні береді. Сонымен қатар, бұл инструкцияда
сізге қажет мәліметтерді топтау не сұрыптауамалдарын белгілеуге болады. Мынадай түрде SELECT
инструкциясының базалық құрылымы болады:
SELECT бағандар_тізімі
FROM кесте_тізімі
WHERE таңдау _шарты
107.
107
GROUP BY топтау_үшін_бағандар
HAVING таңдау _шарты
ORDER BY сұрыптау _үшін_бағандар
Ал, мына түрі SELECT инструкциясының қарапайым түрін көрсетеді:
SELECT * FROM Table1
SELECT сөзінен кейін келетін (*) жұлдызша символы «барлық бағандар» дегенді білдіреді.
FROM сөйлемінде бір кесте не көрініс беріледі. Берілген мысалда кесте Table1. Кесте не көрініс
атаулары дерекқорының атауымен дәлелденуі керек. Мысалы, MyBasa.dbo.Table1.
Кестеден қайталанатын жолдарды шектеу үшін SELECT инструкциясына WHERE сөйлемін
қосу керек. WHERE қарапайым сөйлемінде SQL предикаты болып келетін таңдау шарты болу керек.
Сұраныс таңдау шарты ақиқат болатын жолдарды қайтарады.
WHERE сөйлеміндегі таңдау шарты бірнеше предикаттардан тұру мүмкін. Бұл предикаттар
AND және OR операторлармен біріккен. Болдырмау шарты NOT қисын операторы арқылы беріледі.
ORDER BY сөйлемі қортынды кестені SELECT инструкциясы арқылы сұрыптау үшін
қолданылады. Бұл сөйлемде бағандар тізімі осы бағандардың мәндерін өсу (ASC кілттік сөзі арқылы
беріледі) не кему (DESC кілттік сөзі арқылы беріледі) бойынша сұрыптау беріледі.
INSERT инструкциясы кестеге жаңа жолды қосу үшін қолданылады. строки. Мынадай түрде
INSERT инструкциясының базалық құрылымы болады:
INSERT INTO кесте_атауы
(бағандар_тізімі)
VALUES (бағандар _мәндер_ тізімі)
Кесте атуынан кейін INSERT инструкциясында жақшаға алынған бағандар тізімі, содан кейін
осы бағандардың мәндер тізімі бар VALUES сөйлемі кездеседі.
INSERT инструкциясында екі тізімде қатаң бір-біріне сәйкес болу керек, яғни мәндер
бағандар тізіміне сәйкес белгіленуі керек. Бағандар тізімін белгілемеуге де болады, ол үшін
кестенің барлық баған мәндері берілуі керек.
INSERT инструкциясында жүйе анықта алмайтын мәдердің барлық бағандары берілу керек.
IDENTITY атрибутымен бағанды анықтауға қажет емес, себебі мәні үнсіз келісім бойынша
беріледі. Егер қалып қойған баған үшін мәні үнсіз келісім бойынша берілсе, онда осы бағанға ол да
жүктеледі. IDENTITY және rowversion бағандарына автоматты түрде сәйкес идентификаторлар
меншіктеледі, ал қалған бағандарға NULL мәні беріледі. Бұдан басқа, INSERT инструкциясында
DEFAULT кілттік сөзі жалғасады, себебі оған үнсіз келісім мәні не NULL меншіктеледі.
UPDATE инструкциясы кестедегі бар жолдарды жаңарту үшін қызмет етеді. н служит для
обновления существующих строк в таблице. UPDATE инструкциясының базалық құрылымы келесі
түрде болады:
UPDATE кесте _атауы
SET меншіктеу_амалы
WHERE таңдау _шарты
SET кілттік сөзінен кейін осындай синтаксиспен бір не бірнеше амалдар беріледі:
баған _атауы = өрнек
WHERE сөйлемінде жаңартылатын кесте жолдарын таңдау шарты беріледі. Егер WHERE
сөйлемі берілмесе, онда кестенің барлық жолдары жаңартылады.
Кестеден жолды өшіру үшін DELETE инструкциясы беріледі:
DELETE FROM кесте _атауы
WHERE таңдау _шарты
Кездейсоқ жағдайда кестеде барлық жолдарды өшіріп тастауға болады - WHERE сөйлемсіз
DELETE инструкциясын жүктесе. Бірақ кестенің өзі базада қалады.
SQL предикаттары және үштік қисын
SQL предикаты – бұл қарапайым қисын өрнек, оның мәні ақиқат, жалған не белгіссіз болу
мүмкін. Жалпы алғанда, нәтижесі келесі типке және ANSI стандартына сәйкес
өрнек1 = өрнек2
108.
108
егер, өрнек1, өрнек2не екеуіде NULL тең болса. Бұл ереже салыстыру операторына
қарамайды, ол өрнекте тең, тең емес, үлкен, кіші не т.б.
Предикатты болдырмау NOT операторы және екі предикаттарды біріктіру AND не OR
операторлары жай емес екілік қисынды қолданады, ал үштік қисынның қызмет ету сызбасы кесте 2
берілген.
Кесте 2 – Предикаттар үшін үштік қисында қолдану
p q NOT p p AND q p OR q
TRUE TRUE FALSE TRUE TRUE
TRUE FALSE FALSE FALSE TRUE
TRUE Белгіссіз FALSE Белгіссіз TRUE
FALSE TRUE TRUE FALSE TRUE
FALSE FALSE TRUE FALSE FALSE
FALSE Белгіссіз TRUE FALSE Белгіссіз
Белгіссіз TRUE Белгіссіз Белгіссіз TRUE
Белгіссіз FALSE Белгіссіз FALSE Белгіссіз
Белгіссіз Белгіссіз Белгіссіз Белгіссіз Белгіссіз
Тұрақтылар, функциялар және өрнектер
SELECT кілттік сөзінен кейін кездесетін қайтарылатын мәндер тізімінде бағандар
атауларынан басқа, тұрақтылар, функциялар және өрнектер болады.
Сандық мәліметтер үшін SQL төрт стандартты арифметикалық амалдарды (+, -, * және /)
қайтарады, сонымен қатар, модуль бойынша бөлу не бүтінсандық бөлуден қалдық алу (%).
Transact SQL (+) операторы екі символдық жолды біріктіру үшін қолданылады.
SQL скалярлық функциялардың реті анықталған. Скалярлық функция литерал, баған не өрнек
атауы болу мүмкін аргументтерді қабылдайды. Егер фукнцияда баған атауы берілсе, онда ол
қалыптасқан кестедегі әр жолдың баған мәнінде қолданылады.
Үшінші кестеде SQL Server қамтамасыз ететін негізгі скалярлық функциялардың тізімі
беріледі:
Кесте 3 – SQL Server-мен қамтамасыз етілетін функциялар
Типті алмастыру
функциялары
Сипаттамасы
CAST (өрнек AS мәліметтер-
типі (ұзындығы))
CAST (өрнек AS мәліметтер-
типі (үтірден-кейінгі-
мәндердің-дәлдігі))
Өрнекті берілген мәліметтер типіне және ұзындығына
алмастырады. Ұзындық – бұл қажет емес аргумент, char,
varchar, binary және varbinary типтері үшін аргумент мәні 1-
ден 8000-ға дейін; nchar және nvarchar типтері үшін 1-ден
4000-ға дейін. Үнсіз келісім шарт бойынша ұзындығы 30-ға
тең. Сандық мәліметтердің типтері үшін дәлдік пен үтірден
кейінгі мәндердің саны беріледі.
CONVERT (мәліметтер-типі
(ұзындығы), өрнек)
CONVERT (мәліметтер-типі
(дәлдік, үтірден-кейінгі-
таңбалар), өрнек)
CONVERT (мәліметтер-типі
(ұзындығы), өрнек, күн
мерзімі-стилі)
Символдық не сандық өрнектер үшін CONVERT функциясы
CAST функциясына эквивалентті. datetime және smalldatetime
типтес өрнектерді күн мерзімі-стилі типтес аргументіне
алмастыру үшін анықталады.
109.
109
STR (өрнек, ұзындығы,
үтірден-кейінгі-таңбалар)
Сандықөрнекті көрсететін жолдық мән. Ұзындық және
үтірден-кейінгі-таңбалар аргументтері қажет емес. Үнсіз
келісім шарт бойынша ұзындық 10 нжәне 0-ге тең.
Жолдармен жұмыс істеу
үшін қажет функциялар
Сипаттамасы
ASCII (жол) ASCII бүтінсандық кодты қайтарады (0-255 диапазонында)
берілген жолдың солға қарай тұрған символды.
CHAR (ASCII-код) ASCII-кодқа сәйкес 0-255 диапазонында символды қайтарады.
Бұл диапазонға жатпайтын мәндер үшін NULL қайтарады.
CHARINDEX (ішкі жол, жол)
CHARINDEX (ішкі жол, жол,
бастапқы-орыны)
Жолдағы ішкі жолдың бастапқы орынын қайтарады. Жолдағы
бірінші орында нөмірі 1 болады. Егер ішкі жол табылмаса,
онда 0-ді қайтарады. Егер сонымен бірге бастапқы орынды
берсек, онда ізденіс осы орыннан бастап ізделінеді.
DIFFERENCE (жол1, жол2) 0-ден (нашар сәйкестік) 4-ке дейін (жақсы сәйкестік)
диапазонында SOUNDEX мәндерді салыстыру жолы арқылы
алынған жолдық өрнектерден айырмашылығы болып келеді.
LEFT (жол, ұзындық) Жолдың бірінші символдан бастап, берілген ұзындықпен ішкі
жолды қайтарады.
LEN (жол) Аяқталатын пробелдерді алмайтын, жолдың ұзындығын
қайтарады.
LOWER (жол) Жолды төмеңгі регистріне аударады.
LTRIM (жол) Жолдан пробелдерді өшіреді.
NCHAR (код-Unicode) 0-65535 диапазонында Unicode-кодына сәйкес символды
қайтарады. Осы диапазоннан тыс мәндер үшін NULL мәнін
қайтарады.
PATINDEX (шаблон, жол) Жолдағы шаблон бастапқы орынын қайтарады. Жолдағы
бірінші орында нөмірі 1 болады. Егер шаблон табылмаса, онда
0-ді қайтарады. Егер шаблон жолдың басына не соңына сәйкес
келмесе, онда ол % символынан басталуы керек. Жол
аргументінде келесі мәліметтер типтері бар char, varchar,
nchar, nvarchar не text.
QUOTENAME (жол, шектеу) Жолды шектеумен бар SQL Server идентификаторы түрінде
қайтарады. Шектеу-символы берілмеу де мүмкін. Ол болу
мүмкін ‘, “, [ немесе ]. Егер шектеу берілмесе, онда жол
квадрат жақшаларына алынады.
REPLACE (жол, ішкі жол,
алмастырылатын-жол)
Жолдағы ішкі жолдың барлық кірістерін алмастырылатын
жолға аумастырылады.
REPLICATE (жол, n) n рет қайталанған жолды қайтарады.
REVERSE (жол) Кері ретте құрастырылған символдардан тұратын жолды
қайтарады.
RIGHT (жол, n) Жолдың соңғы символдардан тұратын ішкі жолды қайтарады.
RTRIM (жол) Аяқталатын пробелдерді жолдан өшіреді.
SOUNDEX (жол) Жолдың дыбысын көрсететін төртсимволдық кодты
қайтарады.
SPACE (n) n пробелдерден тұратын жолды қайтарады. Егер n теріс болса,
онда NULL қайтарады.
STUFF (жол1, бастапқы-
орыны, ұзындығы, жол2)
Жол1-ден берілген ұзындықпен ішкі жолды бастапқы орыннан
бастап өшіреді, содан кейін оның орнына жол2-ні қояды.
SUBSTRING (жол1, бастапқы-
орыны, ұзындығы)
Жолға кіретін берілген ұзындықпен бастапқы орыннан ішкі
жолды бастап қайтарады.
UNICODE (жол) Unicode бүтінсандық кодты қайтарады (0-65535
диапазонында) жолдан солға қарай символға байланысты.
UPPER (жол) Жолды жоғарғы регистріне аударады.
110.
110
Математикалық
функциялар
Сипаттамасы
ABS (өрнек) Өрнектіңабсолют мәні.
ACOS (өрнек) Радианда өрнектің арккосинусы.
ASIN (өрнек) Радианда өрнектің арксинусы.
ATAN (өрнек) Радианда өрнектің арктангенсы.
ATN2 (өрнек1, өрнек2) Радианда (өрнек1 / өрнек2) арктангенсы.
CEILING (өрнек) Ең кіші бүтін сан өрнек.
COS (өрнек) Радианда берілетін өрнек косинусы.
COT (өрнек) Радианда берілетін өрнек котангенсі.
DEGREES (өрнек) Радианда берілетін, бұрыштың градус өлшемі.
EXP (өрнек) Экспонента; (е) негізгі натурал логарифм, дәрежеге алынған
өрнек.
FLOOR (өрнек) Ең үлкен бүтін сан өрнек.
LOG (өрнек) Өрнектің натурал логарифмы (е негізі бойынша).
LOG10 (өрнек) Өрнек логарифмы (10 негізі бойынша).
PI () 3,1415926535897931 тұрақтысы.
POWER (өрнек1, өрнек2) Өрнек1-ді өрнек2-ге дәрежеге алу нәтижесі.
RADIANS (өрнек) Градуспен берілген бұрыштың радиандағы өлшемі.
RAND (бастапқы-мәні) 0 мен 1 арасындағы кездейсоқ сан. Бүтінсандық бастапқы мән
берілмеу мүмкін.
ROUND (өрнек, дөңгелектеу) Берілген дәлдікпен өрнек мәнін дөңгелектеу. Оң санды
дөңгелектеу қандай таңбаға дейін амал орындалатынын
анықтайды. Мысалы, ROUND (123.456, 2) 123.46 қайтарады, ал
теріс дөңгелектеу солға таңбаныанықтайды. Мысалы, ROUND
(123.456, -2) 100 қайтарады.
SIGN (өрнек) –1 қайтарады, егер мән теріс болса; 0, егер нөлге тең болса; 1,
егер оң болса.
SIN (өрнек) Радианда берілетін өрнектің синусы.
SQUARE (өрнек) Өрнектің квадраты.
SQRT (өрнек) Өрнектің квадрат түбірі.
TAN (өрнек) Радианда берілетін өрнектің тангенсы.
Күн мерзіммен және
уақытпен жұмыс істеу
функциялары
Сипаттамасы
DATEADD (күн мерзімнің-
бөлігі, n, datetime)
datetime, осыған қоса күн мерзімнің бөліктерін қайтарады.
Функциямен n параметрінің бүтін бөлігі қайтарылады.
DATEDIFF (күн мерзімнің-
бөлігі, datetime1, datetime2)
datetime1 және datetime2 арасындағы күн мерзімнің бөлік
санын қайтарады. Егер datetime1 datetime2-ден кіші болса,
онда функция оң мәнді қайтарады, кері жағдайда – теріс. Егер
осы параметрлердің мәндері бірдей болса, онда 0
қайтарылады.
DATENAME (күн мерзімнің-
бөлігі, datetime)
datetime мәнімен белгіленетін жолды қайтарады. Тек ай мен
апта күндерін анықтау үшін қолданылады. Ал басқа мәндер
үшін DATEPART функциясымен анықталатын мәнді
қайтарады.
DATEPART (күн мерзімнің-
бөлігі, datetime)
datetime бөлігімен анықталатын бүтінсандық мәнді қайтарады.
DAY (datetime) datetime (1-ден 31-ге дейін) берілетін ай күннің бүтінсандық
нөмірін қайтарады.
GETDATE ()
CURRENT_TIMESTAMP
datetime типтес мән түрінде бүгінгі күн мен уақытты
қайтарады.
GETUTCDATE () datetime типтес Гринвич бойынша уақытты қайтарады.
111.
111
ISDATE (өрнек) 1қайтарады, егер өрнек мүмкін болатын күн бар жолды
қайтарса.
MONTH (datetime) datetime параметрінде берілген айдың бүтінсандық нөмірін
қайтарса (1-ден 12-ге дейін).
YEAR (datetime) datetime параметрінде берілген жылдың нөмірін қайтарса
(1753-тен 9999-ға дейін).
Қолданушы мен рөлдермен
жұмыс істеу функциялары
Сипаттамасы
CURRENT_USER
SESSION_USER
USER
Ағымдағы инструкцияны орындайтын дерекқор
қолданушының атауы.
IS_MEMBER (рөл) 1 қайтарады, егер ағымдағы қолданушы берілген рөлдің (не
Windows топтың) мүшесі болса, кері жағдайда 0. Дұрыс
берілмеген рөл үшін NULL қайтарады.
IS_SRVROLEMEMBER
(серверлік-рөл, есеп-жазба) не
IS_SRVROLEMEMBER
(серверлік_рөл)
1 қайтарады, егер есеп жазбасы берілген серверлік рөлдің
мүшесі болса, кері жағдайда 0. Дұрыс берілмеген рөл үшін
NULL қайтарады.
SUSER_SID (сервердің-есеп-
жазбасы)
Сервердің берілген есеп жазбасын қорғаудың ішкі
идентификаторы (SID).
SUSER_NAME (қорғау-
идентификаторы)
(SID) қорғау идентификаторына сәйкес келетін есеп
жазбасының аты.
SYSTEM_USER Инструкцияны орындайтын қолданушының есеп жазбасының
аты.
USER_ID (қолданушы-аты) Дерекқордың берілген қолданушының идентификаторы.
USER_NAME (қолдауншы-
идентификаторы)
Дерекқор қолданушының идентификаторына сәйкес
қолданушы аты.
Агрегаттық функциялар
Скалярлық функциялар кестенің бір жолынан не кестелер біріктірулерінен мәндерді өңдейді.
SQL функциялардың басқа бір типі жолдар жинағының баған мәндерін есептеу негізінде
құрастырылған. Мұндай функциялар агрегаттық (статикалық) функциялар не баған функциялары
деп аталады.
4 кестеде барлық агрегаттық функциялардың тізімі берілген.
Кесте 4 – SQL Server агрегаттық функциялары
Агрегаттық функциялар Сипаттамасы
AVG (өрнек) Өрнектің бос емес мәндердің жинағының орта мәні.
CHECKSUM_AGG (өрнек) Өрнектің бос емес мәндердің бақылау қосындысы.
COUNT (*)
COUNT (өрнек)
COUNT (DISTINCT өрнек)
COUNT (*) берілген жолдар жинағында жолдар санын
қайтарады. COUNT кілттік сөзі қолданылғанда, DISTINCT
кілттік сөзі қолданылуы мүмкін емес. COUNT (өрнек) өрнектің
бос емес мәндердің санын қайтарады. Егер DISTINCT кілттік
сөзі берілсе, онда COUNT функциясы өрнектің уникалды бос
емес мәндердің санын қайтарады. COUNT формасының
барлық функциялары int типтес мәнді қайтарады.
COUNT_BIG (*)
COUNT_BIG (өрнек)
COUNT_BIG (DICTINCT
өрнек)
COUNT_BIG функциясы COUNT функциясы ұқсас, бірақ
айырмашылығы, COUNT_BIG функциясы bigint типтес мәнді
қайтарады.
GROUPING (баған) 1 қайтарады, егер агрегатты жол CUBE не ROLLUP
операторларымен қосылса, кері жағдайда 0 қайтарады.
MAX (өрнек) Өрнектің бос емес мәндердің максималды мәні.
112.
112
MIN (өрнек) Өрнектіңбос емес мәндердің минималды мәні.
SUM (өрнек) Өрнектің барлық бос емес мәндердің қосындысы.
STDEV (өрнек) Өрнектің бос емес мәндердің ортаквадраттық ауысуы.
STDEV P (өрнек) Ығыстырылған өрнектің бос емес мәндердің ортаквадраттық
ауысуы.
VAR (өрнек) Өрнектің бос емес мәндердің дисперсиясы.
VARP (өрнек) Өрнектің бос емес мәндердің ығыстырылған дисперсиясы.
SELECT инструкциясын қолдану
SELECT командасы кестеден бір анықталған ақпаратты алуға мүмкін. Мысалға, кестенің
анықталған бағандарды таңдауды қарастырайық. Сұраныс:
SELECT sname, comm
FROM Salespeople
келесі шығарады:
sname comm
-------- -----------
Иванов 12
Петров 13
Егоров 10
Сидоров 11
Шилин 15
DISTINCT - SELECT командасында екілік мәндерді жою үшін арналған аргумент. Мысалы,
бізге керек қай агентте қазіргі уақытта тапсырыстары бар, сонымен қатар керегі тек агенттердің
кодтар тізімі (snum). Сондықтан келесіні енгізесіз:
SELECT snum
FROM Orders
Сонда нәтижесі мынадай:
snum
-----------
1007
1004
1001
1002
1007
1002
1001
1003
1002
1001
Мысалдан көрініп тұр кодтар қайталанады. Тізімді дубликаттарсыз шығару үшін келесіні
енгіземіз:
SELECT DISTINCT snum
FROM Orders
Сонда нәтижесі мүлдем басқа болады:
snum
-----------
1001
1002
1003
1004
1007
113.
113
SELECT командасында DISTINCTтек бірақ рет ғана белгіленуі керек, егер бірнеше бағандар
таңдалса, онда DISTINCT таңдалған өрістердің бірдей мәндермен жолдарды қарастырмайды.
Мәндері бірдей жолдар сақталады.
DISTINCT орынына ALL белгілеуге болады. Бұл жағдайда, жолдардың дублерлеуі
сақталады.
SELECT командасының WHERE сөйлемі кестенің әр жолы үшін дұрыс, не бұрыс шарттарын
орындауға мүмкіндік береді. Команда тек шартты қанағаттандыратын кестенің жолдарын
шығарады. Мысалы, сізге қажет Алматының барлық агенттердің аттары мен комиссиялары:
SELECT sname, city
FROM Salespeople
WHERE city = 'Алматы'
Егер сұраныста WHERE SQL Server сөйлемі кездессе, онда ол жолдап кестені қарастырып,
тұжырымдама дұрыс екендігіне әр жолды тексереді.
Енді WHERE сөйлемінде сандық өріспен сұранысты құрастырып көрейік. Заказчики
(Customers) кестенің rating өрісі әр критерийлерге тапсырушыларды бөлу үшін арналған. Мысалы
алдындағы тапсырыстардың көлеміне байланысты кредитті бағалау. 100 рейтингімен барлық
тапсырушыларды таңдайық:
SELECT *
FROM Customers
WHERE rating = 100
Мұнда тырнақшалар қолданылмайды, себебі, рейтинг – бұл сандық өріс. Сұраныстың
нәтижесі:
CNUM CNAME CITY RATING SNUM
----- ------------------ ------- ----------- -----------
2001 ТОО Sulpak Алматы 100 1001
2006 Clemens Лондон 100 1001
2007 ОАО "ООО" ТОМСК 100 1004
Transact-SQL жазбаларды таңдаудың күрделі шарттарын құрастыру үшін қолданылады. Ол
үшін қатынас операторлары, қисын операторлары, арнайы операторлар қызмет етеді.
Қатынас операторлары бұл:
= тең
> бұдан үлкен
< бұдан кіші
>= үлкен не тең
<= кіші не тең
<> тең емес
Символдықмәндер мен күн мерзімі үшін стандартты мәндері бар. Символдықмәндер олардың
кодтар терминдерінде салыстырылады.
Мысалы бізге рейтингтері 200 тең барлық тапсырушылары қажет:
SELECT *
FROM Customers
WHERE rating > 200
Нәтижесі:
CNUM CNAME CITY RATING SNUM
----- --------------------------------- ---------- ------- -----
2004 Концерн "Дети лейтенанта Шмидта" Бобруйск 300 1002
2008 ОАО "Валют-транзит" Караганда 300 1007
Қисын операторлары
AND қисын "И"
OR қисын "ИЛИ"
NOT қисын болдырмау
114.
114
AND операторы екіқисын мәнді салыстырып, TRUE (ақиқат) мәнін қайтарады, егер екі мәнде
ақиқат болса (яғни, TRUE), басқа жағдайда - FALSE (жалған).
OR операторы TRUE қайтарады, егер аргументтердің бірі ғана TRUE мәніне тең болса.
NOT операторы TRUE қайтарады, егер оның аргументі FALSE тең болса не керісінше.
Қисын операторларды қолдану SELECT командасының мүмкіндіктерін жоғарлатады.
Мысалы, рейтингі 200 тең Қарағандының тапсырушыларын қарастыру керек. Команда келесі түрде
болады:
SELECT *
FROM Customers
WHERE city = 'Караганда' AND
rating > 200
Біздің дерекқорында бұл шартты қанағаттандыратын тек бір ғана тапсырушы бар:
CNUM CNAME CITY RATING SNUM
----- --------------------------------- ---------- ------- -----
2008 ОАО "Валют-транзит" Караганда 300 1007
Егер OR қолданылса, онда Қарағандыда орналасқан және рейтингтері 200-ден жоғары барлық
тапсырушыларды аламыз:
SELECT *
FROM Customers
WHERE city = 'Караганда' OR
rating > 200
Результат запроса:
CNUM CNAME CITY RATING SNUM
----- --------------------------------- ---------- ------- -----
2004 Концерн "Дети лейтенанта Шмидта" Бобруйск 300 1002
2008 ОАО "Валют-транзит" Караганда 300 1007
NOT мәндерді инвертрлеу үшін қолданылады. Сұраныс:
SELECT *
FROM Customers
WHERE city = "Караганда" OR
NOT rating > 200
Нәтиже:
CNUM CNAME CITY RATING SNUM
----- -------------------- --------- ------- ------
2001 ТОО Рога и копыта Москва 100 1001
2002 AО Бендер и К Одесса 200 1003
2003 Фирма ХХХ Рязань 200 1002
2006 Clemens Лондон 100 1001
2007 ОАО "ООО" ТОМСК 100 1004
2008 ОАО "Валют-транзит" Караганда 300 1007
Өрнектерді топтау үшін Transact-SQL – дөңгелек жақшаларын ( ) пайдаланады. Мысалы:
SELECT *
FROM Customers
WHERE NOT (city = 'Караганда' OR
rating > 200)
Бұл сұраныс Қарағандыда орналаспаған және рейтингі 200 кем тапсырушыларды таңдайды.
Нәтижесі:
CNUM CNAME CITY RATING SNUM
----- ------------------ ------- ------- -----
2001 ТОО Рога и копыта Москва 100 1001
2002 AО Бендер и К Одесса 200 1003
2003 Фирма ХХХ Рязань 200 1002
2006 Clemens Лондон 100 1001
2007 ОАО "ООО" ТОМСК 100 1004
115.
115
Арнайым операторлар: IN,BETWEEN, LIKE, IS NULL.
IN операторы өріс мәні кіретін мәндер тізімін анықтайды. Мысалы, сізге Мәскеудегі не
Хабаровскедегі орналасқан барлық сатушыларды табу керек болсын. Ол үшін келесі сұраныс
қолданылады:
SELECT *
FROM Salespeople
WHERE city = 'Москва' OR
city = 'Хабаровск'
Бұданда қарапайым тәсілі бар:
SELECT *
FROM Salespeople
WHERE city IN ( 'Москва', 'Хабаровск' )
Бұл сұраныстың нәтижесі:
SNUM SNAME CITY COMM
----- ------- ---------- -----
1001 Иванов Москва 12.0
1002 Петров Хабаровск 13.0
IN операторы үшін мәндер жинағы дөңгелек жақшаларына алынады. Ал мәндер үтір арқылы
бөлінеді.
BETWEEN операторы IN операторына ұқсас. Мүмкін болатын мәндер тізімінен
айырмашылығы BETWEEN мәндер диапазонын анықтайды. Сұраныста BETWEEN белгілейсіз,
содан кейін бастапқы мәнін, AND кілттік сөзін, содан кейін ғана соңғы мәнін. Бірінші мән екінші
мәннен кіші болу керек. Келесі сұраныс 10 мен 12 арасындағы комиссиясымен агенттерді
шығарады:
SELECT *
FROM Salespeople
WHERE comm BETWEEN 10 AND 12
SNUM SNAME CITY COMM
----- -------- ---------- -----
1001 Иванов Москва 12.0
1003 Егоров Караганда 10.0
1004 Сидоров Сочи 11.0
LIKE операторы ішкі жолдары бар символдық өрістерге ғана қолданылады. Яғни, символ
өрісін іздейді оның шартын қанағаттандыру үшін. Шарт ретінде арнайы символдарды қолданады:
Астын сызу _ символы – кез келген бірлік символды алмастырады. Мысалы,'к_т' сәйкес
болады келесі сөздерге 'кот' и 'кит', бірақ 'крот' сөзіне емес.
% процент белгісі – символдардың кез келген сан тізбегін алмастырады. Мысалы, '%м%р'
сөзі 'компьютер' және 'омар' сөздеріне сәйкес келеді.
Тапсырушылардың аттары 'О' әріпімен басталатындарды таңдайық:
SELECT *
FROM Customers
WHERE cname LIKE 'О%'
CNUM CNAME CITY RATING SNUM
----- -------------------- ---------- ------- -----
2008 ОАО "Валют-транзит" Караганда 300 1007
2007 ОАО "ООО" ТОМСК 100 1004
NULL мәнін болмауын көрсететіндігінен нәтиже NULL-дің кез келген салыстырмасы болады.
Әдетте, кез келген бағанда NULL мәні бар жолдарды қарастырылады. Ол үшін IS NULL арнайы
оператор қолданылады. Біздің ДҚ city бағанда NULL мәні бар тапсырушыларды таңдайық:
SELECT *
FROM Customers
WHERE city IS NULL
SQL Server бірнеше агрегаттық функцияларды көрсетеді:
116.
116
COUNT –сұраныс шартын қанағаттандыратын жолдарды есептеу үшін қолданылады
SUM – бағанның барлық мәндердің арифметикалық қосындысын есептейді
AVG - барлық мәндердің орта арифметикалық қосындысын есептейді
MAX – барлық таңдалған мәндердің ішінде ең үлкенді табады
MIN - барлық таңдалған мәндердің ішінде ең кішіні табады
SUM және AVG функциялары сандықөрістерге ғана қолданылады. COUNT, MAX, MIN бірге
сандық не символдық өрістер қолданыалады. Символдық өрістерді қолданғанда MAX, MIN
алфавит ретінде мәндерді салыстырады. Агрегаттық функциялар жұмыс кезінде NULL мәні
қарастырылмайды.
Orders кестесінде барлық тапсырыстардың қосындысын табу үшін келесі сұраныс
қолданылады:
SELECT SUM( amt )
FROM Orders
Нәтиже:
---------------------
26658.4000
COUNT функциясы басқалардан ерекшеленеді. Ол кестедегі бағанда не жолда мәндер санын
есептейді. Мысалы, Orders кестесінде жазылған сауда агенттердің нөмір санын есептеу керек
болсын:
SELECT COUNT( DISTINCT snum )
FROM Orders
Нәтиже:
-----------
5
DISTINCT - Orders кестесіндегі snum бағанында ерекше мәндердің саны есептелетінін
белгілейді. Оны жазбасақ, нәтиже мүлдем басқа болады:
-----------
10
Кестеде жолдардың жалпы санын есептеу үшін COUNT функциясын жұлдызшамен бірге
қолдану керек:
SELECT COUNT(*)
FROM Customers
Нәтиже:
-----------
7
GROUP BY сөйлемі агрегат функциясы қолданатын мәндер жиынын беруге мүмкіндік береді.
Бұл бізге SELECT сөйлемінде өріс пен агрегат функцияларын біріктіру мүмкіндігін береді.
Мысалы, сізге әр сауда агентімен алынған тапсырыстың ең үлкен қосындысын табу керек болсын:
SELECT snum, MAX( amt )
FROM Orders
GROUP BY snum
Бұл сұраныстың нәтижесі:
snum
----- ----------
1001 9891.8800
1002 5160.4500
1003 1713.2300
1004 1900.1000
1007 1098.1600
GROUP BY жазба топтарына тәуелсіз агрегат функцияларын қолданады. Топты
қалыптастыру шарты - өрістердің бірдей мәні (біздің жағдайда snum). Бұл сұранысты өңдегенде
MAX функциясы snum әр мәні үшін есептейді.
GROUP BY бірнеше өрістермен қолдануға болады. Алдындағы сұранысты күрделі түрге
келтірейік:
117.
117
SELECT snum, odate,MAX( amt )
FROM Orders
GROUP BY snum, odate
Яғни, біз агент кодтарын және әр күн үшін олардың тапсырыстарының максималды
қосындысын таңдаймыз:
snum odate
----- ------------------------ ----------
1001 1999-10-03 00:00:00.000 767.1900
1001 1999-10-05 00:00:00.000 4723.0000
1001 1999-10-06 00:00:00.000 9891.8800
1002 1999-10-03 00:00:00.000 5160.4500
1002 1999-10-04 00:00:00.000 75.7500
1002 1999-10-06 00:00:00.000 1309.9500
1003 1999-10-04 00:00:00.000 1713.2300
1004 1999-10-03 00:00:00.000 1900.1000
1007 1999-10-03 00:00:00.000 1098.1600
Есепті күрделі түрге келтірейік. Енді әр агент тапсырыстарының максималды қосындысы 3000
үлкен деген мәлімет қажет. Ол үшін HAVING сөйлемі керек. Бұл сөйлем WHERE сөйлемі сияқты,
топтарды өшіру критерийлерді анықтайды:
SELECT snum, odate, MAX( amt )
FROM ORDERS
GROUP BY snum, odate
HAVING MAX( amt ) > 3000
snum odate
----- ------------------------ ----------
1002 1999-10-03 00:00:00.000 5160.4500
1001 1999-10-05 00:00:00.000 4723.0000
1001 1999-10-06 00:00:00.000 9891.8800
Әлі күнге дейін барлық сұраныстар бір кестеге ғана қатына алған. Бірақ, SQL бір сұраныста
бірнеше кестелерге қатына алады.
Кестедегі баған атауы кесте атынан тұрады. Аттардың мысалдары:
Salespeople.snum
Salespeople.city
Orders.odate
Мысалы, бізге қалалар бойынша сауда агенттер мен тапсырушылардың комбинациясын көру
керек болсын:
SELECT Customers.cname, Salespeople.sname, Salespeople.city
FROM Salespeople, Customers
WHERE Salespeople.city = Customers.city
Сұраныс нәтижесі:
cname sname city
-------------------- ------- ----------
ТОО Рога и копыта Иванов Москва
ОАО "Валют-транзит" Егоров Караганда
Яғни, city өрісі «Торговые агенты» және «Заказчики» кестелерінде болу керек. Сондықтан,
кесте аттары префикстер ретінде қолданылуы керек.
SQL Server екі кестенің жолдар комбинациясын WHERE сөйлемінде берілген шартына
тексереді. Егер бұл комбинация оны қанағаттандырса, онда ол шығады.
Кестелерді біріктіру үшін теңдіктен басқа шарттарды да қолдануға болады. Мысалы, бізге
агентпен бір қалада тұрмайтын тапсырушылардың барлық тапсырыстары қажет болсын. Ол үшін
үш кесте байланысуы керек:
SELECT Orders.onum, Customers.cname, Orders.cnum, Orders.snum
FROM Salespeople, Customers, Orders
WHERE Customers.city <> Salespeople.city AND
118.
118
Orders.cnum = Customers.cnumAND
Orders.snum = Salespeople.snum
Нәтиже:
onum cname cnum snum
----- ---------------------------------- ----- -----
3001 ОАО "Валют-транзит" 2008 1007
3002 ОАО "ООО" 2007 1004
3005 Фирма ХХХ 2003 1002
3006 AО Бендер и К 2002 1007
3007 Концерн "Дети лейтенанта Шмидта" 2004 1002
3008 Clemens 2006 1001
3009 AО Бендер и К 2002 1003
3010 Концерн "Дети лейтенанта Шмидта" 2004 1002
3011 Clemens 2006 1001
Сұраныстар басқа сұраныстарды басқара алады. Бұл басқа сұраныстың шарт ішінде
сұранысты орнатуды білдіреді.
Негізінен, ішкі сұраныс мәнде генерлейді, оның шартына байланысты. Мысалы, біз сауда
агенттің атын білеміз – Абенов, бірақ оның кодын білмейміз (snum), бізге керек «Заказы» (Orders)
кестесінен оның барлық тапсырыстары.
SELECT *
FROM Orders
WHERE snum = (
SELECT snum
FROM Salespeople
WHERE sname = 'Абенов'
)
Сыртқы сұранысты орындау үшін (негізгі сұраныс), алдымен WHERE сөйлеміндегі ішкі
сұраныс орындалады. Ішкі сұраныс орындалғанда Salespeople кестесі қарастырылады. Бұл кестеде
sname өрісі «Мауленов» мәнін алып, содан кейін snum өрісі алынады. Бірақ жол болады snum =
1004. Ары қарай, алынған мән негізгі сұраныстың шартына орналасып, шарт түрі келесі түрде
болады:
WHERE snum = 1004
Негізгі сұраныс келесі нәтижелермен орындалады:
ONUM ODATE AMT CNUM SNUM
----- ------------------------ ---------- ------ -----
3002 1999-10-03 00:00:00.000 1900.1000 2007 1004
Салыстыру амалдары (үлкен, кіші, тең, тең емес және т.б.) негізінде құрастырылған
шарттарды қолданғанда бізге білу керек, ішкі сұраныс тек бір мәнді қайтаратынын.
Егер сізге бірнеше жолдарды қайтару керек болса, онда IN операторын қолдану керек.
Мысалы, бізге табу керек Алматыдағы барлық агенттердің тапсырыстары:
SELECT *
FROM Orders
WHERE snum IN (
SELECT snum
FROM Salespeople
WHERE city = 'Алматы'
)
нәтижесі:
ONUM ODATE AMT CNUM SNUM
----- ------------------------ ---------- ----- -----
3003 1999-10-03 00:00:00.000 767.1900 2001 1001
3008 1999-10-05 00:00:00.000 4723.0000 2006 1001
3011 1999-10-06 00:00:00.000 9891.8800 2006 1001
Берілген жағдайда ішкі сұраныстың пайдалануы – біріктіруді қолдануға байланысты:
119.
119
SELECT Orders.*
FROM Orders,Salespeople
WHERE Orders.snum = Salespeople.snum AND
Salespeople.city = 'Алматы'
Мына сұраныс алдындағы сұранысқа эквиваленті болғанымен, SQL Server екі кестеден
құрылған жолдар жинағын қарастыру керек.
Алдындағы барлық ішкі сұраныстарды біріктіреді бір ғана жағдай, олардың бәрі де бір
бағанды таңдайды. SELECT * типтес командалар ішкі сұраныстарда мүмкін емес.
Ішкі сұраныстарды HAVING сөйлемдерінде қолдануға болады. Бұл ішкі сұраныстар өздерінің
сөйлемдерін қолдана алады: GROUP BY не HAVING. Келесі сұраныс бұған мысал болады:
SELECT rating, COUNT( DISTINCT cnum )
FROM Customers
GROUP BY rating
HAVING rating > (
SELECT AVG( rating )
FROM Customers
WHERE city = 'Алматы'
)
бұл команда Алматыдағы рейтингі орта мәннен жоғары тапсырушыларды есептейді.
Нәтижесі:
rating
------- --
200 2
300 2
120.
120
Пайдаланылған әдебиеттер тізімі
1.Бишоп Д., Java 2. Питер, 2002
2. Д. Вебер, Технология Java в подлиннике: Пер. с англ.-СПб.: БХВПетербург, 2000
3. Ганеев Р.М. Проектирование интерактивных WEB-приложений. М.: 2001
4. Жұмағалиев Б.І., Сыдыбаева М.А., Оралхан П. «Web технологиялары” пәні бойынша пәнінің
оқу-әдістемелік кешені –Алматы Қ.И.Сәтбаев атындағы ҚазҰТУ, 2011. – С.1 -136
5. Косентино К. РНР. Web - профессионалам: Пер. с англ. - К.: Издательская группа BHV,
2001.
6. Э.Кингсли-Хью,К.Кингсли-Хью.JavaScript1.5.Учебный курс.- СПб:Питер, 2001
7. Ливингстон Д., Белью К., Браун М. Perl 5. Web - профессионалам: Пер. с англ. - К.:
Издательская группа BHV, 2001
8. Маршал Б. XML в действии – М.:Триумф, 2002. – 365с.
9. Найк Д. Стандарты и протоколы Интернета. Пер. с англ.-М.:1999
10. Д.В.Николенко.Программируем на языке Java: краткий курс.- СПб:Наука и техника, 2001
11. Прохоров А.Н. Интернет: как это работает.- СПб:БХВ-Петербург, 2004
12. А.Павлов.CGI-программирование: учебный курс. .- СПб:Питер, 2000. 7. А.В.Картузов,
Зертханалық жұмыстар: оқу құралы /Құраст.- оқытушы Баймуратова
13. Филимонов А.Ю. Протоколы Интернета.- СПб:БХВ-Петербург, 2003
14. Әдістемелік нұсқаулық «Web-технологиясы», Құрастырушы: п.ғ.к., аға оқытушысы
Майдисарова Д.С.
15. «Мәліметтер қорларының қолданысымен клиент-серверлік қосымшалар» пәнінен оқу-
әдістемелік кешен ПОӘК 042-18-11.1.20.10/01-2013
16. В.Г.Олифер,Н.А.Олифер. Компьютерные сети.Учебник.- СПб:Питер, 1999
17. Интернет-технологиялары: оқу құралы /Құраст.- аға оқытушы Ы.А. Шахимова. – Ақтау:И68
2001
18. Библиотека программиста Java: Попурри:CD Прил. к кн.К.Джамса. Библиотека
программиста Java.
19. Защита и хранение данных: Лучшие продукты для Java: CD.Прил. к журналу
«КомпьютерПресс» - 2000, №7.
20. Программирование на Perl: CD. - M.: Delta – MM Corp, 2001.
21. Программирование в среде Java: CD – M.: Delta-MM Corp, 2003.
22. Программирование на VCL: CD. M.: Delta – MM Corp, 2002.
23. Интернет и WWW: Более 250 программ. CD – 2000. Прил. к журналу «КомпьютерПресс» -
2000, №2
24. Интернет-технологии:CD -2000. Прил. к журналу «КомпьютерПресс», - 2001, №6.
25. Мир Интернет: CD.Прил. к журналу «КомпьютерПресс», - 2004, №2.
26. Web-дизайн и программирование: CD. Прил. к журналу «КомпьютерПресс», 1999, №5.