Php

26
PHP òàíèëöóóëãà PHP is a server-side, cross-platform, HTML embedded scripting language. РНР бол сэрвер талын, платформ хамааралгvй, HTML холилдсон, вэб хэл. Дээрх тодорхойлолтыг тайлбарлъя. 1. Сэрвер талын -- Бvх РНР кодууд сэрвер дээр байрлах бєгєєд сэрвер дээр єгєгдєл нь гvйцэтгэгдэнэ. 2. Платформ хамааралгvй -- РНР кодыг Unix, Windows NT, Macintosh болон бусад vйлдлийн системтэй сэрвер дээр ажиллуулж болно. 3. HTML холилдсон -- РНР кодыг HTML кодын дотор хольж болно. 4. Âэб хэл -- Вэб хэл нь програмын хэлээс ялгаатай. Вэбийн хэлээр бичсэн програм нь браузэрын туслалцаатайгаар ажилладаг бол програмын хэлээр бичсэн програм єєрєє биеэ дааж ажилладаг. 5. Тэгэхээр РНР бусад вэб хэлээс юугаараа давуутай вэ? Яагаад бид нар цагаа гарздаж энэ хэлийн тухай уншиж байна? Вэб барихад танд байгаа бусад сонголтуудаас дурдвал HTML, CGI, ASP, JSP ба CFML. 1. HTML -- Hyper Text Markup Language 2. CGI -- Common Gateway Interface 3. ASP -- Active Server Pages 4. JSP -- Java Server Pages 5. CFML -- Cold Fusion Markup Language Яагаад РНР? Яагаад гэхээр бусдаасаа хурдан, найдвартай ажилладаг, сурахад хялбар, олон vйлдэл гvйцэтгэдэг, ёрєнхийдєє "супер". Тэгэхээр бусад хэлний тухай тайлбарлахгvй бол хангалтгvй сонсогдож байна. CGI код бичихийн тулд вэбмастер Perl, Python эсвэл C зэрэг хэл мэддэг байх шаардлагатай. Дээрх хэлvvд бол вэб хэл биш, програмын хэл. Програмын хэл сурахад цаг, хєдєлмєр, мєнгє их гарздана. Ёрдєє л вэб програм бичихийн тулд бvтэн програмын хэл сурах бол илvv vйлдэл. Хэрвээ вэбээс програмчлал руу шилжих зорилготой байгаа нєхцєлд бол ондоо хэрэг.

description

php

Transcript of Php

Page 1: Php

PHP òàíèëöóóëãà

PHP is a server-side, cross-platform, HTML embedded scripting language.РНР бол сэрвер талын, платформ хамааралгvй, HTML холилдсон, вэб хэл.

Дээрх тодорхойлолтыг тайлбарлъя.1. Сэрвер талын -- Бvх РНР кодууд сэрвер дээр байрлах бєгєєд сэрвер

дээр єгєгдєл нь гvйцэтгэгдэнэ. 2. Платформ хамааралгvй -- РНР кодыг Unix, Windows NT, Macintosh

болон бусад vйлдлийн системтэй сэрвер дээр ажиллуулж болно.3. HTML холилдсон -- РНР кодыг HTML кодын дотор хольж болно.4. Âэб хэл -- Вэб хэл нь програмын хэлээс ялгаатай. Вэбийн хэлээр

бичсэн програм нь браузэрын туслалцаатайгаар ажилладаг бол програмын хэлээр бичсэн програм єєрєє биеэ дааж ажилладаг.

5. Тэгэхээр РНР бусад вэб хэлээс юугаараа давуутай вэ? Яагаад бид нар цагаа гарздаж энэ хэлийн тухай уншиж байна? Вэб барихад танд байгаа бусад сонголтуудаас дурдвал HTML, CGI, ASP, JSP ба CFML.

1. HTML -- Hyper Text Markup Language2. CGI -- Common Gateway Interface3. ASP -- Active Server Pages4. JSP -- Java Server Pages5. CFML -- Cold Fusion Markup Language

Яагаад РНР? Яагаад гэхээр бусдаасаа хурдан, найдвартай ажилладаг, сурахад хялбар, олон vйлдэл гvйцэтгэдэг, ёрєнхийдєє "супер". Тэгэхээр бусад хэлний тухай тайлбарлахгvй бол хангалтгvй сонсогдож байна.

CGI код бичихийн тулд вэбмастер Perl, Python эсвэл C зэрэг хэл мэддэг байх шаардлагатай. Дээрх хэлvvд бол вэб хэл биш, програмын хэл. Програмын хэл сурахад цаг, хєдєлмєр, мєнгє их гарздана. Ёрдєє л вэб програм бичихийн тулд бvтэн програмын хэл сурах бол илvv vйлдэл. Хэрвээ вэбээс програмчлал руу шилжих зорилготой байгаа нєхцєлд бол ондоо хэрэг.

HTML хэл бол вэбийг бvтээх хэл болохоос ямар нэг vйлдэл гvйцэтгэх чадваргvй.Иймээс зєвхєн STATIC хуудас хийхэд хэрэглэнэ.

ASP код бичихийн тулд вэбмастер Visual Basic програмын хэлийн VB Script хэл эзэмшсэн байх шаардлагатай.

JSP бичихэд JAVA програмын хэл мэддэг байх хэрэгтэй.

CFML Cold Fusion бол РНР -д дєхєж ирнэ. Сурахад хялбар, HTML холилдсон вэб хэл.

Page 2: Php

Тэгэхээр зарим хvн JavaScript-н талаар бодож байж магадгvй. JavaScript хэл бол сэрвер талын бус, хэрэглэгчийн талын вэб хэл. Иймээс бидэнд хэрэгтэй гэж бодохгvй байна. Яагаад гэхээр бид нар гол нь сэрвер талын вэб програм бичих талаар хойшдоо хэлэлцэх болно.

РНР -ын жинхэнэ ид шид нь датабэйстэй холбогдож дата буюу мэдээлэлтэй харьцах. Бусад сэрвер талын вэб хэлvvдээс олон тєрлийн датабэйстэй холбогдож чаддагаараа онцлог.

Доор хэдхэнийг дурдвал:

MySQLOracleAccessSQLPostgreSQLmSQLSyBASE...

Бусад жишээнээс дурдвал ASP хуудсууд Microsoft Access-тэй харьцдаг бa 2-уулангийх нь ард Microsoft байж байхад РНР бараг бvх тєрлийн датабэйс програмтай холбогдож чаддагаараа давуу.

Maш чухал: Энэхvv РНР вэб програмын хэлний танилцуулга хуудас нь РНР дєнгєж сурж эхэлж буй сонирхогчоор бvтээгдсэн бєгєєд чанарын шаардлага хангахгvй, буруу ташаа тайлбарласан тохиолдол гаргасан байхыг vгvйсгэхгvй. Иймээс та бvхэн эндээс мэдсэн сурсан зvйлээ мэргэжлийн программистуудаас асууж давхар лавшруулан мэдэж авах эсвэл тухайн програмыг бvтээгчдийн албан ёсны вэб хуудсаар зорчин давхар шалгаж байхыг анхааруулъя!

РНР хэрхэн ажилладагийг мэдэхээс урьдаар энгийн вэб хуудас хэрхэн ажилладгийг мэдэх нь чухал

Вэб хуудас нь HTML хэлээр бичигдсэн файлиуд байх ба сэрвер дээр хадгалагдаж байдаг бєгєєд сэрвер нь тухайн файлиудыг ямар нэгэн сэрвер хэрэглэгчийн эзэмшилд єгсєн фолдер дотор хадгална. Энэхvv фолдер бvр нь єєрийн гэсэн цорын ганц хаягтай байдаг. 2 адилхан нэртэй хаяг байж болдоггvй. Тэгэхээр сэрвер хэрэглэгч бvр ондоо вэб хаягтай байдаг. Компьютерууд хоорондоо холбогдохдоо тоог хаяг болгон ашигладаг. Энэхvv хаягийг IP гэдэг. Нэгэнт зєв IP хаягаар холбодсон нєхцєлд компьютерууд хоорондоо фолдер доторх файлуудаа ашиглах боломжийг бие биендээ олгодог. Тиймээс интернэтээс ямар нэг вэб хуудаст нэвтрэх гэдэг бол ямар нэг вэбсэрверийн фолдер доторх файлийг унших, харах, ашиглах зэрэг vйлдлvvд юм. Эндээс дvгнээд бид нар дараах байдлаар дvрсэлж болно.

Page 3: Php

Вэб сэрвер

------------>

Хэрэглэгч

HTML код

<-----------

URL

Tэгэхээр мэдээж вэбсэрверт жирийн хэрэглэгчийн компьютерээс файль хайх шаардлага байхгvй, тиймээс вэбсэрвер зєвхєн хvсэлт хvлээж авангуут гvйцэтгэх гол vvрэгтэй. Вэб хэрэглэгч ( сэрвер хэрэглэгч биш! ) ямар нэг фолдерт нэвтрэхдээ, єєрєєр хэлбэл вэб хуудас vзэхдээ эхлээд тухайн фолдерын хаягийг сэрвер луу явуулдаг. Тэгэнгvvт сэрвер єєрийн фолдеруудаа шалгаад хvссэн фолдер нь олдвол дотроос нь INDEX эсвэл DEFAULT гэсэн нэр бvхий файлийг шууд хэрэглэгч рvv илгээдэг. Хэрвээ ийм нэртэй файль тухайн фолдер дотор байхгvй бол ихэнх тохиолдолд холбоо шууд тасраад, хэрэглэгч юу ч хvлээж авахгvй. Цєєн тохиолдолд хэрэглэгч тухайн фолдер луу орж чадна. Энэ нь вэбмастерын гутамшигтай алдаа. Яагаад гэхээр энэ бол бvх хувцсаа олон хvний ємнє тайчсантай адил. Тэгэхээр хэрэглэгч яаж хvссэн фолдерын нэрийг олж авах вэ гэхээр хэрэглэгч vнэндээ бол DNS-ээр дамжуулж жинхэнэ хаягаа олж авдаг. DNS нь хэрэглэгчийн илгээсэн URL-г тоонд шилжvvлж хэрэглэгчийн компьютерт буцааж илгээдэг. Хэрэглэгчийн компьютер тоон хаягийг мэдэж авсан нєхцєлд єєрийн ISP рvv тухайн хаягийг илгээнэ. ISP нь тухайн фолдер байгаа вэбсэрвер луу хvсэлтийг дамжуулаад буцаж ирэх HTML кодыг хэрэглэгчийн компьютер луу илгээдэг. Эцсийн vйлдэлд хэрэглэгчийн браузэр хvлээж авсан HTML кодоо хєрвvvлж вэб хуудас бvтээгддэг. Жишээ болгоод www.jishee.com гэсэн вэб хуудас руу хэрхэн нэвтрэх vйлдлийн дэс дарааг vзье!1. Хэрэглэгч браузэрын Address цонхонд "www.jishee.com" гэж бичнэ.2. Энэ URL нь ISP рvv очно.3. ISP нь DNS сэрвер лvv дээрх URL-г илгээнэ.4. DNS сэрвер URL-г тоон хэлбэрт шилжvvлээд буцаагаад ISP илгээнэ.5. ISP тоон хэлбэрт шилжсэн хаягийг хэрэглэгчийн компьютер луу

илгээнэ.6. Õэрэглэгч компьютер тоон хаягийг ISP руу явуулна. 7. ISP тухайн тоон хаягийг харгалзах вэбсэрвер луу илгээнэ.8. Вэбсэрвер ISP-ээс хvлээж авсан хаягаар тухайн фолдерыг єєрийн

фолдерууд дотор хайна. 9. Хэрвээ вэбсэрвер тухайн фолдерыг олсон нєхцєлд дотроос нь INDEX

эсвэл DEFAULT нэртэй файлийг ISP руу илгээнэ.10. ISP хvлээж авсан файлиудаа хэрэглэгчийн компьютерт илгээнэ.

Page 4: Php

11. Хэрэглэгчийн браузэр хvлээж авсан HTML кодуудыг хєрвvvлж вэб хуудас болгоно.

12. Хэрэглэгч вэб хуудсан дээрээс ямар нэг link дарж бусад хуудас руу нэвтрэхийг оролдоно.

13. Нэгэнт холбоо тогтоогдсоны дараанаас эхлээд 9-дэх vйлдлээс хойших vйлдлvvд давтагдана.

DNS сэрвер

2. <--------

ISP

1. <-------

Хэрэглэгчийн браузэр

URL URL3. -------> 4. ------->

IP IP

Вэб сэрвер

6. <------- 5. <--------IP IP

7. --------> 8. -------->

index.html

index.html9. Хєрвvvлнэ. Дараагаас нь

эхлээд бvх vйлдэл давтагдана.

Дээрх vйлдлvvд бол жирийн HTML кодтой вэб хуудас хэрхэн ажиллах vйлдлvvд. Харин РНР кодууд ажиллахад вэб сэрвер дээр РНР кодыг захирах РНР сэрвер байх шаардлагатай.

Вэб сэрвер

2. <--------РНР

сэрвер

1. <------- Хэрэглэгчий

н браузэр URL URL

3. -------> 4. ------->РНР код HTML код

Дээрх жишээнээс харахад хэрэглэгчийн браузэр РНР код хvлээж авдаггvй нь илт байна. Учир нь РНР сэрвер бvх vйлдлийг гvйцэтгэж дуусаад HTML код хэлбэрт шилжvvлээд хэрэглэгч рvv илгээдэг. Иймээс РНР сорс код алдагдах боломжгvй бєгєєд хэрэглэгчид браузэрээс ондоо програм хэрэггvй. Ийм учраас вэб хэрэглэгч чухам анх ямар тєрлийн код байсныг ч мэддэггvй, ирж байгаа бvх код нь HTML болохоор. Хэтэрхий товчилж цаг зай хэмнэх гэсэн тул єєрсдєє энэ талаар нэмэлт судалгаа хийж vзээрэй.

PHP ба вэб сэрвэр суулгах

РНР ба вэб сэрвер, датабэйс сэрвэр суулгах бол дурын хэрэг. Заавал зайлшгvй vйлдэл биш. Хэрвээ та єєрєє РНР кодоо єєрийн компьютер дээр шалгах шаардлагатай бол энэ нь зайлшгvй. Хэрвээ танд интернэт холболт байдаг бол бичсэн РНР кодоо вэб сэрвер лvvгээ хуулаад л шалгаад байж болно л доо. Гэхдээ нэгэнт єєрийн сэрверийг ажиллуулчихаад шалгаад сууж байх нь хамгийн аятайхан билээ.

Page 5: Php

Тиймээс одоо хэрхэн вэб сэрвер, РНР сэрвер, MySQL сэрвер суулгахыг vзье.

Хамгийн эхэлж бид нар вэб сэрверээ сонгох шаардлагатай. Вэб сэрвер ажилласнаар єєрийн компьютер дээр ( vvнээс хойш локал машин гэж нэрлэнэ ) вэб хуудсуудыг ( HTML ) шалгах боломжтой болно. Апачиг бид вэб сэрверээр сонгож авна. Апачи бол Unix сэрверийн гол програм, найдвартай, хурдтай, хамгийн єргєн тархсан вэб сэрвер. Тэгэхээр доорх 6 vйлдлийг гvйцэтгэсэнээр бид сэрверээ локал машинд суулгана.1. Апачиг www.apache.org -оос хуулж ав. Энэ бол vнэгvй. Мєн РНР-г

www.php.net -ээс хуулж ав. Бас л vнэгvй.2. Хуулж авсан РНР setup файлаа хатуу диск руу задал (C:/PHP4). Энэ

vед WINZIP хэрэг болно. 3. Апачиг хуулж авсан setup файлаас ажиллуулж суулгаад, локал

машин дээрээ C:\www гэсэн фолдер нээ.4. C:/PHP4 фолдер доторх PHP.INI-DIST файлийг РНР.INI гэж нэрлээд

(rename) уг файлийг Notepad мэтийн тэкст програмаар нээгээд доорх хvснэгтэд харуулсан байдлаар єєрчил.

doc_root = "c:\www" ............extension_dir = "c:\php4"

5. C:/PHP4 фолдероос PHP.INI ба PHP4TS.DLL файлиyдийг C:/WINDOWS фолдер луу хуул (Copy and Paste, NOT Drag and Drop).

6. Одоо апачиг янзлахийн тулд эхлээд апачи суулгасан фолдероосоо httpd.conf файлийг ( httpd.conf.default биш ) Notepad-аар нээгээд #ServerName new.host.name гэсэн мєрийг олоод new.host.name гэдгийн оронд localhost гэж оруулаад хадгал.

#127.0.0.1 is the TCP/IP local

#Machine always knows itself b

#Local resting and development

## ServerName localhost

Дээрх байдлаар vзэгдэх болно. Дараа нь httpd.conf файлаа дахиж нээгээд

#

DOcumentRoot "C:/www"

Page 6: Php

#

<Directory "C:/www">

Дараа нь AddType application/x-tar.tgz мєрийг олоод доор нь дараах мєрvvдийг нэмж оруул.

ScriptAlias /php4/ "c:/php4/" AddType application/x-httpd-php .php AddType application/x-httpd-php .php3 AddType application/x-httpd-php .php4 AddType application/x-httpd-php .htm AddType application/x-httpd-php .html AddType application/x-httpd-php .phtml Action application/x-httpd-php "/php4/php.exe"

Хадгалаад хаа.7. Хэрвээ бvх алхамыг зєв дагасан бол одоо РНР, Апачи 2 локал машинд

суусан байгаа. Шалгахдаа браузэрын Address цонхонд http://localhost/ гэж бичээд ENTER гээ. C:/www фолдер дотор ямар нэг файль байгаа нєхцєлд харагдах ёстой. Yvнээс хойш бvтээсэн РНР хуудсаа C:/www фолдер дотор байрлуулж локал машин дээр ажиллагааг нь шалгаж болох боломжтой юм.

MySQL сэрвер суулгах1. Эхлээд www.mysql.com -оос MySQL Setup файль хуулж аваад локал

машинд суулга. 2. C:\mysql\bin фолдероос mysqld файлийг сонгож ажиллуул. Нэг MS-

DOS цонх гарж ирээд дороо алга болно. Энэ нь MySQL ажиллаж байна гэсэн vг.

Гэхдээ дээрх сэрверvvдийг суулгах хамгийн хялбар арга бол httptriad гэдэг програмыг windows машин дээр суулгах юм. Httptriad нь PHP, MySQL, Apache ба Perl-г хамтад нь суулгадаг учраас хамгийн амархан.

РНР кодыг хэрхэн vvсгэж, байгаа кодыг юугаар засварлаж ажиллагааг нь шалгах вэ?

Ямар ч хамаагvй тэкст програм байхад болно. Жишээ нь: Word, NotePad гэх мэт. Гэхдээ мєрєє дугаарладаг, ондоо тєрлийн кодыг єєр єєр єнгєєр бичдэг нилээд боловсронгуй тэкст програм бол бvvр зvгээр.

FTP програмыг бичсэн РНР кодоо сэрвер луу хуулахад хэрэглэнэ.

Мэдээж хэрэг HTML хэлний мэдлэг зайлшгvй хэрэгтэй. Дундаас дээд тvвшинд хvртэл эзэмшсэн байх шаардлагатай. Ажилладаг компьютер хэрэгтэй.

Page 7: Php

Интернэт хэрэг болж магадгvй хэрвээ єєрийн компьютерт APACHE вэб сэрвэр, МySQL ба РНР сэрвер суулгаагvй нєхцєлд.Хэрвээ жижиг хэмжээний РНР код шалгах бол дараах онлайн РНР хуудаст шалгаж болно. WINZIP -ээр энд тэндээс хуулж авсан РНР сорс кодоо задлана. Тэвчээр, шургуу хєдєлмєр хамгийн хэрэгтэй!

Энгийн РНР хуудас

Тэгэхээр дараах энгийн РНР хуудас бvтээсэн кодыг харъя.

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>{ Эхний РНР хуудас }</title><link rel="stylesheet" href="../../dw/dw.css" type="text/css"></head><body><?phpprint "Hello, World!";?></body></html>гэсэн байна.<?phpprint "Hello, World!";?>хэсгээс бусад нь жирийн HTML кодууд байна. Бvх РНР хуудас нь <?php аар эхэлж ?>-аар дуусна. <?php ба ?>-н хооронд РНР код оршино.

Бvх РНР команд нь цэгтэй таслалаар ( ; ) дуусна. Хэрвээ vvнийг мартвал РНР ажиллахгvй.

Дээрх жишээнээс харахад print "Hello, World!"; команд нь Hello, World! гэсэн єгvvлбэр дэлгэцэнд гарга гэсэн утгатай.print "Bye, bye!"; гэвэл Bye, bye! гэсэн vгс дэлгэцэнд гарна.

Энэ жишээ РНР хуудсыг vзнэ vv.

Одоо дээрх хуудасны сорс кодыг нь браузэрээс харахад

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-

Page 8: Php

1251"><title>{ Эхний РНР хуудас }</title><link rel="stylesheet" href="../../dw/dw.css" type="text/css"></head><body>Hello, World!</body></html>гэж харагдана. Нєгєє <?phpprint "Hello, World!";?>зэрэг кодууд харагдахгvй. Учир нь РНР сэрвэр зєвхєн HTML код браузэрт илгээдэг гэж дээр тайлбарласан.

Сэрвэр талын тухай

Сэрвер тал гэдэг бол РНР ба HTML код оршин байгаа вэб сэрверийн талыг хэлнэ. Вэб сэрвер нь єєрийн асар том агуулахад тоолж баршгvй олон фолдер нээж сэрвер хэрэглэгчдийн файлийг агуулдаг. Вэб сэрверийн зэргэлдээ туслах чанарын програмууд байдаг. Жишээ нь РНР сэрвер. РНР кодыг хэрэглэгч хvсээгvй vед сэрвер дангаараа HTML кодоо зохицуулдаг. Хэрэглэгч РНР хуудас захиалсан нєхцєлд РНР сэрвер ба вэб сэрвер хамтран хvсэлтийг гvйцэтгэнэ. Энэ vед вэб сэрверийн процессор ихээхэн хvч зарцуулдаг. Хэрвээ маш олон РНР хvсэлт зэрэг ирээд байвал вэб сэрвер нvд аних тохиолдол ( crash ) гардаг. Иймээс вэбмастер вэб прожектдоо РНР ажиллагааг тохируулж оруулах хэрэгтэй. Энэ нь юу гэсэн vг гэхээр вэб сэрверийн хvчийг гамнах.

Яаж РНР ажиллагааг тохируулах гэхээр зайлшгvй шалтгаангvйгээр бvх хуудсууддаа РНР єргєтгєл єгєхгvй байх. Жишээ нь INDEX файль бол .РНР єргєтгєлтэй байх шаардлага хэзээ ч байдаггvй, учир нь INDEX файль ямар ч нарийн vйлдэл гvйцэтгэдэггvй, жирийн танилцуулга маягын vvрэгтэй байдаг.Mєн форм, асуулт бєглєх хуудсууд РНР байх шаардлагагvй. Харин ACTION="form.php" гэх мэтээр РНР хуудсыг хэрэглэх бол илvv ухаалаг. ACTION=\"PHP_SELF\" гэх мэтээр хэрэглэхээс зайлсхийх хэрэгтэй.Тvvнээс ухаан жолоогvй бvх файлаа РНР болгож болохгvй, энэ нь vр ашиггvйгээр вэб сэрверийн хvчийг л бардаг.

Вэб сэрверийг гацаадаг бас нэг шалтгаан бол муу РНР код. Ийм кодууд вэб сэрверийг удаашруулах ба vр дvн нь гардаггvй. Иймээс анхнаасаа цэвэрхэн, ойлгомжтой РНР код бичиж сурахыг зєвлье.

Òàéëáàð

Page 9: Php

ISP -- Internet Service Provider ( Интернэтэд хэрэглэгчийг холбогч)DNS -- Domain Name Server ( Нэрийн хаяг)URL -- Universal Resourse Locator (Вэб хуудасны хаяг)PHP -- Hypertext Preprocessor (Personal Home Page)HTML -- Hyper Text Markup Language (Вэбийн vндсэн хэл)MySQL -- Database Program (Сайн датабэйс програм)SQL -- Structured Query Language (Database-ууд хэрэглэдэг хэл)Unix -- Operating System (Нэгэн тєрлийн vйлдлийн систем)Static web -- HTML хэлээр бичигдсэн вэб хуудасJavaScript language-- Client-Side (хэрэглэгчийн талын вэб хэл)Access -- Microsoft-ийн датабэйс програмIP -- Компьютерын интернэт дээрх тooн хаягАPACHE -- Вэб сэрвер програмWINZIP -- Файлийг интернэтээр хуулахад хялбаршуулдаг програм.INDEX -- Вэб сэрвэр тухайн фолдер дотроос илгээх хамгийн эхний файль.

Variables гэж юу вэ?

Variable ( хувьсагч ) бол програмчлалын нэгэн чухал ойлголт. Бараг бvх тєрлийн програмын хэлэнд хувьсагч байдаг гэхэд буруудахгvй. Тэгэхээр variable гэдэг бол тvр санах oйд ямар нэг утгыг ( value ) хадгалж, дэс дараатай тооцоолон бодох ажиллагаанд хэрэглэгдэгддэг. Ондоогоор тайлбарлавал variable ямар нэг мэдээллийг тvр зуур хэрэглэгдэх хvртэл нь хадгалдаг бєгєєд хэрэглэгдээд дууссаны дараа эсвэл ондоо мэдээлэл оруулсан нєхцєлд хуучин мэдээлэл нь сарниж алга болно, нэрнээс нь харахад ( хувьсагч ) байнга єєрчлєгдєж байдаг нь ил байна. Гэхдээ єєрєє єєрчлєгдєєд байдаг юм биш. Тухайн хэрэглэгчийн оруулсан мэдээлэл ( input ) утга нь ( value ) болдог тул сэтгэлээр унах хэрэггvй. Ёрєнхийдєє вэб хэрэглэгч хэрхэн РНР вэб хуудаст єгєгдєл оруулахаас л хувьсагчийн утга нь хамаардаг гэж дvгнэж болно. Variable-г сайн ойлгох нь РНР хэлд маш чухал.

Variable-ыг бас TВ, сэтгvvл, шар сонин зэрэг бараг бvх тєрлийн єєрчлєгдєж шинэчлэгдэж байдаг мэдээллийн эх vvсвэртэй зvйрлэж болно. Учир нь єнєєдрийн мэдээ маргааш дахиж явахгvй, магадгvй хэдэн цаг, минут, секундын дотор єєрчлєгдєж болно. Харин мэдээлэл яаж ч єєрчлєгдсєн, ТВ, сонин эд нар хэвээрээ л байж байна. Tvvн шиг хувьсагчийн утга нь єєрчлєгдєхєєс хувьсагчийн нэр нь єєрчлєгдєх албагvй. Хvнээр зvйрлvvлбэл долигнуур, олон нvvртэй, худалч, урвагч єєдгvй байдлаараа улс тєрчидтэй тун тєстэй.

Тэгэхээр variable яагаад хэрэгтэй вэ? Variable-ын утга нь бидэнд маш хэрэгтэй байдаг. Энэ утгыг датабэйсд хадгалж болно, монитор дээр гаргаж болно, эсвэл тооцоолон бодож хариу гаргахад хэрэглэж болно. Бvvр цаашилбал бид нар утгыг И-мэйлээр найздаа явуулж болно, вэб

Page 10: Php

хуудсанд оруулж болно. Variable-ын утгыг бид нар дата гэж vзсэн ч болно. Дата утга 2 угтаа нэг юм л даа. Мэдээлэл, дата ба утга 3 бvгд адилхан.

Дата = Утга = Мэдээлэл

Вэб хуудаст байгаа бvх юмыг дата гэж ойлгож болно. Вэб хуудас єєрєє бол variable юм. Вэбмастер update хийнэ гэдэг маань утгад ( дата, мэдээлэл ) засвар, єєрчлєлт, нэмэлт, хасалт хийх гэж бvдvvлгээр ойлгож болно.

Тэгэхээр дата, мэдээллийг вэб хуудаст оруулах 2 vндсэн арга байна. 1-рт вэбмастер гараар шивж оруулах, 2-рт вэб хэрэглэгчдийн мэдээллийг вэбийн мэдээллийн санд ( датабэйс ) оруулж тvvнээс вэбийн мэдээллийг бvрдvvлэх. 3-р арга гэж vгvй. Єєрєє vvсэж бий болдог дата гэж байхгvй.

Хэрвээ variable хаа нэгтээ хадгалагдаагvй нєхцєлд вэб хуудас єєрчлєгдєх агшинд vгvй болно. Тиймээс бидэнд датабэйс хэрэгтэй болдог.

РНР-д 3 ( +1 ) тєрлийн variable байдаг. Эдгээрийг дурдвал Numbers, Strings ба Arrays ( Objects гэж бас нэг байдаг гэхдээ энэ хуудасны тєвшнєєс дээгvvр тул оруулахгvй ) .

Variable синтакс.

Variable-г бичихдээ долларын тэмдэгээр ( $ ) эхлvvлээд нэрийг нь бичнэ. Нэр нь vсэг ( A-Z, a-z ) эсвэл доогуур зураасаар ( _ ) эхлээд тоо эсвэл vсэгнvvдийн холимогоор дуусна.

$ + vсэг эсвэл доогуур зураас + vсэг, тоо холилдсон

$House (зєв)$_Table (зєв)$chair (зєв)$3dogs (буруу, тоогоор эхэлсэн)$@home ( буруу, тусгай тэмдэгт болохгvй)

Хоёрдах чухал зvйл бол том жижиг vсгийн асуудал. $Chicken ба $chicken хоёр бол тусдаа хувьсагчид юм. Ялгаа нь том жижиг vсгийн ялихгvй зєрєє. Иймээс хувьсагчийн нэрийг бичихдээ энэ талаар санаж байх хэрэгтэй. Хоёр vгнээс vгнээс бvтсэн хувьсагчийг нэрлэхдээ доогуур зураасаар тусгаарлах нь хамгийн тохиромжтой арга. Жишээ нь: $Mongol_hun хувьсагчийн нэр нь $Mongolhun нэрээс илvv ойлгомжтой уул нь vр дvн нь яг адилхан боловч. Зарим хvн $Mh гэж нэрлэсэн ч болно. $Mongol_hun нь $mongol_hun-ээс ялгаатайг битгий

Page 11: Php

мартаарай.

РНР-ын бусад програмын хэлнээс ( уул нь вэб хэл, гэхдээ програмын хэлэнд их тєстэй тул програмын хэл гэсэн ч болно ) ондоо нэг зvйл нь хувьсагчийн тєрєлийг эхэнд заах ( declare variable type or intialize ) шаардлагагvй байдаг. РНР єгєгдлийг шууд ямар тєрєл болохыг заалгалгvйгээр мэддэг. Энэ нь програм бичихийг бага зэрэг хєнгєвчилсєн сайн талтай.

Numbers

Numbers бол тоон мэдээлэл бєгєєд дотроо integer ( бvхэл ) ба floating point ( бутархай ) гэж 2 хуваагдана.

Integer -- Бvхэл тооFloating Point -- Бутархай.Бvхэл тоо нь нэмэх ба хасах тоо байж болно гэхдээ энгийн ба аравтын бутархай байж болохгvй.23.5 мэтийн аравтын бутархай тоо нь floating point тєрєлд орно. Бас нэг анхаарах юм бол энгийн бутархай тоог аравтын бутархайд шилжvvлж floating point болгох ёстой. Жишээ нь: 1/2 гэснийг 0.5 болгох хэрэгтэй. 40 1/5 = 40.2 гэх мэт.

2 ( зєв Integer )45 ( зєв Integer )-78 ( зєв Integer )4.5 ( зєв floating point )-45.87 ( зєв floating point )2.05 ( зєв floating point )23 5/8 ( буруу, энгийн бутархайг аравтынх болгоогvй)345d ( буруу, vсэг орсон)35.56.7 ( буруу, 2 цэг орсон)

Тэгэхээр тоог хэрхэн variable-д хэрэглэх гэхээр variable-ын нэрийн араас тэнцvvгийн тэмдгээр ( = ) холбоно.

$Year = 2001$Cost = 4000

Анхаарах юм бол тэнцvvгийн тэмдгээр ( = ) variable-г утгатай харгалзуулж байгаагаас ТЭНЦYY гэж заагаагvй юм. Дээрх жишээнээс харахад Year гэдэг нэртэй variable-г 2001 гэсэн утганд харгалзуулсан болохоос Year гэдэг variable нь 2001 гэсэн тоо биш юм. Харгалзуулах, тэнцvvлэх 2 тєстэй гэхдээ адил биш.

Strings

String бол тоо ба vсгийн холимогоос ( тоо, vсэг, тусгай тэмдэгт, зай ) бvтсэн variable юм. String variable-ын утга нь нэг ( ' ) юмуу хоёр ( " ) хашилтын тэмдгийн хооронд байдгаараа тоон variable-аас ялгарна.

Page 12: Php

Хашилтын тэмдэгийн хооронд л байгаа бvх утга string болж хувирдаг. Тоо ч гэсэн, бvгд.

"Hello, World!" "23 6/9""34.78.92""342""What's up""Cost""How is it going? ( буруу, хашилтын тэмдгийн сvvлийх нь байхгvй )' Who is this ( буруу, хашилтын тэмдгийн сvvлийх нь байхгvй )

String variable-г vг, єгvvлбэр ба тоо агуулсан vг зэрэг утганд харгалзуулахад илvv тохиромжтой байдаг.

Arrays

Arrays бол олон утгыг ( value ) нэг хувьсагчид ( variable ) харгалзуулсан євєрмєц variable юм. Arrays нь Strings ба Numbers 2-г хоёуланг нь агуулж болдог. Тvvгээр ч барахгvй Arrays нь ондоо Arrays-г утга болгож чадна. Тийм учраас Arrays-д асар их хэмжээний мэдээлэл ( утга ) багтааж болдгоороо, String ба Numbers variable-аас ялгарна.Arrays-н хамгийн гол ашиг нь хоорондоо тєстэй хувьсагчуудын утгыг ганцхан хувьсагчид харгалзуулснаар цаг, зай хэмнэхээс гадна кодын алдаа гарах нь багасна.Жишээ нь та єєрийн СД-нvvдээ РНР хуудаст хийхээр шийдлээ гэж бодьё. Жирийн HTML дээр яахав та ингэх байх.

.... <OL><LI>CD1<LI>CD2<LI>CD3....<LI>CD?</OL>

Ингээд хийчэх амархан. Гэтэл энэ урт жагсаалтад байгаа СДнvvдийг хэрхэн А-аас Я хvртэл байрлуулах вэ. Бас л нэг тусдаа HTML хуудас бvтээх шаардлага гарах биз. Бvvр хамтлагын нэрээр нь, хугацаагаар нь, зарагдсан тоогоор нь, уран бvтээлчдийх нь нэрээр нь, СД-ны нэрээр нь, дууны тєрлєєр нь, улсых нь нэрээр гэх мэтээр олон тєрлийн аргаар жагсаах бол тус бvрд нь HTML хуудас бvтээх шаардлага гарах байсан хэрвээ РНР мэтийн вэб хэлvvд байгаагvйсэн бол. Гэхдээ ямар нэг урт жагсаалт бvхий variable хийхдээ нєгєє муу String Numbers 2-oo бас л ашиглах нь тийм ч сайн арга биш. Энэ нь СД бvрд нэг variable vvсгэх шаардлагатай гэсэн vг.$CD1 = "CD1";$CD2 = "CD2";$CD3 = "CD3";

Page 13: Php

$CD4 = "CD4";....$CD? = "CD?";гэх мэтээр. Энэ нь маш их цаг, хvч хєдєлмєр гарздана.Тэгвэл эдгээрийн тєстэй тал болох variable нэрийг нь ашиглаад нэг Array болгочоод $My_CDs гэсэн ойлгомжтой нэрээр нэрлэвэл байдал эрс хєнгєрнє. $My_CDs = array("CD1" => "CD1", "CD2" => "CD2", "CD3" => "CD4", ..... "CD?" => "CD?", );Yр дvнд нь бvх СД гээ ганцхан хувьсагчид оруулчихаж болно. Дотор нь хайж, хvссэнээрээ жагсаах боломжтой болно. Маш хэрэгтэй хэрвээ их хэмжээний мэдээлэл агуулсан хувьсагч бvтээж байгаа нєхцєлд.

Тэгэхээр Array гэдгийг тодорхой авж vзье. Array нь бусад хувьсагчийн адил нэртэй байна. Гэхдээ онцлог нь олон утга авдаг тул утга бvрийг ялгах vvднээс утга бvрд тvлхvvр vг эсвэл дугаар єгч хийдэг. Энэ дугаар эсвэл тvлхvvр vгээр нь утгыг дуудаж идэвхжvvлнэ ( ажиллуулна ). Тvлхvvр vг буюу дугаар нь тоо эсвэл vг, vг тооны холимог ч байсан болно. Хамгийн гол нь ойлгоход дєхємтэй, богинохон байвал дээр. Энэ тvлхvvр vг буюу дугаар тоо нь [ ба ] ( square brackets ) тэмдгийн хооронд байрладаг.

Ондоо нэг Array vvсгэх арга бол ижил хувьсагчийн нэр ба тvлхvvр vг хэрэглэх юм.

$List[CD] = "CD1"$List[CD2] = "CD2"$List[CD3] = "CD3"$List[CD4] = "CD4"......$List[CD?] = "CD?"

гэх мэтээр. Гэхдээ ингэж хийхэд тоогоор дугаарладаг тул цаг vрж болно. Эсвэл бvvр ингэсэн ч болно.$List[ ] = "CD1"$List[ ] = "CD2"$List[ ] = "CD3"$List[ ] = "CD4"..........$List[ ] = "CD?"

( [ ) ба ( ] ) тэмдгийн хооронд юу ч битгий бич. Yр дvн нь яг адилхан. Хэрвээ жагсаах хэрэгтэй бол яг дээрээсээ эхлэдэг. Нэг анхаарах юм бол РНР-д жагсаалт гаргахдаа 0-ээс эхэлж тоолдог. 0, 1, 2, 3 4 гэх мэтээр. Тэгэхээр $List[ ] = "CD1" ба $List[0] = "CD1" хоёр угтаа адил. $List[5] =

Page 14: Php

"CD5" гэвэл $List[ ] = "CD5" гэсэн утгыг дарж бичдэг. Яг тvлхvvр vгийг нь зааж єгвєл байгаа мэдээллийг нь хvчээр дарж бичдэг гэсэн санаа юм.

РНР4 дээр шинээр орж ирсэн MERGE function-р 2 Arrays-г нийлvvлж болно.

Эхлээд танд $My_CDs ба $My_CDs2 гэсэн 2 ондоо тєрлийн arrays хувьсагч байлаа гэж бодъё. Гэтэл эдгээрийг "Миний бvх СД" гэсэн ганцхан хувьсагчид оруулмаар байвал бvхнийг шинээр эхлэх хэрэггvй, байгаа хувьсагчаа нийлvvлэхэд л болоо.Код нь: $Variable_name = array_merge( $Variable_name1, $Variable_name2, $Variable_name3 ..... $Variable_name?);$My_all_CDs = array_merge ( $My_CDs, $My_CDs2);Arrays бол маш єргєн хэрэглэгдэх тєрєл бєгєєд String Numbers хоёроос илvv мэдээлэлтэй харьцаж чадна.

Concatenation

Concatenation бол 2 String-г хооронд нь холбоход хэрэглэдэг команд. Хэрэглэхдээ $NewString = $A_String . $B_String гэх мэтээр. Жишээн дээр авж vзье.

Нэр: Овог:

Энэ хэрхэн ажиллав гэхээр $Ner хувьсагчид оруулсан мэдээлэл ба $Ovog хувьсагчид оруулсан мэдээллvvдийг $Full_Name гэсэн ганц хувьсагч болгоод print командаар дэлгэцэнд гаргасан.<?php$Full_name = $Ner . " " . $Ovog;print "Taны нэр: $Full_name<br\n>";?> гээд л болоо. Зарим хvн тэр . " " . хаанаас гараад ирэв гэж бодож байгаа бол 2 vгнийхээ дунд зай авахын тулд хоосон зай оруулснаас юм. Єєрєєр хэлбэл дээрх кодон дээр 3 юмыг холбосон байна ( Нэр, зай, Овог).

Энгийн тоо

Жишээн дээр авж vзье. Доорх 2 цонхонд дурын тоог оруулаад тэнцvvгийн тэмдгийг дар.

+

Дээрх жишээг хийсэн сорс код нь дараах байдалтай байна.

Page 15: Php

...... ACTION="2.php"><INPUT TYPE="text" NAME="ehnii" SIZE="1" MAXLENGTH="2">&nbsp;&nbsp;+&nbsp;&nbsp;<INPUT TYPE="text" NAME="daraa" SIZE="1" MAXLENGTH="2"> ......гэж HTML хуудсаа хийчээд <?$Result = $ehnii + $daraa;print "Хариу: $Result<br\n>";?>гэж хариугаа РНР хуудсаар гаргаж авна. 2 vйлдэл хийгдсэн. Эхнийх нь 2 тоог нэмэх $Result = $ehnii + $daraa; сvvлчийх нь дэлгэцэн дээр гаргах print "Хариу: $Result<br\n>";

HTML forms

<FORM> таг вэб хэлд орж ирснээр вэбэд хувьсгал гарсан гэхэд хилсдэхгvй. <FORM> тагийн хvчээр вэб хуудас хэрэглэгчээс мэдээлэл хvлээн авж боловсруулдаг болсон юм. Харамсалтай нь HTML хэл єєрєє нэгэнт ороод ирсэн мэдээллийг боловсруулж чадахгvй. Тиймээс вэбмастерууд олон жил CGI-г ( эсвэл тєстэй ) хэрэглэсээр ирсэн. Гэтэл бидний РНР, CGI-аас дутахгvй эдгээр бvх vйлдлийг гvйцэтгэдэг. РНР, <FORM> таг хоёр хамтарсан нєхцєлд вэб хуудас нь: дата хvлээн авж датабэйсд хадгалахдатаг датабэйсээс татаж vзvvлэхдатаг єєрчлєх ......... гэх мэт олон зvйл чадна. Зочдын дэвтэр, Форум, И-мэйл, Асуулт форм, элдэв дайнамик санал асуулгын пол зэрэг нь <FORM> ашигладаг. Єєрєєр хэлбэл вэб хэрэглэгчээс дата хvлээн авах бvх ажиллагаанд <FORM> оролцдог.

Энд <FORM> хэрхэн бvтээх талаар оруулах нь зохимжгvй ( мэдээжийн юм нуршиж байгаад зарим РНР кодчид уучил ) ч гэсэн товчхон харъя.

Нэр Тайлбар Жишээ<FORM> Форм эхлэл

ACTIONФормд оруулсан датаг боловсруулах кодын байршил, хаяг

TEXT AREAОлон мєр бvхий тэкст дата цонх

TEXT Нэг мєр бvхий дата цонх

CHECK BOXТийм эсвэл vгvй гэсэн хариулт авах

Do you know HTML?

Page 16: Php

RADIOОлон сонголтоос нэгийг сонгох PHP CGI

SELECTМэню хэлбэртэй жагсаалтаас сонгох

HIDDEN Нууцлагдсан дата

PASSWORD Нууц vг оруулах цонх Enter your Password!

SUBMITФормд оруулсан датаг боловсруулах код руу шилжvvлэгч

RESETБvх формын хариултыг цуцлах

<INPUT TYPE= гээд л дээрх форм тєрлvvдийн нэгийг нь оруулдаг. Жишээ нь: <INPUT TYPE=TEXT NAME=нэр VALUE=утга>

Харин хамгийн гол анхаарах юм бол АCTION= гээд ямар нэг РНР хуудас руу зааж єгєх. Ингэснээр HTML хуудаст хэрэглэгчийн оруулсан мэдээлэл нь РНР хуудас руу очиж цаашдын vйлдэл нь гvйцэтгэгдэнэ. Жишээ нь:

.......<FORM ACTION="form.php" METHOD=post>Нэр: <INPUT TYPE=TEXT NAME=name ><BR>И-мэйл: <INPUT TYPE=TEXT NAME=email><BR><INPUT TYPE=SUBMIT NAME=SUBMIT></FORM>

гэсэн код нь дараах байдалтай харагдана.

Нэр:

И-мэйл:

Дээрх жишээн дээрээс харахад датаг шууд дэлгэц рvv гаргаж байна. Хамгийн гол зорилго нь РНР хуудас руу хамаг мэдээллийг шилжvvлдэг гэдгийг л vзvvлэхэд юм. Бидэнд FORM-той зууралдах хэрэг огт байхгvй, хамгийн чухал юм бол РНР ажиллагаандаа анхаарах.

HTML мэдэхгvй бол иймэрхvv энгийн юман дээр ( форм яаж хийх ) л сууна, тиймээс HTML мэдлэгээ нэмэгдvvлэх хэрэгтэй

Get Post

Page 17: Php

Method -ын араас Get ба Post гэсэн 2 сонголтыг ихэвчлэн хэрэглэдэг. Бусдыг нь дурдвал head, put, link, unlink, options, delete, trace ба connect гэхдээ эдгээрийг єргєн хэрэглэдэггvй бєгєєд энд хэлэлцэхгvй.GET -- Браузэрт хувьсагчийн нэр ба утгыг оруулаад URL-н араас бичээд явуулдаг. Жишээ нь: <FORM ACTION=form.php METHOD=get>гэсэн нєхцєлд .....form.php?name=test&[email protected] гэх мэтээр. Ийм учраас ихэнх хvмvvс GET биш POST хэрэглэдэг. POST хэрэглэхэд оруулсан мэдээлэл URL-н араас бичигддэггvй, иймээс хєндлєнгийн хvн ямар мэдээлэл браузэрээр дамжиж байгааг харж чадахгvй. Тvvнээс биш vр дvнд нь єєр ялгаа GET, POST хоёрт байхгvй. Гэхдээ GET хэрэглэсэн хуудсуудыг Bookmark хийхэд зvгээр байхад POST хэрэглэсэн хуудас болохгvй байж болно. Иймээс ихэнх SEARCH ENGINE-тэй хуудсууд GET хэрэглэдэг.

Гэхдээ POST хэрэглэснээр бvрэн хамгаалалттай боллоо гэсэн vг биш юм. Энэ нь зєвхєн илгээсэн мэдээлэл браузэрийн URL дээр л харагдахгvй болохоос биш замаас нь хакерууд хулгайлахад саад болж чадахгvйг санах хэрэгтэй. POST ба GET хоёрын хооронд дээрхээс ондоо ялгаа vгvй.

Process data

Формоос орж ирсэн мэдээлэл РНР хуудаст ирэхэд РНР хэрхэн програмчлагдсанаас шалтгаалж ондоо vйлдлvvд хийгдэнэ. Дурдвал:

Дэлгэц рvv гаргахДатабэйсд хадгалахЖижиг тэкст файльд хадгалах (датабэйс хэрэглэхгvй)Хадгалсныхаа дараа дэлгэц рvv гаргахИ-мэйл явуулахИ-Худалдаа хийхЗахиалга єгєхФайль хуулахБvртгvvлэхФайльд засвар хийхШинээр файль vvсгэхФайль устгахЗураг зурахДатабэйсээс мэдээлэл татах...................мэтийн 700 vйлдэл РНР чадна. Эдгээрээс вэбмастерууд хэдхэнийг л хэрэглэдэг.Хэрвээ энэ талаар нарийн мэдмээр байвал РНР MANUAL уншаарай.

Control Structures

Page 18: Php

Variable ба бусад РНР-н vндсэн мэдлэгтэй танилцсаны дараа жинхэнэ програмын vндсэн мэдлэгvvдийн нэг болох Conditional Structures-н тухай танилцья. Conditional Structures-ын тусламжтайгаар програмчин хэсэг бvлэг кодыг нєхцєл байдлаас хамаарч ажиллах, эсвэл ажиллахгvй байх тийм код бичиж болно. Ондоо vгээр хэлбэл хэрвээ ямар нэг нєхцєл бvрдвэл ямар нэг vйлдэл хийгдэнэ, хэрвээ бvрдэхгvй бол огт єєр vйлдэл хийгдэнэ эсвэл юу ч болохгvй гэсэн энгийн логик бvтэцтэй. Conditional Structures бол ямар ч програмын хэлийн vндсэн ойлголт гэж дээр хэлсэн, тиймээс РНР-ээс бусад хэл vзэж байсан хvмvvс аль хэзээний мэдэж байгаа гэж найдаж байна.

Бас нэг жижигхэн юм гэвэл TRUE, FALSE хоёр. TRUE нь vнэн эсвэл нєхцєл биелэгдсэн, FALSE нь худлаа буюу нєхцєл биелэгдээгvй гэсэн утгатай.

Бvvр жижигхэн юм гэвэл 1, 0 хоёр. 1 нь vнэн эсвэл нєхцєл биелэгдсэн, 0 нь худлаа буюу нєхцєл биелэгдээгvй гэсэн утгуудтай. Компьютерын хэл нь 0 ба 1 гэсэн хоёрхон тэмдэгтээс бvтдэгийг бvгд мэднэ.

Conditional Structures-г хэрэглэх хамгийн наад захын жишээ гэвэл хэрэглэгч форм дах асуултыг бєглєсєн, эсвэл буруу хариулт оруулсан зэргийг шалгах мэтийн жирийн vйлдлvvд байж болно.

IF if (condition) {statement;}

Энэ юу гэсэн код вэ гэхээр хэрвээ condition vнэн ( TRUE ) бол statement биелэгдэнэ буюу гvйцэтгэгдэнэ. Хэрвээ condition худлаа ( FALSE ) бол statement биелэгдэхгvй, РНР шууд дараачийн код руу шилжэнэ.

condition нь ( ба ) тэмдгийн ( хаалт ) хооронд байрлах ба statement нь { ба } тэмдгийн ( нум шиг хаалт ) хооронд бичигдэнэ.

Statement-н ард цэгтэй таслалаа ( ; ) мартаж болохгvй!

Нэг жишээ бодьё. Танд 20 ногоон байлаа гэе. Дэлгvvрт 25 ногооны хоол байсан нєхцєлд та хоол авж чадахгvй. Yvнийг Conditional Structures-р бичвэл:

......$food = buuz;if ($Money >= 25) {$Мoney = $Money - 25;sell $food;print "Худалдаа хийсэнд баярлалаа!";

Page 19: Php

}......Эхлээд бид нар хоолны нэрийг бууз гэлээ. Дараа нь таны мєнгийг хэд гэдгийг шалгана. Хэрвээ 25-тай тэнцvv эсвэл их нєхцєлд таны данснаас 25 ногоон суутгаад, бууз єгєєд "Худалдаа хийсэнд баярлалаа!" гэсэн мєр дэлгэцэнд гарна. Хэрвээ таны мєнгє 24.99 эсвэл тvvнээс доош байсан нєхцєлд та хоолгvй!

Маш энгийн бєгєєд жинхэнэ амьдрал дээрээс єчнєєн жишээ гарган бодож болно.

Condition -- нєхцєл, хэрвээ ийм ( тийм ) бол,Statement -- vйлдэл, гvйцэтгэл.

ELSE

ELSE бол control structure-д бага зэргийн нэмэгдэл боломж олгоно. Урьд нь ямар нэг нєхцєл биелэгдэхгvй бол РНР дараачийн код руу шилждэг байсан бол ELSE байхад єєр нэг vйлдэл гvйцэтгэдэх боломжтой, гэхдээ эхнийх биш.

Condition -- нєхцєлStatement -- vйлдэлELSE -- ондоо vйлдэл рvv шилжvvлэгч

if (condition) {statement(1);} else {statement(2);} Энэ юу гэсэн код вэ гэхээр хэрвээ condition vнэн бол statement(1) биелэгдэнэ буюу гvйцэтгэгдэнэ. Хэрвээ condition худлаа бол statement(1) биелэгдэхгvй, харин statement(2) биелэгдэнэ.

Энэ тєрлийн control structure нь маш тvгээмэл бєгєєд энгийн. Тvрvvчийн хоолний жишээгээ дахин vзье.

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>{ Худалдаа РНР хуудас }</title><link rel="stylesheet" href="../../dw/dw.css" type="text/css"></head><body>

Page 20: Php

<?$food = buuz;if ($money >= 25) {$money = $money - 25;print "Худалдаа хийсэнд баярлалаа!";print "<p>";print "Yлдэгдэл:";print $money;} else {print "Уучлаарай, таны хvсэлтийг биелvvлэх боломжгvй!";}?></body></html>

тvрvvчийн кодноос юугаараа давуу гэхээр хэрвээ худалдан авагчийн мєнгє 25 ногоон хvрэхгvй нєхцєлд "Уучлаарай, таны хvсэлтийг биелvvлэх боломжгvй!" гэсэн бичлэг дэлгэцэнд гарна. Yvнээс ондоо vйлдлvvд гvйцэтгэж мэдээж болно. Доорх цонхонд 25-аас их эсвэл бага тоо оруулж дээрх кодын ажиллагааг шалгана уу.

Дээрх жишээн дээрээс бvх юм маш энгийн гэдэг нь ойлгомжтой байна. Ёрдєє эхлээд нєхцєл тулгана, хэрвээ шаардлагатай зvйлс байвал vйлдэл хийгдэнэ, хэрвээ байхгvй бол ондоо vйлдэл хийгдэнэ. Ингээд л болоо.

ELSE IF

if ба else хоёрын дараагийн control structure ойлголт бол else if буюу elseif юм.

if (condition(1)) {statement(1);} elseif (condition(2)) {statement(2);} else { statement(3);}

Энэ юу гэсэн код вэ гэхээр хэрвээ condition 1 vнэн бол statement 1 биелэгдэнэ буюу гvйцэтгэгдэнэ. Хэрвээ condition 1 худлаа бол statement 1 биелэгдэхгvй гэхдээ statement 2 биелэгдэхээс ємнє condition 2-г бас шалгана. Хэрвээ condition 2 vнэн бол Statement 2 биелэгдэнэ. Хэрвээ condition 2 худлаа бол statement 3 шууд биелэгдэнэ.

Page 21: Php

statement гэдэг маань хэдэн ч statement агуулж болно гэдгийг бvv мартаарай.

Дээрх жишээ болгосон цонхон дотор эхний удаа 25-аас дээш тоо, хоёрдох удаад 25-аас доош тоо, гуравдах удаад нь ямар ч тоо оруулахгvй шалгаж vзнэ vv.

Elseif -г хэрэглэснээр else -ээс илvv vйлдэл гvйцэтгэх боломжтой болдог. Учир нь 2 нєхцєл 3 бvлэг vйлдэл агуулдаг.

Бид нар урьдын хоолны жишээн дээрээ юм нэмж дахин сайжруулж vзэж байгаа нь нэгэнт ойлгосон зvйл дээр тулгуурлаж цаашаа ахихын тулд юм.

Та магадгvй анзаарсан биз. Хэрвээ та дээрх цонхонд ямар ч тоо оруулаагvй нєхцєлд "Please enter a number!" гэсэн анхааруулга гарж ирнэ. Тvрvvчийх дээр нь энэ байгаагvй учир нь бидэнд ганцхан нєхцєл хоёрхон vйлдэл байсан. elseif -г хэрэглэснээр бид хэрэглэгчийн vйлдэлд илvv бодитой хяналт тавих боломжтой болж байгаа юм.