×òî òàêîå ñòàòè÷åñêèé Web-ñàéò? ×òî òàêîå äèíàìè÷åñêèé Web-ñàéò? Ïî÷åìó äèíàìè÷åñêèå ñàéòû ëó÷øå Ñîçäàíèå äèíàìè÷åñêîãî ñàéòà Äîáàâëåíèå ôóíêöèîíàëüíîñòè Ñîçäàíèå áàçû äàííûõ â ÑÓÁÄ MySQL Ðàçðàáîòêà ìîäåëè áàçû äàííûõ Ñîçäàíèå áàçû äàííûõ


   www.romver.ru
/ Ïîëíûé ñïèñîê ñòàòåé / Web-ñàéò

Êàê çàêàçàòü ñàéò


ÀÁÐÀÊÀÄÀÁÐÀ (Òîæå ñàìîå íî â ÷èòàåìîì âèäå)

Èpj lyz d ltym hf,jnfz yfl j,yjdktybtv cjlth;bvjuj cdjtuj Web-cfqnf, yfcsofz tuj bynthtcysvb vfnthbfkfvb, ds, dthjznyj, pflevsdftntcm j njv, xnj t;tlytdyj cjplf.ncz cjnyb yjds[ Web-cfqnjd, rjnjhst nfr;t t;tlytdyj gjgjkyz.ncz cjnyzvb yjds[ ljrevtynjd. Êfr cjplf.ncz dct 'nb yjdst vfccbds cnhfybw b rfrbv j,hfpjv jyb nfr ,scnhj j,yjdkz.ncz? Âct 'nj yt nfr ckj;yj, rfr rf;tncz yf gthdsq dpukzl, gjcrjkmre pltcm bcgjkmpetncz rjywtgwbz lbyfvbxtcrb[ Web-cnhfybw.

 'njq cnfnmt vs hfccvjnhbv 'nfgs cjplfybz vt[fybpvf ge,kbrfwbb yf Web-cfqnt ghtcc-htkbpjd. Ífi cfqn ,eltn cjtlbyznm «yf ktne» ghtcc-htkbps, [hfyzobtcz d ,fpt lfyys[, c if,kjyysvb Web-cnhfybwfvb. Ìs yt cnfdbkb wtkm. jpyfrjvbnm xbnfntktq c jcyjdfvb chtlcnd hfphf,jnrb Web-cfqnjd, gjcrjkmre j, 'njv yfgbcfyj vyj;tcndj rybu b cnfntq. Äfyyfz cnfnmz ghtlyfpyfxtyf d jcyjdyjv lkz nt[ gjkmpjdfntktq, rjnjhst e;t bvt.n jgsn cjplfybz Web-cnhfybw b ghjcns[ cfqnjd. Ífif ukfdyfz wtkm — gjrfpfnm, rfr yfxfnm hfphf,fnsdfnm cdjq gthdsq lbyfvbxtcrbq Web-cfqn. Äkz gjybvfybz cnfnmb ;tkfntkmyj bvtnm ,fpjdst pyfybz j, fh[bntrnehf[ byajhvfwbjyys[ cbcntv, j zpsrt hfpvtnrb ubgthntrcnf (HTML) b zpsrt ghjuhfvvbhjdfybz Perl . Äkz cjplfybz 'njuj cfqnf vs djcgjkmpetvcz nhtvz vjoysvb jnrhsnsvb nt[yjkjubzvb: Apache, MySQL b Perl/DBI.

×nj nfrjt cnfnbxtcrbq Web-cfqn?

Ïthtl ntv, rfr gjuhepbnmcz d hfphf,jnre lbyfvbxtcrjuj Web-cfqnf, df;yj gjyznm, xnj ghtlcnfdkz.n cj,jq cnfnbxtcrbq Web-cfqn b cnfnbxtcrbt Web-cnhfybws, cjcnfdkz.obt tuj jcyjde. Ñnfnbxtcrbt Web-cnhfybws cjplf.ncz dhexye., gjnjv cj[hfyz.ncz b pfuhe;f.ncz yf cfqn. Âczrbq hfp, rjulf nht,etncz bpvtybnm cjlth;bvjt nfrjq cnhfybws, gjkmpjdfntkm vjlbabwbhetn tt yf cdjtv hf,jxtv rjvgm.ntht, ghbvtyzz, rfr ghfdbkj, HTML-htlfrnjh, cj[hfyztn tt b pfntv pfyjdj pfuhe;ftn yf Web-cfqn. Âybvfntkmyj ghbcvjnhtdibcm r rfrjve-yb,elm gjhnfke, ljgecnbv r CNN.com bkb BBC.co.uk, vj;yj gjlevfnm, xnj lkz j,yjdktybz cjlth;bvjuj cdjb[ cfqnjd 'nb rjvgfybb ghbdktrf.n fhvb. dthcnfkmobrjd. Íf cfvjv ;t ltkt ceotcndetn kexibq cgjcj, — bcgjkmpjdfybt rjywtgwbb lbyfvbxtcrjuj Web-cfqnf.

×nj nfrjt lbyfvbxtcrbq Web-cfqn?

Êf;lfz jnj,hf;ftvfz cnhfybwf lbyfvbxtcrb[ Web-cfqnjd jcyjdfyf yf if,kjyyjq cnhfybwt, d rjnjhe. dcnfdkztncz gjcnjzyyj vtyz.ottcz byajhvfwbjyyjt yfgjkytybt, rjnjhjt j,sxyj [hfybncz d ,fpt lfyys[. Êjulf gjkmpjdfntkm pfghfibdftn cnhfybwe, cjjndtncnde.ofz byajhvfwbz bpdktrftncz bp ,fps, dcnfdkztncz d if,kjy, j,hfpez yjde. Web-cnhfybwe, b gthtcskftncz Web-cthdthjv d gjkmpjdfntkmcrbq ,hfepth, rjnjhsq b jnj,hf;ftn tt ljk;ysv j,hfpjv. Êhjvt byajhvfwbjyyjuj yfgjkytybz, lbyfvbxtcrb vjuen cjplfdfnmcz nfr;t b 'ktvtyns yfdbufwbb gj Web-cfqne. Òfrbv j,hfpjv, tckb dfv ye;yj j,yjdbnm cjlth;bvjt cdjtuj cfqnf, ds ghjcnj lj,fdkztnt ntrcn lkz yjdjq cnhfybws, rjnjhsq pfntv dcnfdkztncz d ,fpe lfyys[ c gjvjom. jghtltktyyjuj vt[fybpvf. Â htpekmnfnt gjkexftncz, xnj Web-cfqn rfr ,s cfv ct,z j,yjdkztn.

Ïjxtve lbyfvbxtcrbt cfqns kexit

Ñhfpe gjckt njuj rfr lbyfvbxtcrbq cfqn cjplfy b pfgeoty d hf,jne, yfxbyf.n ghjzdkznmcz tuj ghtbveotcndf. Òtgthm d dfitv hfcgjhz;tybb bvttncz chfdybntkmyj yt,jkmijt rjkbxtcndj if,kjyys[ cnhfybw, c gjvjom. rjnjhs[ utythbhe.ncz cjnyb, f vj;tn ,snm, b nsczxb Web-cnhfybw. Âbl (lbpfqy) cfqnf vj;tn ,snm kturj bpvtyty c gjvjom. vjlbabrfwbb 'nb[ if,kjyjd. Èpvtytybt cjlth;bvjuj ,fps lfyys[ vj;yj ghjbpdjlbnm xthtp Web-bynthatqc c bcgjkmpjdfybtv HTML-ajhvs, yt dnjhufzcm ghb 'njv d nt[ybxtcrbt ltnfkb rf;ljq cgtwbabxtcrjq ÑÓÁÄ.

Ñjplfybt lbyfvbxtcrjuj cfqnf

Ïthdjt, xnj ye;yj lkz cjplfybz lbyfvbxtcrjuj cfqnf, — 'nj Web-cthdth, yfghbvth Apache.

Web-cthdth vj;tn bcgjkmpjdfnmcz lkz j,cke;bdfybz 'ktrnhjyyjuj vfufpbyf, cthdthf yjdjcntq, gjbcrjdjuj vt[fybpvf, cbcntvs lbcnfywbjyyjuj j,extybz b lf;t lkz dctq cjdjregyjcnb gthtxbcktyys[ cath. Âs,jh Web-cthdthf pfdbcbn jn njuj, rfrbv dbljv ltzntkmyjcnb xfcnyjt kbwj bkb jhufybpfwbz cj,bhftncz pfybvfnmcz d Èynthytnt.

Ítvyjubt bp ghbybvftvs[ d ,bpytct cnhfntubxtcrb[ htitybq cnjkm ;t pyfxbvs, rfr ds,jh gkfnajhvs lkz Web-cthdthf. Õfhfrnthbcnbrb cthdthf — 'nj xhtpdsxfqyj df;ysq afrnjh, jghtltkz.obq yflt;yjcnm epkf, tuj «jnpsdxbdjcnm» yf pfghjcs rkbtynjd, f nfr;t nj, rfrbt ecbkbz ytj,[jlbvj ghtlghbybvfnm lkz gjllth;fybz tuj d hf,jxtv cjcnjzybb. Ïhb ghfdbkmyjv ds,jht rjvgjytynjd b rfxtcndtyyjv ghjtrnt Web-eptk vj;tn cnfnm lkz rkbtynjd b gfhnythjd yjdsv, ,jktt elj,ysv cgjcj,jv dpfbvjltqcndbz c dfitq rjvgfybtq. Ïthtuheprf Web-cthdthf vj;tn ghbdtcnb r njve, xnj cthdth ,fp lfyys[ bkb rfrjq-kb,j byjq htcehc cnfytn ytljcnegysv lkz rkbtynjd.

Êhegyst rjvgfybb lj ytlfdytuj dhtvtyb ltkfkb cnfdrb yf Microsoft Internet Information Server, Netscape FastTrack, IBM WebSphere, f Apache d jcyjdyjv bcgjkmpjdfkcz yt,jkmibvb rjvgfybzvb. Îlyfrj ctqxfc cbnefwbz ytcrjkmrj bpvtybkfcm, b Apache yfxbyftn gjllth;bdfnm hf,jnjcgjcj,yjcnm ytrjnjhs[ rhegys[ Èynthytn-ghjtrnjd, d xfcnyjcnb Yahoo.

Ïjkye. dthcb. cnfnmb ds vj;tnt yfqnb yf yfitv CD-ROM.

Apache ghtljcnfdkztn ,jufnst djpvj;yjcnb, gjpdjkz.obt yfcnhjbnm Web-cthdth d cjjndtncndbb c gjnht,yjcnzvb bylbdblefkmys[ b rjhgjhfnbdys[ gjkmpjdfntktq. Ífcnhjqrf ghjbpdjlbncz c gjvjom. lbhtrnbd, cjlth;fob[cz d rjyabuehfwbjyys[ afqkf[. Apache gjpdjkztn cjplfdfnm dbhnefkmyst Web-epks, f nfr;t dsgjkyztn aeyrwbb proxy-cthdthf. Åckb ye;yj ghtljcnfdbnm ljcneg r cjlth;bvjve cthdthf kbim juhfybxtyyjve rheue kbw, Web-cthdth vj;yj yfcnhjbnm nfr, xnj,s ghb j,hfotybb r erfpfyysv rfnfkjufv cthdth ghjdthzk htubcnhfwbjyyst bvtyf b gfhjkb d cj,cndtyyjq bkb d jlyjq bp gjlrk.xtyys[ r ytve ,fp lfyys[.

Äfktt dfv ye;yj htibnm, rfr ds cj,bhftntcm [hfybnm byajhvfwbjyyjt yfgjkytybt (rjyntyn), rjnjhjt jnj,hf;ftncz yf Web-cnhfybwt. Â lfyyjq cnfnmt yf rjyrhtnyjv ghbvtht vs gjrf;tv, rfr cjplfnm ,fpe lfyys[ d ÑÓÁÄ MySQL, rjnjhfz gjpdjkbn yfv hfp,bnm Web-rjyntyn yf nf,kbws, cjlth;fobt gjkz b pfgbcb c lfyysvb. Ïjkt — 'nj lbcrhtnyfz tlbybwf lfyys[ d nf,kbwt. Ífghbvth, vs vj;tv cjplfnm nf,kbwe tbl_news_items c gjkzvb col_title, col_date, col_fullstory, col_author. ÑÓÁÄ MySQL — jnkbxysq ds,jh lkz cjplfybz nfrjq ,fps lfyys[ dcktlcndbt ghjcnjns d bcgjkmpjdfybb b flvbybcnhbhjdfybb, cdj,jlyjq hfcghjcnhfyztvjcnb lkz hfpys[ gkfnajhv, drk.xfz Linux b Windows, b ,scnhj hfcneotq gjgekzhyjcnb.

Ïjckt 'njuj vs cjplflbv lbyfvbxtcrbt if,kjyyst cnhfybws yf HTML. ×nj,s hfphf,jnfnm ghbkj;tybz lkz dpfbvjltqcndbz c ,fpjq lfyys[ b if,kjyfvb, vs djcgjkmpetvcz zpsrjv Perl.

Íf cfvjv ltkt yfv ytj,[jlbvj cjplfnm nhb Perl-ghjuhfvvs, bkb crhbgnf: jlby ,eltn jnj,hf;fnm ccskrb yf dct bvt.obtcz ghtcc-htkbps (pr-list-dbi.pl), lheujq — cjlth;bvjt ds,hfyyjuj ghtcc-htkbpf (pr-content-dbi.pl), f nhtnbq gjpdjkbn yfv lj,fdbnm cdt;bq ghtcc-htkbp d ,fpe lfyys[ (pr-add-dbi.pl). Ðf,jne gj dthcnrt vj;yj djpkj;bnm yf k.,bvsq HTML-htlfrnjh, yfghbvth, Allaire HomeSite (http://www.allaire.com/). Òjkmrj gjvybnt, xnj ghb cjplfybb if,kjyf ytj,[jlbvj jcnfdkznm gecnst j,kfcnb, d rjnjhst ,eltn dcnfdkznmcz lbyfvbxtcrjt yfgjkytybt (tcntcndtyyj, gthtvtyyjq lkbys).

Ïjckt hfphf,jnrb j,otuj lbpfqyf lkz cdjb[ ghtcc-htkbpjd ghjcnj dcnfdmnt d erfpfyyst dsit gecnst j,kfcnb cgtwbfkmyst rk.xtdst ckjdf (cv. j, 'njv yb;t). Êfr njkmrj gjkmpjdfntkm pfghjcbn rfrjq-kb,j ghtcc-htkbp, Web-cthdth j,hf,jnftn Perl-rjl b pfvtybn rk.xtdst ckjdf d if,kjyf[ byajhvfwbjyysv yfgjkytybtv, bpdktxtyysv bp ,fps lfyys[, nj tcnm rfrbv-nj rjyrhtnysv ghtcc-htkbpjv.

È gjcktlytt, xnj ye;yj cltkfnm, — pfuhepbnm dfib if,kjys yf Web-cthdth d jghtltktyyst lbhtrnjhbb. Ìj;yj djcgjkmpjdfnmcz FTP-rkbtynjv CuteFTP (http://www.cuteftp.com/), yj vs ghtlgjxbnftv bcgjkmpjdfnm afqkjde. j,jkjxre FAR. Ädt df;yst dtob, rjnjhst cktletn pfgjvybnm: gthdjt — afqks if,kjyjd ljk;ys cjlth;fnm bvtyf, jrfyxbdf.obtcz yf .pl, b dnjhjt — jyb ljk;ys bvtnm ghfdj yf dsgjkytybt (d UNIX-cbcntvf[ yflj dsgjkybnm rjvfyle chmod 0755 bvz_if,kjyf.pl). Ýnj dct!

Äj,fdktybt aeyrwbjyfkmyjcnb

Ít ghtlcnfdkztn jcj,s[ ckj;yjcntq lj,fdktybt aeyrwbjyfkmys[ djpvj;yjcntq r vt[fybpve ge,kbrfwbb ghtcc-htkbpjd. Ìj;yj jncjhnbhjdfnm ccskrb yf ljcnegyst d ,fpt lfyys[ ghtcc-htkbps gj lfnt bkb yfpdfyb., uheggbhez b[ gj ujlfv. Èkb, yfghbvth, ds pf[jnbnt jnj,hfpbnm ckexfqysq ghtcc-htkbp yf dfitq Web-cnhfybwt, dhtvz jn dhtvtyb ghtljcnfdkzz tuj byajhvfwb. gjctnbntkzv ytpfdbcbvj jn njuj, rjulf jy ,sk htfkmyj jge,kbrjdfy. Íj crjhtt dctuj cfvjq df;yjq b gjktpyjq aeyrwbjyfkmyjcnm. ,eltn lj,fdktybt HTML-ajhvs lkz ddjlf cjlth;bvjuj ghtcc-htkbpf b hfphf,jnrb CGI-ghjuhfvvs yf Perl d wtkz[ j,hf,jnrb 'njq ajhvs b gjcktle.otuj hfpvtotybz ljrevtynf d ,fpt lfyys[. Ífgjvybv, xnj CGI (Common Gateway Interface) — ghjnjrjk, vt[fybpv, bkb ajhvfkmyjt cjukfitybt vt;le Web-cthdthjv b jnltkmyjq ghjuhfvvjq. Ñthdth rjlbhetn d[jlyst lfyyst, yfghbvth HTML-ajhvs, f ghjuhfvvf CGI ltrjlbhetn b[ b utythbhetn gjnjr ds[jlys[ lfyys[. Â cgtwbabrfwbb ghjnjrjkf ybxtuj yt crfpfyj j rfrjv-kb,j jghtltktyyjv zpsrt ghjuhfvvbhjdfybz. Ïj'njve ghjuhfvvs, cjjndtncnde.obt 'njve ghjnjrjke, vjuen ,snm yfgbcfys ghfrnbxtcrb yf k.,jv zpsrt — yf C, C++, Visual Basic, Delphi, Tcl, Python bkb, rfr d yfitv ckexft, yf Perl.

Ïjldtltv ytrjnjhst bnjub. Íflttvcz, xnj 'nf cnfnmz gjvj;tn dfv jwtybnm ghtbveotcndf rjywtgwbb lbyfvbxtcrb[ Web-cnhfybw gthtl cnfnbxtcrbvb. Ïhbvtytybt lfyyjq rjywtgwbb ghbdtltn r cjrhfotyb. hexyjq hf,jns, gjvj;tn hfcghtltkbnm hf,jxe. yfuhepre cthdthf b gjpdjkbn ,scnhj edtkbxbnm rjkbxtcndj byajhvfwbjyyjuj yfgjkytybz cfqnf. Êjv,byfwbz bp Apache, MySQL b Perl ghtljcnfdbn ghfrnbxtcrb ,tcgkfnye., ghjcne. d bcgjkmpjdfybb, ub,re. d ecnfyjdrt b yfcnhjqrt rhjcc-gkfnajhvtyye. b vfcinf,bhetve. chtle hfphf,jnrb. Çltcm vs yt ,eltv hfccvfnhbdfnm jcj,tyyjcnb b[ ecnfyjdrb, nfr rfr, dj-gthds[, yf 'nj gjghjcne yt [dfnbn vtcnf, jndtltyyjuj lkz lfyyjq cnfnmb, f dj-dnjhs[, rf;ljt bp 'nb[ chtlcnd gjcnfdkztncz dvtcnt c dtcmvf gjlhj,yjq ljrevtynfwbtq.

Ñjplfybt ,fps lfyys[ d ÑÓÁÄ MySQL

Ðfphf,jnrf vjltkb ,fps lfyys[

Ïthdsv b yfb,jktt df;ysv ltqcndbtv ghb cjplfybb ,fps lfyys[ zdkztncz hfphf,jnrf tt vjltkb. Ènfr, ghbcnegftv.

Øfu 1

Ífv ye;yj rfr-nj yfpdfnm ,fpe lfyys[. Ífpjdtv tt db_website.

Øfu 2

Ítj,[jlbvj jghtltkbnm, xnj bvtyyj ,elen cjlth;fnm nf,kbws ,fps lfyys[. Â ÁÄ vjuen d[jlbnm cjnyb nf,kbw. Ñyfxfkf yfv gjnht,etncz dctuj jlyf nf,kbwf lkz [hfytybz yfib[ ghtcc-htkbpjd. Ífpjdtv tt tbl_news_items.

Øfu 3

Ñktletn jghtltkbnm gjkz, rjnjhst ,eltn cjlth;fnm yfif nf,kbwf. Ýnb gjkz ,elen zdkznm cj,jq dct 'ktvtyns ghtcc-htkbpf. Â yfitv ghbvtht bcgjkmpe.ncz gznm gjktq: col_id (xbckjdjq bltynbabrfnjh ghtcc-htkbpf), col_title (yfpdfybt), col_date (lfnf ge,kbrfwbb), col_fullstory (cjlth;bvjt), col_author (bvz fdnjhf). Ïjkt col_id ,eltn cjlth;fnm eybrfkmysq bltynbabrfnjh, gj rjnjhjve gjkmpjdfntkm cvj;tn pfghfibdfnm cjlth;bvjt jghtltktyyjuj ghtcc-htkbpf.

Ñjplfybt ,fps lfyys[

Òtgthm yfv ytj,[jlbvj ecnfyjdbnm cjtlbytybt c ÑÓÁÄ MySQL b cjplfnm yfie ,fpe lfyys[. Íb;t vs gjrf;tv, rfr cltkfnm 'nj bp rjvfylyjq cnhjrb. Îlyfrj ceotcndetn vyj;tcndj cbcntv eghfdktybz, bkb vtytl;thjd ÑÓÁÄ MySQL, rjnjhst gjpdjkz.n flvbybcnhbhjdfnm tt, bcgjkmpez lhe;tcndtyysq uhfabxtcrbq bynthatqc.

Ïht;lt dctuj dfv j,zpfntkmyj cktletn pyfnm jcyjds zpsrf pfghjcjd SQL (Structured Query Language). Â gjcnfdre ÑÓÁÄ MySQL d[jlbn gjkyjt jgbcfybt gjllth;bdftvjq cgtwbabrfwbb SQL. Ýnjn zpsr ytckj;ty lkz gjcnb;tybz, gjcrjkmre tuj jgthfnjhs b b[ rjycnherwbb kturj gjyznm b pfgjvybnm. Äkz hf,jns dfv gjnht,e.ncz jgthfnjhs cjplfybz (CREATE bkb INSERT), ds,jhrb (SELECT) b elfktybz (DROP bkb DELETE) lfyys[, f nfr;t b[ bpvtytybz (UPDATE, MODIFY). Â rjyrhtnys[ ghbvthf[ vs djcgjkmpetvcz njkmrj ytrjnjhsvb bp yb[.

×nj,s yt hfccvfnhbdfnm ecnfyjdre gjkmpjdfntkmcrb[ extnys[ pfgbctq (user accounts) b yfpyfxtybt ytj,[jlbvs[ ghfd ljcnegf, ghtlgjkj;bv, xnj ds bcgjkmpetnt extnye. pfgbcm flvbybcnhfnjhf (root).

Øfu 1

Înrhjqnt nthvbyfkmyjt jryj (tckb ds hf,jnftnt d uhfabxtcrjq j,jkjxrt X Window ÎÑ Linux bkb d ÎÑ Windows 9x/NT/2000) b ecnfyjdbnt cjtlbytybt c ÑÓÁÄ MySQL, ddtlz d rjvfylyjq cnhjrt mysql. Â jndtn ds ljk;ys gjkexbnm ghbukfitybt lkz ddjlf rjvfyl mysql>.

Øfu 2

Ñjplflbv yfie ,fpe lfyys[, ddtlz:

CREATE DATABASE db_website;

Ïjckt ddjlf rf;ljq rjvfyls yt pf,sdfqnt gtxfnfnm cbvdjk (;). Îy jxtym df;ty, gjcrjkmre gjcskftn MySQL cbuyfk rjywf ddjlf rjvfyls.

Øfu 3

Äfktt ytj,[jlbvj gjckfnm rjvfyle, erfpsdf.oe. cbcntvt MySQL, rfre. rjyrhtnyj ,fpe lfyys[ vs cj,bhftvcz bcgjkmpjdfnm. Âdtlbnt:

use db_website;

Øfu 4

Ñjplflbv nf,kbwe tbl_news_items, ult jghtltkbv nbg lfyys[, rjnjhst ,elen [hfybnmcz d tt gjkz[. Âdtlbnt:

1. CREATE TABLE tbl_news_items (
2. col_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
3. col_title VARCHAR(100),
4. col_author VARCHAR(100),
5. col_body TEXT,
6. col_date DATE
7. );

Øfu 5

Òtgthm, rjulf vs cjplfkb nf,kbwe lkz [hfytybz yfib[ lfyys[, yfv ye;yj pfgjkybnm tt rfrbvb-nj ghbvthysvb lfyysvb. Çfvtnmnt, xnj d yb;tcktle.otq rjvfylt vs yt ,eltv jghtltkznm gjkt col_id, gjnjve xnj jyj pfgjkyztncz fdnjvfnbxtcrb gj vtht lj,fdktybz yjds[ lfyys[. Òfr;t bvtqnt d dble, xnj cbynfrcbc lkz lfns — <ujl/vtczw/ltym>. Ènfr, d rjvfylyjq cnhjrt mysql> ddtlbnt cktle.oe. rjvfyle.

8. INSERT INTO tbl_news_items (col_title, _
col_author, col_body, col_date)
9. VALUES (
10. ‘Ìjq gthdsq ghtcc-htkbp’,
11. ‘Âfit Èvz’,
12. ‘Ýnjn ghtcc-htkbp [hfybncz d ÁÄ MySQL’,
13. ‘2001/4/15’
14. );

Âdtlbnt tot ytcrjkmrj gjlj,ys[ pfghjcjd lkz dcnfdrb. ×nj,s ghjcvjnhtnm nj, xnj [hfybncz d ,fpt lfyys[, d rjvfylyjq cnhjrt mysql> ddtlbnt:

SELECT * FROM tbl_news_items;

Ñjplfybt lbyfvbxtcrb[ Web-cnhfybw yf Perl

Ïjlujnjdrf r hf,jnt

Äkz pfgecrf Perl-ghjuhfvv gjyflj,bncz bynthghtnfnjh Perl dthcbb 5.005 bkb 5.6 lbcnhb,enbdjd Perl Standard bkb ActiveState Perl lkz UNIX bkb Win32. Åckb ds ,eltnt pfybvfnmcz hfphf,jnrjq ghbkj;tybq lkz aeyrwbjybhjdfybz gjl Win32, nj gfrtn jn ActiveState ytcrjkmrj elj,ytt d bcgjkmpjdfybb, r njve ;t d ytuj d[jlbn enbkbnf PPM lkz ecnfyjdrb ljgjkybntkmys[ vjlektq.

Äkz jhufybpfwbb dpfbvjltqcndbz yfib[ Perl-ghjuhfvv c ÑÓÁÄ MySQL ytj,[jlbvj, xnj,s d gjcnfdre Perl d[jlbk vjlekm DBI. Ïjcrjkmre vjlekm d jcyjdyjv ybxtuj cfv yt ltkftn, f gthtrkflsdftn dct jgthfwbb gj dpfbvjltqcndb. c ,fpfvb lfyys[ yf cjjndtncnde.obq bv lhfqdth, nj nht,etncz ecnfyjdrf ,b,kbjntrb DBD-Mysql (lhfqdth r ÁÄ MySQL lkz vjlekz DBI). Êfr pfzdbk Òbv Ám.yc (Tim Bunce), fdnjh b hfphf,jnxbr erfpfyyjuj vjlekz, «DBI — 'nj API-bynthatqc lkz jhufybpfwbb ljcnegf r ,fpfv lfyys[ bp Perl-ghjuhfvv. Ñgtwbabrfwbz DBI API jghtltkztn yf,jh aeyrwbq, gthtvtyys[ b ghfdbk, bcgjkmpetvs[ lkz ghjphfxyjuj bynthatqcf c ,fpfvb lfyys[».

Êjywtgwbz lhfqdthjd ,fp lfyys[ dtcmvf elj,yf, gjcrjkmre d cdjtv Perl-ghbkj;tybb ds bcgjkmpetnt cnfylfhnyst lkz DBI dspjds, rjnjhst pfntv gthtflhtce.ncz vjlekb cjjndtncnde.otve lhfqdthe, f njn, d cdj. jxthtlm, e;t yfghzve. ,eltn dpfbvjltqcndjdfnm c ÁÄ, yt nht,ez jn dfc bpextybz nt[ybxtcrb[ jcj,tyyjcntq rf;ljq rjyrhtnyjq ÑÓÁÄ. Òfrbv j,hfpjv, ceotcnde.n lhfqdths DBD::Sybase, DBD::Oracle, DBD::Informix b n.l. (hbc. 1, 2).

Ðbc. 1. Àh[bntrnehf DBI

Ðbc. 2. Ïjnjr lfyys[ xthtp bynthatqc DBI

Ítvyjuj dsqltv pf hfvrb ntvfnbrb cnfnmb. Äjgecnbv, xnj d gjcnfdre DBI yt d[jlbn lhfqdth lkz cgtwbabxtcrjq ÑÓÁÄ. Â lfyyjv ckexft yf gjvjom ghbltn vjcn DBD-ODBC. Äjcnfnjxyj cjplfnm yjdsq bcnjxybr lfyys[ (Data Source Name) lkz lhfqdthf ODBC (Open DataBase Connectivity), ult ye;yj ds,hfnm nbg 'njq ÑÓÁÄ, flhtc [jcnf, gj rjnjhjve yflj ecnfyjdbnm cjtlbytybt, bvz ,fps lfyys[ b fdnjhbpfwbjyyst lfyyst, nj tcnm bvz gjkmpjdfntkz b gfhjkm (hbc. 3). È pfntv, bcgjkmpez vjlekm DBI, dpfbvjltqcndjdfnm c ,fpjq lfyys[. Êhjvt njuj, rfr ghfdbkj, d cnfylfhnye. gjcnfdre ActiveState Perl d[jlbn vjlekm Win32::ODBC (Win32-ODBC). Ðf,jnf c ybv ytvyjuj jnkbxftncz jn hf,jns c DBI, yj d wtkjv jxtym gj[j;f. Ðfpybwf kbim d njv, xnj Win32::ODBC — vjlekm njkmrj lkz Win32-cbcntv b gjpdjkztn hf,jnfnm c «hjlysvb» aeyrwbzvb ODBC ,jktt 'aatrnbdyj, xtv DBD::ODBC.

Ðbc. 3. Äj,fdktybt yjdjuj bcnjxybrf lfyys[ xthtp ODBC-flvbybcnhfnjh

Ìt;le ODBC b DBI vj;yj ghjdtcnb gfhfkktkm. DBI — 'nj fyfkju ODBC Administrator (vtytl;thf lhfqdthjd ,fp lfyys[). Êf;lsq DBD-lhfqdth gj cdjbv aeyrwbzv cjjndtncndetn ODBC-lhfqdthe. Ìj;tn cvenbnm kbim njn afrn, xnj ceotcndetn, rfr ujdjhbkjcm dsit, lhfqdth DBD::ODBC. Íj jy dctuj kbim gjpdjkztn ecnfyjdbnm cdzpm DBI c ODBC-lhfqdthfvb.

Äkz ecnfyjdrb DBI b DBD-Mysql, c gjvjom. enbkbns PPM d chtlt Win32 ddtlbnt d rjvfylyjq cnhjrt:

ppm install DBI

Î,hfnbnt dybvfybt, xnj d 'njn vjvtyn dfi rjvgm.nth ljk;ty ,snm gjlrk.xty r Èynthytne. Åckb ;t cjjndtncnde.obq vjlekm bvttncz e dfc yf kjrfkmyjv lbcrt, djcgjkmpeqntcm cghfdjxyjq byajhvfwbtq, ddtlz rjvfyle:

ppm help install

Äkz gjkmpjdfntktq UNIX-cbcntv ecnfyjdrf vjlekz DBI ,eltn ghj[jlbnm ghfrnbxtcrb nfr ;t, rfr b ecnfyjdrf lheub[ Perl-vjlektq:

tar –zxvf DBI-1.06.tar.gz
cd DBI-1.06/
perl Makefile.PL
make
make test
make install

Ìj;yj nfr;t djcgjkmpjdfnmcz j,jkjxrjq CPAN. Åckb ;t yf dfitv rjvgm.ntht ecnfyjdktyf UNIX-dthcbz gfrtnf jn ActiveState, nj vj;yj hf,jnfnm b c ecnfyjdjxyjq enbkbnjq PPM. Èyjulf ,sdftn, xnj j,jkjxrb CPAN b PPM yt aeyrwbjybhe.n, tckb d ctnb ghtlghbznbz, r rjnjhjq gjlrk.xty dfi rjvgm.nth, ecnfyjdkty ,hfylvfe'h, bkb ctntdjq 'rhfy (firewall). Â lfyyjv ckexft dfv gjvjuen njkmrj vjlekb c bc[jlysvb ntrcnfvb, pfuhe;tyyst dhexye.. Äkz b[ ecnfyjdrb b gjlrk.xtybz r Perl bkb Apache gjnht,etncz bynthghtnfnjh Perl, rjvgbkznjh C/C++ bkb GCC/PGCC b rfrfz-kb,j bp enbkbn-c,jhobrjd make (bp gjcnfdrb jlyjuj bp rkjyjd UNIX, f nfr;t Microsoft Visual C++), nmake bkb dmake. Òfrbv j,hfpjv, ghjwtlehf ecnfyjdrb vjlektq ytcrjkmrj eckj;yztncz. Ïjxnb c rf;lsv bp yb[ gjcnfdkztncz ljrevtynfwbz gj «c,jhrt», ,kfujlfhz rjnjhjq e dfc yt ljk;yj djpybryenm jcj,s[ nhelyjcntq.

Âsdjl cgbcrf cnfntq

Òtgthm, rjulf e dfc tcnm hf,jnf.ofz ,fpf lfyys[ c ghtcc-htkbpfvb, vj;yj ,tp jcj,s[ ghj,ktv gjlrk.xbnm tt r Web-cnhfybwt. Ífxytv c cjplfybz ghjcntqitq cnhfybws, rjnjhfz jnj,hf;ftn cgbcjr dct[ bvt.ob[cz ghtcc-htkbpjd. Çfvtnmnt, xnj gj evjkxfyb. Web-cthdth Apache «levftnm», xnj dct dfib ljrevtyns ljk;ys yf[jlbncz d tuj lbhtrnjhbb htdocs, f bcgjkyztvst afqks — d cgi-bin. Ñktljdfntkmyj, ytj,[jlbvj gjvtcnbnm dct afqks c hfcibhtybtv .pl d rfnfkju cgi-bin. Â cdj. jxthtlm, cjplfdftvst afqks HTML-if,kjyjd ye;yj hfpvtcnbnm d rfnfkjut tpl. Èthfh[bz rfnfkjujd ,eltn dsukzltnm cktle.obv j,hfpjv:

/ (rjhtym k.,juj lbcrf)
/local
/local/usr
/local/usr/bin
/local/usr/cgi-bin
/local/usr/htdocs
/local/usr/tpl

Äkz cbcntv DOS/Windows genm r cgi-bin vj;tn dsukzltnm nfr:

c:localusrcgi-bin

Øfu 1

Ècgjkmpez cdjq k.,bvsq ntrcnjdsq htlfrnjh, cjplfqnt afqk pr-list-tpl.htm:

15. 
16. 
17. 
18. 
19. 
20. @BLOCK@
21. 
22. 

Ýnjn afqk ghtlyfpyfxty lkz jnj,hf;tybz cgbcrf dct[ ljcnegys[ ghtcc-htkbpjd.

Øfu 2

Ñjplfqnt afqk pr-list-block-tpl.htm, rjnjhsq ,eltn jnj,hf;fnm rf;lsq ,kjr c yfqltyysv ghtcc-htkbpjv d dblt nf,kbws:

23. 
"2" cellspacing="1">
24. 
25. 
26. 
"/cgi-bin/@READ@?id=@NUMBER@">@TITLE@
@AUTHOR@, _
@DATE@

Øfu 3

Ñjplfqnt afqk pr-content-tpl.htm, rjnjhsq ,eltn jnj,hf;fnm cjlth;fybt ghtcc-htkbpf:

27. 
28. 
29. 
30. 
31. 
32. 

@TITLE@

33. 
34. 
35. 
36. 
37. 
@TITLE@
Author: @AUTHOR@ Date: @DATE@
@BODY@
38. Show the list of press-releases..
39. 
40. 

Øfu 4

Ñjplfqnt Perl-crhbgn pr-list-dbi.pl, rjnjhsq ,eltn xbnfnm lfyyst bp ,fps lfyys[ db_website b, bcgjkmpez if,kjyyst HTML-afqks, jnj,hf;fnm cgbcjr ghtcc-htkbpjd (ntrcn 'njuj crhbgnf ds cvj;tnt yfqnb yf yfitv rjvgfrn-lbcrt).

À ntgthm ghjqltvcz gj kbcnbyue rjlf b hfccvjnhbv, rfr hf,jnftn ghjuhfvvf dsdjlf cgbcrf ghtcc-htkbpjd.

Ñnhjrb 1-9 ghtlcnfdkz.n cj,jq rfr ,s bybwbfkbpbhe.obq ,kjr, d rjnjhjv j,]zdkz.ncz dct ukj,fkmyst gthtvtyyst b rjycnfyns:

41. #!/local/usr/bin/perl
42. 
43. use DBI;
44. $dbh = DBI->connect(‘dbi:mysql:db_website’,’root’,’’);
45. $path = "/local/usr/tpl";
46. $TPL_LIST = "$path/pr-list-tpl.htm";
47. $TPL_LIST_BLOCK = "$path/pr-list-block-tpl.htm";
48. 
49. print "Content-type:text/htmlnn";

Ñgthdf vs cjj,oftv Web-cthdthe Apache genm, erfpsdf.obq, ult yf[jlbncz bynthghtnfnjh Perl, rjnjhsq pfgecrftncz ghb pfghjct crhbgnf, ghjdthztn tuj yf jib,rb b pfntv dsgjkyztn tuj. Äfktt vs j,]zdkztv vjlekm DBI (DataBase Interface), vtnjls rjnjhjuj ,elen bcgjkmpjdfnmcz d ghjuhfvvt lkz dpfbvjltqcndbz c ,fpjq lfyys[ (cnhjrf 3). Çfntv vs ecnfyfdkbdftv cjtlbytybt c yfitq ,fpjq lfyys[ db_website (4), erfpsdfz d rfxtcndt d[jlyjuj bvtyb gjkmpjdfntkz root (flvbybcnhfnjh), f d rfxtcndt gfhjkz gecne. cnhjre (pyfxtybt, ghbyznjt gj evjkxfyb.). Â gthtvtyyjq $path erfpsdftv genm, gj rjnjhjve yf[jlzncz afqks HTML-if,kjyjd (5). Â gthtvtyys[ $TPL_LIST b $TPL_LIST_BLOCK cjjndtncndtyyj erfpsdftv b[ bvtyf (6, 7). Ïjnjv, cjj,oftv Web-cthdthe, xnj dct bc[jlzobt lfyyst ljk;ys ghtlcnfdkznmcz d MIME-ajhvfnt text/html lkz dsdjlf HTML-gjnjrf d gjkmpjdfntkmcrbq ,hfepth (9).

Ñnhjrb 11-22 ghtlcnfdkz.n cj,jq ntkj ghjuhfvvs:

50. 
51. open (L, "$TPL_LIST");
52. while ($line1=) {
53. chomp($line1);
54. if ($line1=~/@BLOCK@/) {
55. read_db();
56. ins_data();
57. } else {
58. print "$line1n"; 
59. }
60. }
61. close(L);
62. 
63. $dbh->disconnect;

Înrhsdftv afqk-if,kjy pr-list-tpl.htm (11) b d wbrkt (12-20) ghjcvfnhbdftv tuj, pfgbcsdfz rf;le. cxbnfyye. cnhjre d gthtvtyye. $line. Âj dhtvz rf;ljq bnthfwbb ghjbpdjlbv ghjdthre yf yfkbxbt d 'njq cnhjrt rk.xtdjuj ckjdf @BLOCK@ (14-19), jpyfxf.otuj, xnj d lfyyjv vtcnt yflj dcnfdbnm ,kjr c ghtcc-htkbpjv. Êfr njkmrj jyj yfqltyj, dspsdftv ghjwtlehs read_db() b ins_data().

Ñnhjrb 26-39 — ntkj ghjwtlehs read_db(), ghtlyfpyfxtyyjq lkz cxbnsdfybz cjlth;bvjuj nf,kbws tbl_news_items, d rjnjhjq [hfyzncz yfib ghtcc-htkbps:

64. 
65. 
66. sub read_db {
67. $c=0;
68. my($sql) = "SELECT * FROM tbl_news_items";
69. $rs = $dbh->prepare($sql);
70. $rs->execute;
71. while (my $ref = $rs->fetchrow_hashref()) {
72. $id[$c] = "$ref->{‘col_id’}";
73. $title[$c] = "$ref->{‘col_title’}";
74. $author[$c] = "$ref->{‘col_author’}";
75. $date[$c] = "$ref->{‘col_date’}";
76. $c++;
77. }
78. $rs->finish();
79. }

Èybwbfkbpbhetv cxtnxbr $c=0, cjcnfdkztv pfghjc ds,jhrb dct[ lfyys[ bp nf,kbws (28), dsgjkyztv pfghjc (29, 30) b gjkexftv lfyyst d htrjhlctn (recordset — yf,jh pfgbctq) $rs. Çfntv d wbrkt (31-37) bpdktrftv lfyyst bp htrjhlctnf, bcgjkmpez vtnjl fetshrow_hashref b djpdhfofz ccskre yf fccjwbfnbdysq vfccbd %ref (31), cjlth;fobq bvtyf b pyfxtybz gjktq ntreotq pfgbcb. Çfgbcsdftv bpdktxtyyst lfyyst (32-35) d cjjndtncnde.obt b[ nbgfv j,sxyst vfccbds @id, @title, @author b @date. Çfrhsdftv htrjhlctn (38).

Ñnhjrb 41-53 — ntkj ghjwtlehs ins_data(), htfkbpe.otq dcnfdre bpdktxtyys[ bp ÁÄ lfyys[ d bc[jlzobq gjnjr lfyys[; cnhjrb 55-63 — ntkj ghjwtlehs pr_block(), dspsdftvjq d wbrkt bp ghjwtlehs ins_data():

80. 
81. sub ins_data {
82. $toread = "pr-read-dbi.pl";
83. for ($i=0; $i<$c; $i++) {
84. $line = &pr_block;
85. 
86. $line =~ s/@NUMBER@/$id[$i]/;
87. $line =~ s/@TITLE@/$title[$i]/;
88. $line =~ s/@AUTHOR@/$author[$i]/;
89. $line =~ s/@DATE@/$date[$i]/;
90. $line =~ s/@READ@/$toread/;
91. print "$line";
92. }
93. }
94. 
95. sub pr_block {
96. my($block) = ‘’;
97. open (B, "$TPL_LIST_BLOCK");
98. while ($line=) {
99. $block = $block.$line;
100. }
101. close(B);
102. return ($block);
103. }

Ènfr, gjkexbd d htpekmnfnt dsgjkytybz ghjwtlehs read_db() vfrcbvfkmyjt pyfxtybt cxtnxbrf $c, d wbrkt (43-52) vs pfgecrftv ghjwtlehe pr_block(), rjnjhfz xbnftn cjlth;bvjt HTML-if,kjyf pr-list-block-tpl.htm b pfgbcsdftn tuj d gthtvtyye. $block (59), pyfxtybt rjnjhjq pfntv djpdhfoftncz (62) d gthtvtyye. $line (44) ghjwtlehs ins_data(). Äfktt d 'njv ;t wbrkt vs pfvtyztv (46-50) yfqltyyst d bc[jlzotv gjnjrt $line rk.xtdst ckjdf @NUMBER@, @TITLE@, @AUTHOR@, @DATE@, @READ@ yf cjjndtncnde.obt lfyyjq bnthfwbb wbrkf ($i) pyfxtybz vfccbdjd @id, @title, @author, @date b gthtvtyyjq $toread.

Âsdjl ntrcnf ghtcc-htkbpf

Ïjckt njuj rfr vs dsdtkb cgbcjr dct[ bvt.ob[cz d ,fpt lfyys[ ghtcc-htkbpjd (hbc. 4), ye;yj lfnm gjkmpjdfntk. djpvj;yjcnm ghjcvjnhtnm ntrcn rfrjuj-yb,elm bp yb[ (cjjndtncnde.obq crhbgn ds nfr;t cvj;tnt yfqnb yf yfitv rjvgfrn-lbcrt).

Ðbc. 4.

Íjdsq crhbgn pr-read-dbi.pl ,eltn ytpyfxbntkmyj jnkbxfnmcz jn e;t cjplfyyjuj yfvb pr-list-dbi.pl.

Äfyysq kbcnbyu yf 98% gj[jlbn yf kbcnbyu 1, [jnz, bvttn ytrjnjhst ytpyfxbntkmyst jnkbxbz:

  • gjlrk.xtyf ,b,kbjntrf CGI lkz cxbnsdfybz gfhfvtnhf id (9) bp cnhjrb pfghjcf (yfghbvth, http://localhost/cgi-bin/pr-content-dbi.pl?id=1);
  • ghbvtyztncz dctuj jlby HTML-if,kjy (pr-content-tpl.htm);
  • pfghjc r ,fpt lfyys[ ljgjkyty eckjdysv SQL-jgthfnjhjv WHERE lkz ds,jhrb dct[ lfyys[, cjjndtncnde.ob[ jghtltktyyjve ghtcc-htkbpe gj bltynbabrfnjhe col_id;
  • bp ÁÄ nfr;t cxbnsdftncz gjkt col_body c ntrcnjv ds,hfyyjuj ghtcc-htkbpf.

Ñjplfybt yjdjuj ghtcc-htkbpf

Ðfcibhbv aeyrwbjyfkmyjcnm yfitq cbcntvs, lj,fdbd djpvj;yjcnm cjplfybz yjds[ ghtcc-htkbpjd, ,tp ytj,[jlbvjcnb ytgjchtlcndtyyjq hf,jns c ,fpjq lfyys[ lkz gjgjkytybz nf,kbws tbl_news_items yjdjq byajhvfwbtq.

Ènfr, yjdfz Perl-ghjuhfvvf (rjnjhfz, rfr b ghtlsleobt ldt, yf[jlbncz yf rjvgfrn-lbcrt) ,eltn jnkbxfnmcz jn ghtlsleob[ ght;lt dctuj ntv, xnj ghtlyfpyfxtyf yt lkz jnj,hf;tybz lfyys[, f lkz b[ lj,fdktybz d ÁÄ. Ñktljdfntkmyj, vs ljk;ys ytcrjkmrj bpvtybnm xfcnm, jndtxf.oe. pf dpfbvjltqcndbt c ÁÄ, ghbvtybd SQL-pfghjc INSERT b cjjndtncnde.obt tve jgthfnjhs vjlekz DBI.

Ñnhjrb 12-18 — 'nj ntkj jcyjdyjq ghjuhfvvs:

12. if ($cmd ne "add") {
13. &show_form;
14. } else {
15. $dbh = DBI->connect(‘dbi:mysql:db_website’, _
’root’,’’); 
16. &add_pr;
17. dbh->disconnect;
18. }

Çltcm vs ghjdthztv, gjcnegbkf kb rjvfylf yf lj,fdktybt ghtcc-htkbpf d ,fpe lfyys[. Êfr njkmrj jyf gjcnegbkf, ecnfyfdkbdftv cjtlbytybt c ÁÄ (15), dsgjkyztv gjlghjuhfvve app_pr() (16) b pfdthiftv cjtlbytybt (17). Åckb ;t rjvfyls yt ,skj, nj ghjcnj jnj,hf;ftv ajhve pfgjkytybz (13) lkz lfyys[ ghtcc-htkbpf — ghjwtlehf show_form().

Ñnhjrb 20-36 — 'nj ntkj ghjwtlehs lj,fdktybz ghtcc-htkbpf pr_add():

19. 
20. sub add_pr {
21. $title = $q->param("pr_title");
22. $author = $q->param("pr_author");
23. $body = $q->param("pr_body");
24. $body =~ s/rn/
/g;
25. 
26. my($sql) = "INSERT INTO tbl_news_items 
(col_title,col_author,col_body,col_date) 
 VALUES (’$title’,’$author’,’$body’,CURDATE())";
27. $rs = $dbh->do($sql); 
28. 
29. if ($@) { 
30. $rc = $dbh->rollback;
31. } else {
32. $rc = $dbh->commit;
33. }
34. 
35. print "Location: /cgi-bin/pr-list-dbi.plnn"; 
36. }

Ñgthdf j,hf,fnsdftv lfyyst ajhvs (22-25), cjcnfdkztv SQL-pfghjc (27) b dsgjkyztv tuj (27) c gjvjom. DBI-vtnjlf $dbh->do(). Ïjcrjkmre pltcm ghjbpdjlbncz ghjwtlehf dcnfdrb lfyys[ d ÁÄ, nj ye;yj gjpf,jnbnmcz j djpvj;yjcnb jnvtys jgthfwbb d ckexft c,jtd. Äkz 'njuj vs dcnfdbkb rjl jnvtys nhfypfrwbb b jnrfnf d ghtlsleott cjcnjzybt (30-34). Ïhb c,jt ghb dsgjkytybb $dbh->do() jnvtyztv cltkfyyst bpvtytybz (31). Åckb ;t c,jz yt ghjbpjikj, nj gjlndth;lftv cltkfyyst bpvtytybz (33). Äfktt gjckt dct[ ltqcndbq ghjcnj gtht[jlbv yf cnhfybwe cj cgbcrjv dct[ ghtcc-htkbpjd (36).

Ñnhjrb 37-55 — 'nj ntkj ghjwtlehs dsdjlf ajhvs lkz ddjlf byajhvfwbb j yjdjv ghtcc-htkbpt (bcgjkmpetncz HTML-if,kjy, bvz rjnjhjuj pflfyj d gthtvtyyjq $TPL_INSERT, pr-add-tpl.htm):

37. 
38. sub show_form {
39. print "Content-type:text/htmlnn";
40. 
41. open (L, "$TPL_INSERT");
42. while ($line=) {
43. chomp($line);
44. if ($line=~/@/) {
45. if ($line=~/@ADD@/) {
46. $toadd = "pr-add-dbi.pl";
47. $line =~ s/@ADD@/$toadd/;
48. } else { 
49. $tolist = "pr-list-dbi.pl";
50. $line =~ s/@LIST@/$tolist/;
51. }
52. }
53. print "$linen"; 
54. }
55. close(L);

Ïthtuheprf cbcntvs

Ïjcrjkmre ds hfphf,fnsdftnt lbyfvbxtcrbq Web-cfqn, nj cjjndtncndtyyj rjkbxtcndj byajhvfwbb yf ytv vj;tn hfcnb dtcmvf ,scnhj. Êhjvt njuj, gj vtht hjcnf gjgekzhyjcnb dfituj htcehcf hfcntn b xbckj tuj gjctnbntktq, xnj vj;tn ghbdtcnb r gthtuheprfv cthdthf, nj tcnm r gjyb;tyb. ghjbpdjlbntkmyjcnb cbcntvs. Ïthtl ntv rfr yfxfnm gjbcrb gentq edtkbxtybz vjoyjcnb fggfhfnys[ chtlcnd b gsnfnmcz yfqnb rjyabuehfwb. yjdjq cbcntvs, vj;yj gjghj,jdfnm ecnhfybnm jlye bp djpvj;ys[ ghbxby xhtpvthyjuj gjnht,ktybz jgthfnbdyjq gfvznb. Âbyjdybrjv vj;tn jrfpfnmcz njn ;t Perl. Ätkj d njv, xnj rf;lsq hfp ghb j,hfotybb r njve bkb byjve Perl-crhbgne, Web-cthdth pfuhe;ftn bynthghtnfnjh d jgthfnbdye. gfvznm (jy pfybvftn jn 500-1000 Ê,fqn yf ;tcnrjv lbcrt), f gjcktlybq hfp,bhftn ghjuhfvve jn yfxfkf lj rjywf d gjbcrf[ cbynfrcbxtcrb[ jib,jr. Ïjckt 'njuj jy dyjdm xbnftn tt, bybwbfkbpbhez gthtvtyyst b aeyrwbb, cxbnsdftn ddjlbvst lfyyst (gfhfvtnhs), j,hf,fnsdftn b djpdhfoftn htpekmnfns. Ïhtlcnfdkztnt, xnj ghjbc[jlbn, tckb jlyjdhtvtyyj ghtcc-htkbps [jnzn ghjcvjnhtnm cjnyb gjctnbntktq dfituj cfqnf?

Äkz ecrjhtybz 'njuj ghjwtccf cjplfys cgtwbfkmyst htitybz, ghtlcnfdkz.obt cj,jq ljgjkybntkmyst vjlekb lkz Web-cthdthf Apache — mod_fastcgi b mod_perl.

Ìjlekm FastCGI (mod_fastcgi) ghtlgjkfuftn ibhjrjt ghbvtytybt chtlcnd j,vtyf lfyysvb vt;le hf,jnf.obvb ghjwtccfvb (pflfxfvb) jgthfwbjyyjq cbcntvs. Â yfxfkt cdjtq hf,jns Web-cthdth frnbdbhetn CGI-ghjuhfvve b jcnfdkztn 'ne ghjuhfvve b ytcrjkmrj tt rjgbq hf,jnf.obvb d ajyjdjv ht;bvt. Ë.,st pfghjcs r ghjuhfvvt ,elen ghjcnj gthtlfys e;t frnbdysv rjgbzv, xnj bp,fdbn cthdth jn ljgjkybntkmyjq yfuheprb, cdzpfyyjq c gjdnjhyjq frnbdfwbtq ghjwtccf.

Ìjlekm mod_perl gjpdjkztn pfuhepbnm Perl d jgthfnbdye. gfvznm d nj ;t flhtcyjt ghjcnhfycndj, xnj b cfv Web-cthdth Apache, b jcnfdbnm Perl d gfvznb lj pfdthitybz hf,jns gjcktlytuj, yt gjpdjkzz pfuhe;fnm jxthtlye. rjgb. bynthghtnfnjhf ghb j,hfotybb r CGI-ghjuhfvvt. Ýnjn vjlekm ghbvtyztncz xfot, xtv FastCGI, gjcrjkmre yt nht,etn ybrfrb[ bpvtytybq d ghjuhfvvt.

Äjgjkybntkmyfz byajhvfwb

Apache

Apache gjpbwbjybhetncz yf hsyrt rfr vjoysq b ub,rbq Web-cthdth, cjdvtcnbvsq cj cnfylfhnjv HTTP/1.1. Ïhbvthyj 60% dct[ Web-cthdthjd d Èynthytnt aeyrwbjybhe.n gjl eghfdktybtv Apache. Ôeyrwbjyfkmyjcnm Apache vj;yj kturj edtkbxbnm, ecnfyjdbd cdj,jlyj hfcghjcnhfyztvst vjlekb hfcibhtybz. Èc[jlyst rjls 'njuj Web-cthdthf ljcnegys ghfrnbxtcrb lkz k.,jq gkfnajhvs. Åot jlyjq tuj gjktpyjq jcj,tyyjcnm. zdkztncz njn afrn, xnj Apache gjpdjkztn hf,jnfnm c vyj;tcndjv zpsrjd ghjuhfvvbhjdfybz, f nfr;t pfuhe;fnm ytrjnjhst bp yb[ d cdjt flhtcyjt ghjcnhfycndj, edtkbxbdfz nfrbv j,hfpjv crjhjcnm dpfbvjltqcndbz Èynthytn-gjkmpjdfntkz c cbcntvjq.

MySQL

MySQL — rhjcc-gkfnajhvtyyfz cbcntvf eghfdktybz htkzwbjyysvb ,fpfvb lfyys[ (RDBMS, Relational DataBase Management System) c bcgjkmpjdfybtv zpsrf pfghjcjd SQL (Structured Query Language). Ñyfxfkf MySQL, rfr b Apache b lf;t Perl, dsgecrfkfcm njkmrj d dthcbb lkz UNIX-cbcntv, gj'njve lj cb[ gjh cj[hfyztn bynthatqc rjvfylyjq cnhjrb. Îlyfrj pf gjcktlytt dhtvz dsgeotyj juhjvyjt rjkbxtcndj uhfabxtcrb[ vtytl;thjd, rjnjhst j,ktuxf.n pflfxb flvbybcnhbhjdfybz. Êhjvt njuj, d gjcnfdre MySQL lkz Linux b Windows d[jlbn vtytl;th, uhfabxtcrbq bynthatqc rjnjhjuj c[j; c ntv, xnj bcgjkmpetn jrjyysq vtytl;th KDE d j,jkjxrt X Window ÎÑ Linux.

Perl, bkb PERL

PERL (Practical Extraction and Report Language) — zpsr, rjnjhsq ,sk hfphf,jnfy ukfdysv j,hfpjv lkz cbynfrcbxtcrjq j,hf,jnrb ntrcnf. Îlyfrj d gjcktlybt ytcrjkmrj ktn ,kfujlfhz yjdsv b vjlekzv hfcibhtybz, jy ghbvtyztncz yt njkmrj rfr ntrcnjdsq j,hf,jnxbr, yj b rfr vjoysq bycnhevtyn hfphf,jnrb Èynthytn/Èynhfytn-ghbkj;tybq b Web-hj,jnjd. Èynthghtnfnjh Perl gjcnfdkztncz, rfr ghfdbkj, dvtcnt c bc[jlysvb rjlfvb, rjnjhst vjuen ,snm crjvgbkbhjdfys ghfrnbxtcrb yf k.,jq gkfnajhvt — DOS, OS/2, UNIX bkb Windows.

Ïjktpyst ccskrb

Apache:

http://www.apache.ru/
http://apache.lexa.ru/
http://www.apache.org/

MySQL:

http://www.mysql.com/
http://www.mysql.ru/

Perl:

http://www.perl.org/
http://www.perl.com/
http://perl.oreilly.com/
http://www.activestate.com/
ftp://ftp.activestate.com/
http://www.cpan.org/
http://www.perl.ru/

citforum.ru/internet/articles/dyn_web.shtml Ìb[fbk Ådljrbvjd Êjvgm.nthÏhtcc

3
Ñîçäàíèå ýêñêëþçèâíûõ ñàéòîâ, þçèáèëèòè àíàëèç è áåñïëàòíûé àíàëèç ïîä çàïðîñû îñíîâíûõ ïîèñêîâûõ ìàøèí
Êîíòàêòíàÿ èíôîðìàöèÿ :
òåë. +7(98I) 7608865

Íàïèñàòü ïèñüìî íà e-mail
icq 415547094  romverðåéòèíã íà mail.ru ñàéòà romverinbox.ru
© 1997 - 2024 romver.ru

Ïîëíàÿ êàðòà ñàéòà Display Pagerank