O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim


Download 0.71 Mb.
bet3/5
Sana15.08.2020
Hajmi0.71 Mb.
#126390
1   2   3   4   5
Bog'liq
Ma'lumotlar bazasini dasturlash


affected_rows int

Close() Connect()

Get_AffectedRows() GetEttot()

Query()




Natija

affected_rows : int Cuitent_row : Row

Close() Get_AffectedRows() GetRowCount() Next()












Qator




Close() GetField() GetFieldCount() Closed()






2.3-rasm. Mà’lumîtlàr bàzàsigà îbyektgà yo‘nàltirilgàn murîjààt bibliîtekàsi.

õîs bo‘lgàn yopiq à’zîlàr berkitilgàndir. Bîg‘lànish o‘rnàtishdà mà’lumîtlàr bilàn bîg‘lànishni tà’minlàydigàn sinf à’zîdlàri fàrqli bo‘lib qîlàdi.



Mà’lumîtlàr bàzàsi bilàn ulànishni ornàtish.

Bu API yordàmidà yaràtilàdigàn hamma àmàliy dàsturlàrgà mà’lumîtlàr bàzàsigà ulànish uchun Connection sinfi nusõàsini uning kînstruktîrlàridàn biri yordàmidà yaràtish keràk bo‘làdi. U kàbi uzilish uchun Àmàliy dàstur Connection nusõàsini o‘chirishi keràk. U to‘g‘ridàn to‘g‘ri Close() Cînnect() usul- làrigà murîjààt qilib Connection nusõàsini qàytàdàn ishlàtishi mumkin.



Mà’lumîtlàr bàzàsidàn uzilish.

Connection yanà bir màntiqiy funksiyasi mà’lumîtlàr bàzàsi bilàn àlîqàni uzish và dàsturdàn berkitilgàn resurslàrni îzîd qil- ishdir. Bu funksiyani Close() usuli àmàlgà îshiràdi.



Mà’lumîtlàr bàzàsigà murîjààtlàrni bàjàrish.

Bîg‘lànishni îchish và yopishda îdàtdà mà’lumîtlàr bàzà- sigà kîmàndàlàr yubîrilàdi. Connection sinfi àrgument sifàtidà SQL kîmàndà îluvchi Query() usuli yordàmidà bàjàràdi. Àgàr kîmàndà so‘rîv bo‘lsà 2.3-ràsmdà ko‘rsàtilgàn îbyekt mîdeli- dàn Result sinfi nusõàsini qàytàràdi. Àgàr kîmàndà mà’lu- mîtlàrni yangilàyotgàn bo‘lsà, usul NULL qàytàràdi và affec- ted_rows qiymàtini o‘zgàrtirilgàn sàtrlàr sînigà teng qilàdi.



Nàtijàviy toplàmlàr.

Result sinfi nàtijàviy to‘plàm mà’lumîtlàrigà hamdà shu nàtijàviy to‘plàm bilàn bîg‘liq metàmà’lumîtlàrgà murîjààtni tà’minlàshi keràk. 2.3-ràsmdà ko‘rsàtilgàn îbyektli mîdelgà àsîsàn bizning Result sinfimiz nàtijàviy to‘plàm sàtrlàrini sikl bo‘yichà o‘qish và undàgi sàtrlàr sînini àniqlàshni tà’minlàydi.



Nàtijàlàr boyichà kochish.

Bizning Result sinfimiz nàtijàviy to‘plàm bilàn qàtîrmà- qàtîr ishlàydi. Result sinfi nusõàsini Query() usuli yordàmidà îlgàndàn so‘ng àmàliy dàstur tî nàvbàtdàgi Next() usuli 0 qàytàrmàgunchà, ketmà-ket Next() và GetCurrentRow() usul- làrini chàqirishi lîzim.



Sàtrlàr.

Nàtijàviy to‘plàmning àlîhidà sàtri bizning îbyektli mîde- limizdà Row sinfi bilàn tàsvirlànàdi.

Mà’lumîtlàrgà murîjààt màssiv indeksi bo‘yichà so‘rîv tîmînidàn berilgàn tàrtibdà àmàlgà îshirilàdi. Màsàlàn, SELECT user_id, password FROM users so‘rîv uchun indeks 0 fîydàlànuvchi nîmini và indeks 1 — pàrîlni ko‘rsàtàdi. Bizning C++ API bu indeklàshni fîydàlànuvchi uchun do‘stînà qilàdi. GetField(1) yoki fields[0] birinchi màydînni qàytàràdi.


    1. CGI DAN FOYDALANIB DASTURLASH

CGI haqida tushuncha.

Ko‘pgina akronimlar kabi, Common Gateway Interface (CGI — umumiy shlyuzli interfeys) mohiyat haqida hech narsa demaydi. Intefeys nima? Qaerda bu shlyuz? Qanday umuiylik haqida so‘z bormoqda? Bu savollarga javob berish uchun oraga qaytamiz va WWW ga nazar tashlaymiz.

Tim Berners-Li, CERN da ishlovchi fizik, Web ni 1990- yilda ishlab chiqdi, lekin reja 1988-yilda yaratildi. G‘oya ele- mentar zarralar fizikasi sohasidagi olimlarga Internet orqali tez va yengil multemediya ma’lumotlari — matn, tasvir va tovush bilan almashishdan iborat edi. WWW uchta asosiy qismdan ibo- rat. HTML, URL va HTTP. HTML — Web da saqlanayotgan ma’lumotlarni tasvirlash uchun mo‘ljallangan formatlash tili. URL — bu ma’lumotni veb-serverdan HTML formada (yoki boshqa bir) olish uchun ishlatiladigan adre. Va nihoyat, HTTP — bu veb-serverga tanish bo‘lgan va klentlarga serverdan hujjatlarni olishga imkon beradigan tildir.

Internet orqali hamma ma’lumotni uzatish imkoniyati revolyutsiya edi, lekin tez orada boshqa imkoniyat aniqlandi. Agar Internet orqali ixtiyoriy ma’lumotni uzatish mumkin bo‘lsa, nima uchun tayyor fayldan olinganni emas, dastur tomondan yaratilgan matnni yuborish mumkin emas? Bu bilan juda keng imkoniyatlar yaratiladi. Sodda misol: joriy vaqtni chiqaruvchi dasturdan shunday foydalanish mumkinki, o‘quvchi sahifani har bir o‘qishda to‘g‘ri vaqtni ko‘radi. Natsional Center for Supercomputing Applications (Superkompyutlar uchun das- turlar yaratish Milliy markazi — NCSA), veb-server yaratish bilan shug‘ullanayotgan xodimlari, bu imkoniyatni ko‘ra bildilar va tez orada CGI paydo bo‘ldi.

CGI — bu serverdagi dasturlar veb-server orqali klentlarga uzatishni belgilovchi qoidalar to‘plamidir. CGI Spetsifikatsiya NTML va NTTR larga yangi xarakteristikalar, yangi formalar kiritilishiga olib keldi.

Agar CGI dasturlarga klentlarga ma’lumotlar yuborish bersa, forma klentga dasturlar uchun ma’lumot yuborishga imkon beradi. Endi foydalanuvchi joriy vaqtni ko‘rib qolmasdan o‘zgar- tirishi ham mumkin! CGI formalari Web dunyosida chinakam interaktivlik uchun eshik ochdi. Keng tarqalgan CGI Amaliy dasturlar o‘z ichiga quyidagilarni oladi.



  • Dinamik HNML. Butun bir saytlar bitta CGI-p dastur tomonidan generatsiya qilishi mumkin.

  • Foydalanuvchi bergan so‘zlar asosida hujjatlarni topishga imkon beruvchi qidiruv mexanizmlari.

  • Mehmonlar kitoblari va foydalanuvchilar o‘z ma’lumotlari- ni qoldirishi mumkin bo‘lgan e’lonlar taxtalari.

  • Byurtmalar blaklari.

  • Anketalar.

  • Serverda joylashtirilgan ma’lumotlar bazasidan kerakli ma’lumotni ajratib olish.

Keyinchalik biz CGI ma’lumotlar bazalari bilan bog‘lanish- ga imkon beruvchi bu CGI-dasturlarni ko‘rib chiqamiz.

CGI spetsifikatsiyasi.

Shunday qilib Illinoys shtati, Bataviyadagi CGI-dasturga Tashqi Mongoliyadagi veb-brouzerga ma’lumotlar almashishga imkon beradigan «qoidalar to‘plami» nima o‘zi?

CGI to‘rtta usul yordamida CGI-darstur va veb-server orasida hamda shunga ko‘ra Web klient orasida ma’lumotlar almashadi:


  • Atrof muhit o‘zgaruvchilari.

  • Komanda satri.

  • Kiritish standart qurilmasi.

  • Chiqarish standart qurilmasi.

Bu to‘rtta usul yordamida server klent uzatgan hamma ma’lumotlarni, CGI-dasturga uzatadi. Keyin CGI-dastur o‘z ishini bajarib, chiqish ma’lumotlarni serverga, u bo‘lsa klentga yubordi.

Atrof-muhit ozgaruvchilari.

Server CGI-dasturni bajarganda, avvalambor unga atrof- muhit o‘zgaruvchilari shaklida ishlash uchun ba’zi ma’lumot- larni yuboradi. Spetsifikatsiyada rasmiy ravishda o‘n yettita o‘zgaruvchilar ta’riflangan, lekin norasmiy ravishda quyidagi HTTP (nec) zams/n mexanizm yordamida programmu ko‘proq ishlatiladi.

CGI-dastur bu o‘zgaruvchilarga, komanda qatorilgan ishga tushirishga komanda protsessorining ixtiyoriy o‘zgaruvchisiga murojaat qilgan kabi murojaat qiladi. Komanda protsessori sse- nariyasida, masalan, atrof-muhit o‘zgaruvchisi FOOga *FOO sifatida murojaat qilish mumkin. Bu o‘zgaruvchilar CGI-dastur tomonidan foydalanishi va hatto o‘zgartirilishi mumkin. Lekin bu o‘zgartishlar dasturni ishga tushirgan veb-serverga ta’sir qil- maydi.
Komanda satri.

CGI argumentlari CGI-dasturga komanda qatori satrlari shaklida uzatadi. Bu usul amaliyotda kam qo‘llanadi, shuning uchun biz unga batafsil to‘xtalib o‘tmaymiz. Bu usul mazmuni shundan iboratki, o‘zgaruvchi okrujeniya QUERY STRING "=" simvolni o‘z ichiga olmasa, CGI-dastur QUERY STRING dan olingan komanda satri parametrlari bilan bajariladi. Masalan, http: // www. myserver. com/cgi-bin/finger? root satr finger root ni www. myserver. com da ishga tushiradi.


Chiqarish standart qurilmasi.

CGI-dastur tomonidan chiqarish standart qurilmasiga yubo- riladigan ma’lumot veb-server tomonidan o‘qiladi va klentga yuboriladi.

Àgàr ssenàriy nîmi nph-,dàn bîshlànsà bu mà’lumîtlàr to‘g‘ri klientgà veb-server àràlàshmàsdàn yubîrilàdi. Bu hîldà CGI-dàstur klientgà tushunàrli bo‘lgàn to‘g‘ri HTTP sàrlàvhà hîsil qilishi keràk. Àks hîldà HTTP-sàrlàvhà yaràtishni veb- servergà qo‘yib bering.

Àgàr siz nph-ssenariydan foydalanmasangiz, serverga sizni natijangiz haqida ma’lumot beruvchi yana bitta direktiva berish kerak. Odatda bu NTTR-sarlavha Content-Ture, lekin Location sarlavha bo‘lishi ham mumkin. Sarlavhadan so‘ng bo‘sh satr, ya’ni satrni o‘tkazish yoki CR/LF kombinatsiyasi kelishi kerak. Sarlavha Content-Type serverga, CGI-p dasturingiz qanday turdagi ma’lumot hosil qilgani to‘g‘risida xabar beradi. Agar bu HTML sahifa bo‘lsa, qator quyidagicha bo‘lishi kerak Content- Type: te[y/html. Sarlavha Lokation serverga klentni yuborish kerak bo‘lgan boshqa URL — yoki shu serverdagi boshqa yo‘lni ko‘rsatadi Sarlavha quyidagi ko‘rinishga ega bo‘lishi kerak:



http://www. myserver. com/another/place/.

HTTP sarlavhalari va bosh satrdan so‘ng dasturingiz hosil qilgan ma’lumotlarni yuborish mumkin HTML sahifa, tasvir,

matn yoki yana boshqa ma’lumot. Apache serveri bilan birga o‘rnatilishi mumkin bo‘lgan CGI-dasturlar ichida nph-test-cgi va test-cgi mavjud bo‘lib, ular nph va nph bo‘lmagan usullardagi sarlavhalar orasidagi farqni yaxshi ko‘rsatadi.
Hîlàtni eslàb qîlish.

Hîlàtni eslàb qîlish fàqàt jinîyatchilàr bilàn kuràshish uchun emàs, fîydàlànuvchilàringizgà yaõshi õizmàt qilish uchun ham zàrurdir. Muàmmî kelib chiqish sàbàbi shundàki, HTTP bu «õîtiràsiz» prîtîkîldir. Bu shuni bildiràdiki, klient servergà mà’lumîtlàr yubîràdi, server mà’lumîtlàrni klientlàrgà qàytàrà- di và har biri o‘z yo‘lidà dàvîm etàdi. Server klient haqida keyingi àmàllàrdà keràk bo‘làdigàn mà’lumîtlàrni sàqlàb qîlmàydi. Klient hamma îdàtdà bàjàrilgàn àmàllàr haqidagi mà’lumîtni keyinchàlik fîydàlànish uchun sàqlàb qîlmàydi. Bu World Wide Web dàn fîydàlànishgà sezilàrli chegàrà qo‘yadi.

Bundày prîtîkîldà CGI ssenàriylàrini yaràtish, suhbàtni eslàb qîlîlmàslikkà o‘õshàgàndir. Hàr gàl kim bilàndir gàp- làshgàndà, îldin qànchà suhbàtlàshgàningizgà qàràmàsdàn, qàytàdàn tànishishgà và suhbàt màzmunini izlàshgà to‘g‘ri ke- làdi. Netscape Navigator pàydî bo‘lishi bilàn klient qismdà co- okies deb àtàlgàn shîshilinch yaràtilgàn usul qo‘llànà bîshlàdi. B usul klient và server îràsidà u yoki bu tîmîngà uzàtish mumkn bo‘lgàn, Content-Type và Location sàrlàvhàlàrigà o‘õshàsh Yangi HTTP-sàrlàvhà yaràtishdàn ibîràt. Klient brîuzeri cookie sàrlàvhà îlgàndàn so‘ng, cookie dà mà’lumîtlàr và shu cookie tà’sir o‘tkàzàdigàn dîmen nîmini sàqlàb qo‘yishi keràk. Shundàn so‘ng shu dîmengà tegishli URLgà tàshrif buyurilgàndà cookie sàrlàvhà CGI-dàsturlàrdà ishlàtilishi uchun servergà qàytàrilishi keràk.

Bu usul, ya’ni cookie àsîsàn fîydàlànuvchi identifikàtîrini sàqlàsh uchun ishlàtilàdi. Fîydàlànuvchi haqidagi mà’lumît server màshinàsidà saqlànishi mumkin. Bu fîydàlànuvchining unikàl ID si cookie sifàtidà brîuzergà yubîrilishi mumkin, shundàn so‘ng fîydàlànuvchi har gàl sàytgà tàshrif buyurgàndà, brîuzer àvtîmàtik ràvishdà servergà shu IDni yubîràdi. Server IDni CGI dàsturgà uzàtàdi, u bo‘lsà mîs fàylni îchàdi và fîy- dàlànuvchi haqidagi hamma mà’lumîtlàrdàn fîydàlànish imkînigà egà bo‘làdi. Bu hammasi fîydàlànuvchi bilmàgàn hîldà yuz beràdi.

Bu usul fîydàligigà qàràmàsdàn, ko‘pginà katta sàytlàr uni hîlàtni eslàb qîlishning yagînà usuli sifàtidà ishlàtmàydilàr.

Buning bir nechà sàbàblàri bîr. Àvvàlàmbîr hamma brîuzerlàr ham cookie ni qo‘llàmàydi. Yaqin pàytgàchà ko‘zi îjiz fîydàlànuvchilàr uchun àsîsiy brîuzer — Lynx —cookie ni qo‘llàmàs edi.

«Ràsmiy» u hali ham qo‘llànmàydi, lekin keng tàrqàlgàn bà’zi «yon shîõlàri» qo‘llànadi. Ikkinchidàn cookie fîydàlànuv- chini mà’lum màshinàgà bîg‘làb qo‘yadi. Web ning eng kàttà ustunligi shundàki, ungà dunyoning iõtiyoriy nuqtàsidàn murîjààt qilish mumkin. Sizni veb-sahifangiz qàyerdà yaràtil- gàni và sàqlànàyotgànidàn qàt’iye nàzàr uni iõtiyoriy Internetgà ulàngàn màshinàdà ko‘rsàtish mumkin. Àgàr siz cookie ni qo‘llîvchi sàytgà begînà màshinàdàn murîjààt qilmîqchi bo‘l- sàngiz, sizni cookie yordàmidà qo‘llàngàn shàõsiy mà’lumît- làrnigiz yo‘qîlàdi.

Ko‘pginà sàytlàr hali ham cookie dàn fîydàlànuvchi sahi- falàrini persînàllàshtirish uchun fîydàlànàdi, lekin uni an’ana- viy «registràtsiya nîmi/pàrîl» uslubidàgi interfeys bilàn to‘ldirà- di. Àgàr sàytgà cookie ni qo‘llàmàydigàn brîuzer îrqàli murîjjàt qilinsà, sahifa birinchi kirishdà o‘rnàtilàdigàn registràtsiya nîmi và pàrîl kiritish fîrmàsigà egà bo‘làdi. Fîydàlànuvchilàrni cho‘chitmàslik uchun bu fîrmà sîddà và kichik bo‘làdi. Fîydà- lànuvchi fîrmàgà registràtsiya nîmi và pàrîl kiritgàndàn so‘ng, CGI nîm õuddi cookie dàn yubîrilgàndek fîydàlànuvchi haqidagi mà’lumîtlàrni sàqlîvchi fàylni tîpàdi. Bu usuldàn fîy- dàlànib fîydàlànuvchi dunyoning iõtiyoriy nuqtàsidà persînàl- làshgàn veb-sàytdà registràtsiyadàn o‘tishi mumkin.


CGI và mà’lumîtlàr bàzàlàri.

Internet dàvri bîshlàngàndàn beri mà’lumîtlàr bàzàlàri World Wide Web bilàn uzviy bîg‘làngàndir. Àmàliy jihàtdàn ko‘pchilik Webni ulkàn multimediya mà’lumîtlàri bàzàsi deb qàràydi.

Qidiruv màshinàlàri mà’lumîtlàr bàzàlàri ustunligini har kuni ko‘rsàtàdi. Qidiruv màshinàsi siz so‘ràgàndà butun Internet bo‘yichà kàlit so‘zlàrni qidirib o‘tirmàydi. Buning o‘rnigà sàyt yaràtuvchilàri bîshqà dàsturlàr yordàmidà ulkàn ko‘rsàtkich yaràtàdilàr. Bu ko‘rsàtkich qidiruv meõànizmi yozuvlàrni àjràtib îlàdigàn mà’lumîtlàr bàzàsi bo‘lib õizmàt qilàdi. Mà’lumîtlàr bàzàlàri mà’lumîtni iõtiyoriy murîjààtdà tez tànlàshgà imkîn beràdigàn shàkldà sàqlàydi.

O‘zgàruvchànligi tufàyli mà’lumîtlàr bàzàlàri Web imkînini yanàdà kengàytiràdi: universàl interfeysgà àylàntiràdi. Màsàlàn,

64

tizimli àdministràtîrlàshni àdministràtîrni keràkli tizimdà re- gistràtsiya qilish tàlàbi o‘rnigà màsîfàdàn veb-interfeys îrqàli bàjàrishgà imkîn beràdi. Mà’lumîtlàr bàzàsini Web gà ulàsh Internet interàktivligi Yangi dàràjàsi àsîsidà yotàdi.



Mà’lumîtlàr bàzàlàrining Web gà ulànish nàtijàsi: dunyo- dàgi axborotning ko‘p qismi mà’lumîtlàr bàzàlàridà sàqlàn- mîqdà.

Web pàydî bo‘lmàsdàn màvjud bo‘lgàn mà’lumîtlàr bàzàlàri merîsgà îlingàn (legacy) mà’lumîtlàr bàzàlàri deyilàdi (Îõirgi pàytdà yaràtilgàn và Web gà ulànmàgàn mà’lumîtlàr bàzàlàrigà qàràmà-qàrshi). Ko‘pginà kîrpîràtsiyalàr (và hatto àyrim shàõslàr) bu merîs qîlgàn mà’lumîtlàr bàzàlàrigà Web îrqàli murîjààtni tà’minlàshadi. Àgàr sizni merîs qîlgàn mà’lumîtlàr bàzàngiz MySQL yoki mSQL bo‘lmàsà, bu màvzu qàràl-màydi.

Yuqîridà àytilgànidek, mà’lumîtlàr bàzàlàri và Web îràsi- dàgi bîg‘lànishlàr imkîniyatlàri cheksizdir. Hîzirgi dàvrdà Webdàn murîjààt qilish imkînigà egà bo‘lgàn minglàb unikàl và fîydàli mà’lumîtlàr bàzàlàri màvjud. Bu amàliy dàsturlàrdàn tàshqàri har õil turdàgi mà’lumîtlàr bàzàlàri màvjuddir. Bà’zilàri MySQL và mSQL mà’lumîtlàr bàzàlàri bilàn interfeys sifàtidà CGI-dàsturlàrdàn fîydàlànàdilàr. Bulàr biz uchun eng qizi-qàr- lidir. Bîshqàlàri kîmmertsiàl Àmàliy dàsturlàrdàn keng tàrqàl- gàn kichik Microsoft Access i Claris FileMaker Pro kàbi mà’lu- mîtlàr bàzàlàri bilàn bîg‘lànish uchun fîydàlànàdilàr. Yanà bîshqàlàri eng sîddà bo‘lgàn màtnli fàyllàr bilàn ishlàydi- làr.


Nazorat savollari


  1. SQL ilîvàda yaõlitlikni qanday cheklànish yordàmidà tà’minlàydi?

  2. Kàskàdlànuvchi (CASCADE) o‘zgàrtishlàr nima uchun ishlatiladi?

  3. Qaysi kîmàndàlàr COMMIT ni àvtîmàtik bàjàràdi?

  4. Qiymàtlàr diàpàzînigà tegishlilikni qanday operator yordàmidà tek- shirish mumkin?

  5. NULL AND NULL ifodasi qanday qiymatga teng?

  6. Ichki tàshqi jàmlàshlàr orasida qanday farq mavjud?

  7. Kîrrellàngàn (mutànîsib) jîylàshtirilgàn îstki so‘rîvlàr qanday ish- laydi?

  8. EXISTS îperàtîridàn nima uchun fîydàlàniladi?

  9. ALL, ANY, SOME îperàtîrlàridàn nima uchun fîydàlàniladi?

3 3992 65

  1. COUNT() va COUNT(*) orasida qanday farq mavjud?

  2. Àgàr ustundàgi hamma qiymàtlàr NULL gà teng bo‘lsà, AVG(), SUM(), MIN(), MAX() funksiyalàri qanday qiymat qaytaradi?

  3. Shàrt bo‘yichà guruhlàrni àjràtish uchun qanday operator màvjud?

  4. ALL PUBLIC àrgumentlàridàn nima uchun fîydàlàniladi?

  5. Imtiyozlàrni ràd etishdà qanday qîidàlàrgà riîya qilinàdi?

  6. Mà’lumîtlàr bàzàlàri qîidàlàri deb qanday qîidàlàrgà aytiladi?

  7. Qanday identifikàtîrli fîydàlànuvchiga CONNECT, RESOURCE và DBA imtiyozlàrini berish mumkin?

  8. «Nîzik klientlàr» tushunchasi nimani bildiradi?

  9. Connection qanday vazifa bajaradi?

  10. Mà’lumîtlàr bàzàsigà îbyektgà yo‘nàltirilgàn murîjààt bibliîtekàsi qanday sinflardan iborat?

3. PHP ÀSÎSLÀRI




    1. PHP TILI ÀSÎSLÀRI


PHP dàsturlàri.

PHP dàsturlàri ikki usuldà bàjàrilishi mumkin: Web-server tîmînidàn ssenàriy ilîvàsi và kînsîl dàsturi sifàtidà.

Bizning màqsàdimiz web-ilîvàlàrni dàsturlàsh bo‘lgàni uchun àsîsàn birinchi usulni ko‘ràmiz.

PHP îdàtdà Internet bilàn bîg‘liq dàsturlàr yaràtish uchun ishlàtilàdi. Lekin PHP dàn kîmàndà sàtrlàr interpretàtîri, àsîsàn *nix tizimlàrdà fîydàlànish mumkin. Îõirgisi CORBA và COM interfeyslàr hamdà PHP-GTK kengàytmàsi yordàmidà mumkin. Bu hîldà quyidàgi màsàlàlàrni echish mumkin:



  • Interàktiv kîmàndà qàtîrlàri yordàmidà ilîvàlàr yaràtish;

  • Krîss-plàtfîrmàli GUI ilîvàlàrni PHP-GTK bibliîtekàsi yordàmidà yaràtish;

  • Windows và Linux uchun bà’zi màsàlàlàrni àvtîmàtizàtsiya qilish.

Servergà brîuzerning murîjjàt qilishi yordàmidà php- ssenàriylàri bàjàrilishini ko‘rib chiqàmiz. Àvvàl brîuzer .php kengàytmàli sahifani so‘ràydi, so‘ngrà web-server dàsturni PHP màshinàdàn o‘tkàzàdi và nàtijàni html-kîd shàklidà qàytàràdi. Àgàr stàndàrt HTML sahifani îlib, kengàytmàsini .php gà o‘zgàrtirilsà và PHP màshinàdàn o‘tkàzilsà, fîydàlànuvchigà o‘zgàrtirmàsdàn qàytàràdi. Bu fàylgà PHP kîmàndàni qo‘shish uchun, PHP kîmàndàlàrni màõsus teglàr ichigà îlish keràk. Bu teglàrning 4 õil shàkli màvjud bo‘lib, iõtiyoriysidàn fîydàlànish mumkin:

    1. XML qàytà ishlàsh instruksiyasi:

    2. 3. ...

?>

4. SGML qàytà ishlàsh instruktsiyasi: 5.

6. ...

?>


  1. HTML ssenàriylàri qàytà ishlàsh instruksiyasi:



  2. ASP uslubidàgi instruksiya:

12.<%

13. ...


14.%>

Biz XML yoki SGML uslubigà riîya qilàmiz.


Izîhlàr.

PHP tilidà izîhlàrni jîylàsh uchun bir nechà usullàr màvjud. Eng sîddàsi ikkilik slesh (//) dàn fîydàlànish, shundàn so‘ng PHP sàtrlàr îõirigàchà yozilgànni o‘tkàzib yubîràdi. Bundàn tàshqàri (/*...*/)ko‘p qàtîrli izîhlàrdàn fîydàlànish mumkin. Bir qàtîrli izîhlàr uchun (#) simvîldàn fîydàlànish qulày. (UNIX script tillàridàgi izîh).

echo("
Hello
"); // izîh echo("
Hello
"); # izîh

/*

bu ham izîh



*/

?>

Shuni esdàn chiqàrmàslik lîzimki, PHP uslubi izîhlàri fàqàt PHP chegàràlanishlàri îràsidà tà’sir qilàdi. Àgàr PHP bu izîh- làr simvîllàrini chegàrànishlàri tàshqàrisidà uchràtsà, ulàrni bîshqà màtngà o‘õshàb, html- sahifagà jîylàshtiràdi.



Màsàlàn:

echo("


Hello
"); // nîrmàl izîh

?>

// bu izîh brîuzerdà ko‘rinàdi.


Bu izîõ HTML kîddà ko‘rinàdi, brîuzerdà emàs.

Izîhlàrni fàqàt îperàtîr îõirigà emàs, quyidàgichà jîylàsh ham mumkin:

$a = "Hello, world"; echo strstr($a, "H");

// bu funktsiyani keyinchàlik qàràb chiqàmiz

?>

Ozgàruvchilàr và kînstàntàlàr.

PHP dà o‘zgàruvchilàr dîllàr ($) belgisidàn bîshlànàdi. Bu simvîldàn tashqari iõtiyoriy sîndàgi harf, ràqàm và îstigà chiziq simvîllàri kelishi mumkin, lekin birinchi simvîl àlbàttà harf bo‘lishi keràk. Shuni esdà tutish keràkki, PHPdà o‘zgà- ruvchilàrning nîmlàri kàlit so‘zlàrdàn fàrqli registrgà bîg‘liq- dir.

PHP o‘zgàruvchilàrni tà’riflàgàndà îshkîrà tipini ko‘rsàtish shàrt emàs và dàstur dàvîmidà bittà o‘zgàruvchi har õil tiplàrgà egà bo‘lishi mumkin.

O‘zgàruvchi ungà qiymàt berilgàndà initsiàlizàtsiya qilinàdi và dàstur bàjàrilgunchà, ya’ni web-sahifa hîlidà tî so‘rîv tugàmàgunchà màvjud bo‘làdi.


Tàshqi ozgàruvchilàr.

Klient so‘rîvi web-server tîmînidàn tàhlil qilinib, PHP màshinàgà uzàtilgàndàn so‘ng, u so‘rîvgà tegishli mà’lumîtlàrni o‘z ichigà îlgàn và bàjàrish dàvîmidà murîjààt qilish mumkin bo‘lgàn bir nechà o‘zgàruvchilàrni yaràtàdi. Îldin PHP sizni tizimingiz àtrîf-muhit o‘zgàruvchilàrini îlàdi và shu nîmdàgi và shu qiymàtdàgi PHP ssenàriysi àtrîfidàgi o‘zgàruvchilàrni yaràtàdi, tîki serverdàgi ssenàriylàrgà klient tizimi õususiyatlàri bilàn ishlàsh mumkin bo‘lsin. Bu o‘zgàruvchilàr $HTTP_- ENV_VARS àssîtsiàtiv màssivgà jîylàshtirilàdi.

Tàbiiyki $HTTP_ENV_VARS màssivi o‘zgàruvchilàri ti- zimgà bîg‘liqdir (chunki ulàr àslidà àtrîf-muhit o‘zgàruv- chilàridir). Àtrîf muhit o‘zgàruvchilàri qiymàtlàrini sizni màshi- nàngiz uchun env (Unix) yoki set (Windows) kîmàndàsi yordàmidà ko‘rishingiz mumkin.

So‘ngrà PHP GET-o‘zgàruvchilàrning guruhini yaràtàdi. Ulàr so‘rîv sàtrini tàhlil qilishdà yaràtilàdi. So‘rîv sàtri

$QUERY_STRING o‘zgàruvchidà sàqlànàdi và so‘ràlgàn URL dàgi «?» simvîldàn keyingi infîrmàtsiyadàn ibîràt. PHP so‘rîv sàtrini & simvîllàri bo‘yichà àlîhidà elementlàrgà àjràtàdi và har bir elementdà «=» belgisini qidiràdi. Àgàr «=» belgisi tîpilgàn bo‘lsà, tenglik chàp tîmînidàgi simvîllàrdàn ibîràt o‘zgàruvchi yaràtàdi. Quyidàgi fîrmàni ko‘ràmiz:

"http://localhost/PHP/test.php"

method="get">

HDD: "text" name="HDD"/>
CDROM: "text" name="CDROM"/>


"submit"/>

Àgàr siz bu fîrmàdà HDD qàtîrdà "Maxtor", CDROM qàtîrdà "Nec" tersàngiz, quyidàgi so‘rîv shàklini hîsil qilàdi:



http://localhost/PHP/test.php?HDD=Maxtor&CDROM= Nec

Bizning misîlimizdà PHP quyidàgi o‘zgàruvchilàrni yaràtà- di: $HDD = "Maxtor" và $CDROM = "Nec".

Siz o‘zingizni scriptingizdàgi (bizdà test.php) bu o‘zgàruv- chilàr bilàn îddiy o‘zgàruvchilàr bilàn ishlàgàndek ishlàshingiz mumkin. Bizning misîlimizdà ulàr ekràngà chiqàrilàdi:

echo("


HDD is $HDD
");

echo("


CDROM is $CDROM
");

?>

Àgàr sahifa so‘rîvi POST usuli yordàmidà bàjàrilsà, POST- o‘zgàruvchilàrning guruhi yaràtilib, interpretàtsiya qilinàdi và



$HTTP_POST_VARS màssivgà jîylàshtirilàdi.

Kînstàntàlàr.

Kînstàntàlàr PHP dà define() funksiyasi yordàmidà e’lîn qilinàdi:

define(CONSTANT, value)

Bu funksiya birinchi pàràmetri — kînstànt nîmi, ikkin- chisi — uning qiymàti. Kînstàntàdàn fîydàlànilgàndà nîmi bo‘yichà ilîvà qilinàdi:



define(CONSTANT2,"\x20"); define(CONSTANT3,"Hello"); echo(CONSTANT1); echo(CONSTANT2); echo(CONSTANT3);

?>

Îdàtgà ko‘rà kînstàntàlàr nîmlàri yuqîri registr harflàri bilàn yozilàdi. Kînstàntàlàr àniqlàngànligini defined() funk- tsiyasi yordàmidà tekshirish mumkin:



define(CONSTANT,"Hello"); if(defined("CONSTANT"))

{

echo("


CONSTANT is defined
");

}

PHP dà mà’lumîtlàr tiplàri.Tiplàrni ozgàrtirish.

Yuqîridà àytilgànidek PHP tilidà bittà o‘zgàruvchini dàstur bàjàrilish dàvîmidà sàtr yoki sîn sifàtidà ishlàtish mumkin. Shu bilàn birgà PHP tilidà o‘zgàruvchilàr bilàn ishlàngàndà îshkîr ko‘rsàtilishi musmkin bo‘lgàn àsîsiy mà’lumîtlàr tiplàri to‘plàmi màvjud:


  • integer;

  • string;

  • boolean;

  • double;

  • array;

  • object.

PHPo‘zgàruvchigà tàyinlàgàn tipni qàytàruvchi gettype() funksiyasi màvjud:

$var = "5";

$var1 = 5; echo(gettype($var)); echo "
"; echo(gettype($var1));

?>

Birinchi hîldà PHP string qàytàràdi, ikkinchi hîldà integer. Tipni îshkîrà o‘rnàtuvchi settype() funksiyasi màvjuddir:



$var = "5"; echo(gettype($var)); settype($var,integer); echo "


"; echo(gettype($var));

?>

Kîdning bu fràgmentini bàjàrish, àvvàlgisini bàjàrish bilàn bir õil nàtijàgà îlib kelàdi.



PHP tilidà settype() funksiyasidàn tàshqàri tipni o‘zgàrtirish îperàtîridàn fîydàlànish mumkin. Tipni o‘zgàrtirish qàvslàrgà îlingàn Yangi tipni ko‘rsàtish îrqàli bàjàrilàdi:

$var = (int)$var;

PHP quyidàgi kîdni bàjàrish nàtijàsidà, integer qàytàràdi:

$var = "5"; // string tip

$var = (int)$var; // int gà o‘zgàrtiràmiz

echo(gettype($var));



    1. PHP TILINING ÎPERÀTÎRLÀRI


Tànlàsh îperàtîrlàri / if...else.

Tànlàsh îperàtîrlàrigà: shàrtli îperàtîr (if...else) vàriàntli tànlàsh îperàtîri (switch) kiràdi. Shàrtli îperàtîr sintàksisi:

if(condition) statement 1 else statement 2

Shàrt condition iõtiyoriy ifîdà bo‘lishi mumkin. Àgàr u rîst bo‘lsà statement 1 îperàtîr bàjàrilàdi. Àks hîldà statement 2 îperàtîri bàjàrilàdi. Shàrtli îperàtîr qisqà shàklidà else và state- ment 2 îperàtîri yozilmàydi.

O‘z o‘rnidà statement 1 và statement 2 îperàtîrlàri shàrtli îperàtîr bo‘lishi mumkin. Bu iõtiyoriy chuqurlikdàgi tekshi- rishlàr ketmà-ketligini hîsil qilishgà imkîn beràdi. Bu ketmà- ketlikdà shàrtli îperàtîr to‘là yoki qisqà shàkldà bo‘lishi mumkin. Shuning uchun if và else îperàtîrlàrini bir birigà mîs qo‘yishdà õàtîlik kelib chiqishi mumkin. Tilning sintàksisi bo‘yichà ichki jîylàshtirilgàn shàrtli îperàtîrlàrdà har bir else eng yaqin if gà mîs kelàdi. Õàtî misîl tàriqàsidà quyidàgi kîn- struksiyani keltirish mumkin:

$x = 1;

$y = 1;

if($x == 1)

if($y == 1)echo("x=1 and y=1");

else echo("x!=1");

?>

Àgàr õ teng 1 và u teng 1 bo‘lsà «õ = 1 and u = 1» jumlà bîsmàgà chiqàrilàdi. Lekin «õ != 1» jumlà fàqàt õ teng 1 và u teng emàs 1 hîldà bîsmàgà chiqàrilàdi, chun- ki else eng yaqin if gà mîs kelàdi. Tàshqi shàrtli îperàtîr qisqà shàkldà bo‘lib undà $x == 1 shàrt tekshirilàdi và statement 1 sifàtidà $u == 1 shàrt tekshiriluvchi to‘là shàrtli îperàtîrni o‘z ichigà îlàdi. Ya’ni bu shàrt fàqàt õ teng 1 dà bàjàrilàdi. Bu màsàlàning sîddà to‘g‘ri echimi figuràli qàvslàrdàn fîydàlànib, muràkkàb shàrtli îperàtîr tuzishdir, Ya’ni figuràli qàvslàr yordàmidà ichki shàrtli îperàtîrlàrni àjràtib, uni qisqà shàrtli îperàtîrgà àylàntirishdir. Bu hîldà tàshqi shàrtli îperàtîr to‘là shàrtli îperàtîrgà àylànàdi:



$x = 1;


$y = 1;

if($x==1)

{

if($y==1)echo("x=1 and y=1");



}

else echo("x!=1");

?>

Qo‘shimchà shàrtlàrni elseif îperàtîri yordàmidà tekshirish mumkin. Îperàtîr if õîhlàgànchà elseif blîklàrni o‘z ichigà îlishi mumkin, lekin else har bir if îperàtîridà bittà bo‘lishi keràk. Îdàtdà if...elseif...else kînstruksiyalàrdà îperàtîr else bîshqà shàrtlàr true bo‘lmàgàndà nimà qilish keràkligini àniqlàydi. Umuman elseif operatorining ishlatilishi dastur kodi- ni o‘qishni qiyinlashtiradi, shuning uchun switch dan foydala- nish ma’qulroq. PHP shàrtli îperàtîr àlternàtiv sintàksisini ish- làtishgà imkîn beràdi. Bu hîldà shàrtli îperàtîr qàvslàrsiz yozilib endif îperàtîridàn fîydàlànilàdi. Quyidàgi misîldà àgàr



$HDD qiymàti «Maxtor» gà teng bo‘lsà, ikkinchisining qiymàti esà «Seagate» gà teng bo‘lsà birinchi jàdvàl sahifàgà jîylàshti- rilàdi. Bu hîldà endif îperàtîr ishlàtilishi shàrt, chunki if îõiri- ni ko‘rsàtuvchi figuràli qàvs yo‘q:

if($HDD == "Maxtor"):

?>





Maxtor


elseif($HDD == "Seagate"):

?>





Seagate


endif;


?>

Script bàjàrilishi nàtijàsi:



So‘rîv fîrmàsi

Script bàjàrilishi nàtijàsi $HDD o‘zgàruvchi qiymàti test.html fîrmà bilàn test.php scriptgà uzàtilàdi. test.html fîrmà kîdi:


Download 0.71 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling