SlideShare ist ein Scribd-Unternehmen logo
1 von 221
Downloaden Sie, um offline zu lesen
Chapter 1
Configuring Your Installation
Introduction
	 Great website ေတြကို creat လုပ္ေပးႏိုင္တဲ႔ technologies ေတြက အမ်ားႀကီးရွိပါတယ္။
အဲဒိထဲကမွ သင္ဟာ Apache/MySQL/PHP (တစ္ခါတစ္ရံ AMP လုိ႔သံုးႏံႈးပါတယ္) ကို ေရြးခ်ယ္ၿ
ပီးေလ႔လာၾကမွာျဖစ္ပါတယ္။ သင္႔အေနနဲ႔ အရင္ကတည္းက မေလ႔လာဖူးတာျဖစ္ျဖစ္ နည္းနည္းပ
ါးပါးေလ႔လာဖူးရင္ျဖစ္ျဖစ္ ဒီစာအုပ္ကို ဖတ္ရႈႏိုင္ပါတယ္။ Apache, MySQL, PHP ဆုိတဲ႔ ၃ ခုလံုးဟာ
တစ္ပိုင္းျခင္းစီျဖစ္ျဖစ္ သံုးခုတြဲျဖစ္ျဖစ္ ေတာ္ေတာ္ေလးကို complex ျဖစ္ပါတယ္။ ယခုစာအုပ္ထဲမွာ အဲဒိ
၃ ခုလံုးနဲ႔သက္ဆုိင္တဲ႔ အေၾကာင္းအရာအားလံုးရဲ႕ details ကို ေဖာ္ျပႏိုင္ဖို႔ဆုိတာ ေတာ္ေတာ္ေလးကို
မလြယ္ကူပါဘူး။ မျဖစ္ႏိုင္ပါဘူး။ ဒီစာအုပ္ရဲ႕ အဓိက ရည္ရြယ္ခ်က္က ခုနက ေျပာခဲ႔တဲ႔ AMP
တစ္ခုျခင္းစီကို အေျခခံကေန နားလည္လြယ္ေအာင္ ရည္ရြယ္ၿပီးေရးထားတာပါ။ တစ္ခ်ဳိ႕ေနရာေတြမွာ
coding အားလံုးကို အေသးစိတ္လိုက္မရွင္းထားတာက ေရွ႕သင္ခန္းစာမွာ ရွင္းထားခဲ႔ၿပီးရင္ ေနာက္သင္
ခန္းစာမွာထပ္မရွင္းေတာ႔ပါဘူး။ အဓိက ရည္ရြယ္ခ်က္ကို focus လုပ္ေနတာကေန ေသြဖီသြားမွာစိုးလို႔ပါ။
	 ေနာက္တစ္ခုက ဒီစာအုပ္ကို ဖတ္မယ္ဆုိရင္ စာဖတ္သူဟာ HTML, CSS ကို နားလည္ ထားသူ
သို႔မဟုတ္ တီးမိေခါက္မိရွိထားသူျဖစ္ဖုိ႔လိုပါတယ္။ HTML နဲ႔ CSS နဲ႔ပါတ္သတ္တာေတြကို လံုး၀
ထည့္မရွင္းထားပါဘူး။ တစ္ျခား ေနာက္ထပ္ Program တစ္ခုခုကို လည္း သင္ မသိထားရင္ ရပါတယ္။
သိထားတဲ႔သူေတြကေတာ႔ programming concept ရတာေပါ႔။ ဆိုလိုတာကေတာ႔ APACHE/MySQL/
PHP newbie ေတြအတြက္ ရည္ရြယ္ပါတယ္။ တကယ္လို႔မ်ား ကၽြန္ေတာ္ intermediate level အတြက္
စာအုပ္ ထုတ္ျဖစ္ခဲ႔မယ္ဆုိရင္ အဲဒိစာအုပ္မွာ ေအာက္ပါအခန္းမ်ား ပါ၀င္လာမွာျဖစ္ပါတယ္ -
	 1. Image upload
	 2. Create thumbnails
	 3. Handling and avoiding errors
	 4. Validating user input
	 အခု စာအုပ္မွာ အဓိက ပါတာေတြကေတာ႔ PHP ကို စတင္ဖုိ႔အတြက္ မိမိစက္ထဲမွာ web serv-
er တစ္ခု တည္ေဆာက္တာနဲ႔ က်န္တဲ႔အပိုင္းကေတာ႔ PHP/MySQL အဓိက ျဖစ္ပါတယ္။ အခုစာအုပ္ကို
သင္က ဆံုးခန္းတုိင္ေအာင္ ဖတ္ၿပီးၿပီဆုိပါက သင္႔အေနျဖင္႔ movie review dynamic website
တစ္ခုကို အေျခခံက်က် ဖန္တီးႏိုင္မွာျဖစ္ပါတယ္။ ဘာေတြပါလဲဆုိရင္ movie name ေတြပါမယ္။ အဲဒိ
movie တစ္ခုျခင္းစီရဲ႕ details ေတြပါမယ္။ user ေတြရဲ႕ comments ေတြပါမယ္။ အဲဒိ comments
ေတြနဲ႔အတူ movie ratings ေတြပါ ၾကယ္ေလးေတြနဲ႔ ျပတတ္လာမယ္။ ၿပီးရင္ ေနာက္ထပ္ movie
အသစ္ေတြ ထပ္ေပါင္းထည့္ႏိုင္မယ္။ ရွိၿပီးသားဟာေတြကို Edit လုပ္ႏိုင္မယ္။ delete လုပ္ႏိုင္မယ္။
အဲဒါေတြ အားလံုးအတြက္ concepts ေတြကို ေသခ်ာရွင္းျပထားပါတယ္။ တစ္ခ်ဳိ႕ေနရာေတြမွာ screen
PHP avScg;xpfrsm;2
rZÑdr pmay
shot နဲ႔ ျပပါတယ္။
Requirements
	 ခု သင္ခန္းစာအတြက္ လိုအပ္တာေတြကေတာ႔
	 ၁။ Browser
	 ၂။ Text editor ( ကၽြန္ေတာ္ကေတာ႔ notepad++ သံုးပါတယ္)
	 ၃။ Wamp server
	 ၄။ developer tools bar (firefox addon)
	 တုိ႔ျဖစ္ပါတယ္။ အဲဒါေတြ အားလံုးကို ဒီစာအုပ္နဲ႔အတူ ပါလာမယ္႔ CD ခ်ပ္ထဲကေန ရႏိုင္ပါတယ္။
Wamp server installation
	 ပထမဆံုး CD ထဲက WampServer2.0c ဆိုတဲ႔ .exe file ကို double click လုပ္ပါ။
Yes ကို ႏွိပ္ပါ။
3udkausmf
rZÑdr pmay
Next ကို ႏွိပ္ပါ။
PHP avScg;xpfrsm;4
rZÑdr pmay
default အေနနဲ႔ c ေအာက္မွာ wamp ဆိုတဲ႔ folder နာမည္နဲ႔ install လုပ္မွာပါ။ Next ကိုဘဲ ႏွိပ္ပါ။
	 ေနာက္တစ္ခါ Quick launch တုိ႔ဘာတုိ႔ေရြးခိုင္းရင္လည္း ႏွစ္သက္သလို ေရြးၿပီး Next လုပ္ပါ။
	 ၿပီးရင္ေတာ႔ Install ကို ႏွိပ္ပါ။ ဒါဆုိရင္ သူ႔ဟာသူ install လုပ္ေနပါလိမ္႔မယ္။
	 ၿပီးသြားရင္ default browser ေရြးခိုင္းပါလိမ္႔မယ္။ ကၽြန္ေတာ္ကေတာ႔ firefox
ကိုဘဲေရြးခဲ႔ပါတယ္။
	
	 ေနာက္တစ္ဆင္႔အေနနဲ႔ mail parameters ကို ေရြးခိုင္းပါတယ္။
ေလာေလာဆယ္ ဒီအတုိင္းထားၿပီး Next ကိုဘဲ ႏွိပ္ပါတယ္။
ၿပီးသြားရင္ေတာ႔ Finish ကို ႏွိပ္လိုက္ပါ။ ဒါဆုိရင္ task bar မွာ ေအာက္ပါအတုိင္းေပၚေနပါလိမ္႔မယ္။
5udkausmf
rZÑdr pmay
အဲဒိ ျမားျပထားတဲ႔ icon ေပၚမွာ left click ႏွိပ္ၿပီးေတာ႔ put online ကို ကလစ္လိုက္ပါ။
အဲဒါၿပီးရင္ wamp server icon ေလးဟာ ေအာက္ပါပံုအတုိင္းေျပာင္းသြားပါလိမ္႔မယ္။
PHP avScg;xpfrsm;6
rZÑdr pmay
အားလံုးၿပီးသြားၿပီဆုိရင္ သင္႔အေနနဲ႔ wamp server ကို ေအာင္ျမင္စြာ install လုပ္ၿပီးသြားပါၿပီ။ သင္
ယခုျပဳလုပ္လုိက္တဲ႔ ဆာဗာထဲမွာ PHP 5.2.6 , Apache 2.2.8 , MySQL 5.0.51b တုိ႔ ကိုလည္း install
လုပ္ၿပီးသား ျဖစ္သြားပါမည္။
Starting with browser
	 firefox browser မွာ localhost or 127.0.0.1 လုိ႔ ရိုက္ထည့္လိုက္ပါက ေအာက္ပါအတုိင္း
တက္လာရပါမည္။
ဒါမွမဟုတ္လည္း wamp server icon အေပၚမွာ left click လုပ္ၿပီး localhost ကို click လုပ္ရင္လည္း
တက္ပါတယ္။
7udkausmf
rZÑdr pmay
Your projects ဆိုတဲ႔ေနရာမွာ ခုေလာေလာဆယ္ ေအာက္ပါအတုိင္းျမင္ရမွာျဖစ္ပါတယ္။
No projects yet.
To create a new one, just create a directory in ‘www’.
ကၽြန္ေတာ္တုိ႔လုပ္သမွ် projects အားလံုးသည္ c:wampwww ဆိုေသာ folder
ေအာက္တြင္သာ ျပဳလုပ္ရမည္ ျဖစ္ပါသည္။
ေနာက္ထပ္ phpMyAdmin ကို ေခၚလိုလွ်င္ wamp server icon ေပၚမွ phpMyAdmin ကို
click လုပ္ၿပီး ေခၚႏိုင္ပါသည္။
Default Database username မွာ root ျဖစ္ၿပီး password မွာ blank ျဖစ္ပါသည္။
ယခုစာအုပ္တြင္ Default အတိုင္းသာ သံုးသြားမည္ျဖစ္ပါသည္။
PHP avScg;xpfrsm;8
rZÑdr pmay
How to use Notepad++
	 Notepad++ ကို install လုပ္ၿပီးၿပီဆုိပါက text document တစ္ခုေပၚတြင္ right click
လုပ္ၾကည့္ပါက Edit with Notepad++ ဆိုေသာ စာတမ္းကိုေတြ႕ျမင္ရမည္ျဖစ္ပါသည္။
	 သင္က php page တစ္ခုကို စတင္ၿပီး create လုပ္လုိပါက www folder ထဲတြင္ text docu-
ment တစ္ခု လုပ္လိုက္ပါ။ ၿပီးရင္အဲဒိ text document ေပၚကို right click လုပ္ၿပီးေတာ႔ Edit with
Notepad++ လုပ္လုိက္ပါ။ ဒီလိုဆိုရင္ notepad++ program တက္လာပါမယ္။ တက္လာတဲ႔အခါမွာ
Language မွာ PHP ကို ေရြးေပးပါ။ ၿပီးရင္save as လုပ္ၿပီးေတာ႔ နာမည္တစ္ခုနဲ႔ သိမ္းလိုက္ရင္ php
file တစ္ခုကို ရလာမွာျဖစ္ပါတယ္။ default အေနနဲ႔ PHP ရဲ႕ open and close tag ေတြကို အနီနဲ႔
ေဖာ္ျပၿပီး comment ေတြကို အစိမ္းနဲ႔ျပပါတယ္။ ျပင္ခ်င္တယ္ဆုိရင္ေတာ႔ settings/style configura-
tor မွာ ျပင္လို႔ရပါတယ္။
9udkausmf
rZÑdr pmay
Chapter (2)
Creating PHP pages using PHP
ဒီအခန္းမွာေတာ႔ PHP ရဲ႕ အေျခခံအခ်က္ေလးမ်ားကို ေျပာသြားမွာျဖစ္ၿပီး တစ္ခ်ိန္တည္း
မွာဘဲ ေျပာသြားတဲ႔အခ်က္ေလးေတြနဲ႔ web တစ္ခုကို အဆင္႔ဆင္႔ တည္ေဆာက္သြားမွာျဖစ္ပါတယ္။
အားလံုးၿပီးသြားတဲ႔အခါမွာ Movie review ေတြရယ္ ၊ ဒီ web ကို လာတဲ႔ လူေတြရဲ႕ comment
ေတြရယ္ movie details ေတြကို MySQL နဲ႔ တြဲၿပီး ျပႏိုင္မွာျဖစ္ပါတယ္။ အေသးစား dynam-
ic web page တစ္ခု တည္ေဆာက္တယ္လို႔ မွတ္ယူလို႔ရပါတယ္။ သင္႔အေနနဲ႔ PHP program ကို
ဒီအတုိင္း သီအိုရီ ခ်ည္း သက္သက္ေလ႔လာ ေနရင္ ပ်င္းမွာစိုးပါတယ္။ ကိုယ္ သိထားသေလာက္က
ဘယ္ေလာက္ထိ ေရးလို႔ရသလဲ ဘယ္ေလာက္ထိ ဖန္တီးလို႔ရသလဲဆုိတာကို သိထားဖုိ႔လိုပါတယ္။
ခု အေျခခံအခ်က္ေလးေတြနဲ႔ တင္ သင္ ထင္မွတ္မထားေလာက္ေအာင္ လုပ္ႏိုင္မွာကို ေတြ႕ရွိရမွာပါ။
ကၽြန္ေတာ္ဟာ ဒီစာအုပ္နဲ႔ အတူ CD တစ္ခ်ပ္ တြဲထည့္ေပးထားၿပီးေတာ႔ အဲဒိ CD ထဲမွာ Exercise files
ေတြပါတယ္။ အႀကံျပဳလိုတာကေတာ႔ အဲဒိ CD ထဲက ဖိုင္ေတြကို တတ္ႏုိင္သမွ် နားလည္ေအာင္ၾကည့္ပါ။
copy paste လုပ္ၿပီး သင္မေလ႔က်င္႔ပါနဲ႔။ Programming ဆိုတာမ်ဳိးကလည္း တစ္ခါေရးနားမလည္
ႏွစ္ခါေရး ရင္ ရူးသြားတာမ်ဳိးမဟုတ္ပါဘူး။ ထပ္ခါထပ္ခါေရးေလ ပို နားလည္ေလ ျဖစ္ေစတာပါ။
PHP ကို အျခား language ေတြျဖစ္တဲ႔ HTML တို႔လို text editor နဲ႔ ေရးလို႔ရပါတယ္။ ဒါေပမယ္႔
HTML နဲ႔ မတူတာက PHP မွာက .php ဆိုတဲ႔ extension နဲ႔ အဆံုး သတ္တာျဖစ္ၿပီး Web စာမ်က္ႏွာ
ေပၚတာေတြက HTML ေတြျဖစ္တယ္ဆုိတာ မွတ္ထားဖို႔လိုပါတယ္။
How PHP fits with HTML
The Rules of PHP syntax
PHP ကို စေရးၿပီဆုိရင္ ထိပ္ဆံုးမွာ <?php နဲ႔ စၿပီးေတာ႔ ေနာက္ဆံုးမွာ ?> အဆံုးသတ္ရပါတယ္။
ေယ်ဘူယ်အားျဖင္႔PHPstatementေတြရဲ႕အဆံုးကိုsemicolon(;)နဲ႔အဆံုးသတ္ေပးရပါတယ္။
ေအာက္က ဥပမာကို ၾကည့္ပါ။
PHP avScg;xpfrsm;10
rZÑdr pmay
	 <?php
		 $num = 1+2;
		 echo $num;
	 ?>
	 ကိုယ္ေရးေနတဲ႔ ပရိုဂရမ္ဟာ တျဖည္းျဖည္းရွည္ လာၿပီးရႈပ္ေထြးမႈရွိလာရင္ ေနာက္တစ္ခါ
ျပန္ၾကည့္တဲ႔အခါ ကိုယ္ေရးထားတဲ႔ဟာကို ကိုယ္႔ဟာကို ျပန္မမွတ္မိ ျဖစ္ေနတတ္ပါတယ္။ ဒါေၾကာင္႔
စတင္ေရးၿပီဆုိကတည္းက ဘယ္ အေၾကာင္းအရာ ကို ဘာေၾကာင္႔ေရးထားတယ္ဆုိတာကို
ပရိဂရမ္ထဲမွာ ထည့္ေရးထားဖုိ႔ အၾကံျပဳလိုပါတယ္။ ဒါကို Comment ေရးတယ္လို႔လဲေခၚပါတယ္။ Com-
ment ေရးရင္ တစ္ေၾကာင္းတည္းဆုိရင္ double forward slashes (//) ကို အသံုး ျပဳၿပီးေရးရပါတယ္။
ဥပမာ-
	 <?php
		 // Adding number
		 $num = 1+2;
		 echo $num;
	 ?>
	 ဒီလို ေရးတဲ႔အခါမွာ comments ေတြကို ပရိုဂရမ္က ထည့္ မ run ပါဘူး။
တကယ္လို႔ ကိုယ္မွတ္ထားတာက ငါးေၾကာင္း ေလာက္ျဖစ္သြားမယ္ဆုိရင္ /* com-
ment */ ကို သံုးလို႔ရပါတယ္။ ဒါေတြကို မွတ္ထားရင္ရပါၿပီ။ ကဲ... အခု ဆိုရင္ သင္ဟာ
PHP ကို ဘယ္လို စေရးရမယ္ဆုိတာ သိၿပီးသြားၿပီမဟုတ္လား။ သိပ္မခက္ပါဘူး။
The importance of coding pratices
	 သင္ဟာ ပရိုဂရမ္ တစ္ခု စေရးေတာ႔မယ္ဆုိရင္ Code structure ေတြကို
အ ရ င္ ဆံုးေ လ ႔ လာ သ င္ ႔ ပ ါ တ ယ္ ။ သ င္ေ ရး လို က္ တဲ ႔ C o d eေ တ ြ ဟာ B r o w s e rေ ပ ၚ မ ွာ
ေကာင္းမြန္စြာအလုပ္လုပ္ေနသမွ် သင္႔ရဲ႕ code structure ကို သိပ္ဂရုစိုက္စရာမလိုပါဘူး ။
တကယ္လို႔ အဲသည္လိုမဟုတ္ေတာ႔ဘဲ တစ္ခုခု error ျပ ေနၿပီဆုိရင္ Code error ကို ရွာရေတာ႔မယ္
။ အဲဒိအခါမွာစေရးကတည္းက ရႈပ္ေထြးေနေအာင္ေရးခဲ႔မယ္ဆုိရင္ အလြယ္တကူ ရွာဖို႔ ခက္ခဲမွာပါ။
ေအာက္က နမူနာပံုစံကိုၾကည့္ၾကည့္ပါ။
11udkausmf
rZÑdr pmay
Example(2) ကိုၾကည့္လိုက္ရင္ ပိုရွည္တယ္ထင္ေပမယ္႔ တကယ္တမ္းၾကေတာ႔ syntax err-
ror or other troubleshooting လုပ္တဲ႔အခါမွာ ပိုမိုျမန္ဆန္စြာလုပ္ႏိုင္ပါတယ္။
ဒါဟာ ပရိုဂရမ္ကို ခုမွ စေရးမယ္႔ သူေတြအတြက္တကယ္႔ကို အေရးႀကီးပါတယ္။
ၾကံဳသလိုေရးလိုက္ရင္ အက်င္႔ႀကီးပါသြားတတ္ပါတယ္။
Example (1)
< ?php
//check to make sure the first name is equal to MgMg before granting ac-
cess
if ($_POST['fname'] == 'MgMg') {
echo '<p> Hi '. $_POST['fname'] . '</p>';
} else {
echo '<p> Your name isn't MgMg so you cannot enter the web site. </p>
';
}
?>
Example(2)
< ?php
//check to make sure the first name is equal to Joe before granting access
if ($_POST['fname'] == 'Joe')
{
echo '<p>';
echo 'Hi';
echo $_POST['fname'];
echo '</p>';
}
else
{
echo '<p>';
echo 'Your name's not MgMg so you cannot enter the web site!';
echo '</p>';
PHP avScg;xpfrsm;12
rZÑdr pmay
Creating your first program
	
	 Using (echo)
	 1. ေအာက္မွာ ျပထားတဲ႔ ကုဒ္ေတြကို notepad++ ထဲ ကူးထည့္ၿပီး firstprog.php ဆိုၿပီး Save
လုပ္ပါ။
	 <html>
		 <head>
			 <title>My first Program</title>
		 </head>
		 <body>
			 <?php
				 echo "I'm a KoKo.And I'm OK.";
			 ?>
		 </body>
	 </html>
OK . အဲဒိ firstprog.php ဆိုတ႔ဲ ဖုိင္ကို web browser ကေန ၾကည့္ၾကည့္ရင္ ေအာက္ကပံုအတိုင္း
ျမင္ရပါမယ္။
13udkausmf
rZÑdr pmay
ကဲ အခု ေနာက္ထပ္ တစ္ေၾကာင္းေလာက္ ထပ္ေပါင္း ေရးၾကည့္ရေအာင္။ ထပ္ေပါင္းေရးတဲ႔
စာေၾကာင္းကို Highlight လုပ္ေပးထားပါတယ္။
<html>
<head>
<title>My first Program</title>
</head>
<body>
<?php
echo "I'm a KoKo.";
echo 'And I'm OK.';
?>
</body>
</html>
File ကို save လုပ္ၿပီးေတာ႔ Browser ကေန ျပန္ၾကည့္ၾကည့္ပါ။ ေအာက္ပါ ပံုအတိုင္း ျမင္ရပါလိမ္႔မယ္။
PHP avScg;xpfrsm;14
rZÑdr pmay
How it works?
	 Browser ကေန PHP program ကို​ call လုပ္လိုက္ရင္ အရင္ဆံုး PHP code ေတြကို line
by line ရွာပါတယ္။ ဆုိလိုတာက <?php ?> ၾကားက ကုဒ္ေတြကို ရွာတာေပါ႔။ တစ္ခ်ိန္တည္းမွာဘဲ
အဲဒိ code ေတြကို process လုပ္ပါတယ္။ ဆာဗာကို PHP code ေတြဟာ တစ္ေၾကာင္းတည္း ပံုစံနဲ႔
သြားတာပါ။ ဆာဗာဆီကိုPHP code ေတြဟာ မွန္မွန္ကန္ကန္ေရာက္သြားၿပီဆိုရင္ က်န္တဲ႔ HTML code
ေတြကို browser ဆီပို႔ေပးပါတယ္။ တစ္ခါတည္း php sections ေတြပါ ပို႔ေပးတာပါ။
	 အထက္က ပရိုဂရမ္ မွာ Coding ပိုင္းမွာ သတိထားမိမယ္ဆုိရင္ single quotation marks (')
ေလးကို သတိထားမိမွာပါ။
	 Text string ေတြကို ေဖာ္ျပရာမွာ single quotation mark(') နဲ႔ double quotation mark(")
ကို လိုအပ္ခ်က္ေပၚမူတည္ၿပီး သံုးသြားရမွာပါ။ ေနာက္ပိုင္း သင္ခန္းစာေတြမွာ ပရိုဂရမ္ ေရးရင္း ေရးရင္း
ပိုမုိေလ႔လာႏိုင္ပါတယ္။ ေအာက္က နမူနာ ပံုစံေလးကို ၾကည့္ၾကည့္ပါ။
	 echo " I'm a KoKo";
	 အဲဒိဟာကို output အေနနဲ႔ ထုတ္လိုက္ရင္ I'm a KoKo ဆိုၿပီး ရလာမွာပါ။ ဘာျဖစ္လို႔လဲဆိုေတာ႔
text string ရဲ႕ အစနဲ႔ အဆံုး ကို " နဲ႔ ခံၿပီး သံုးထားလို႔ပါ။ double quotaion mark (") ႏွစ္ခုၾကားမွာ
ရွိတဲ႔ဟာက String ေတြျဖစ္တယ္ဆုိတာ PHP က သူ႔အလိုလို သိပါတယ္။ ေအာက္က နမူနာကိုလည္း
ၾကည့္ပါဦး။
	 echo 'I'm a KoKo';
	 အဲဒိ လိုင္းကို Output ထုတ္လိုက္ရင္ Error message ရလာမွာပါ။ ဘာျဖစ္လို႔လဲဆုိေတာ႔
String value က ဘယ္က စမွန္း PHP က မသိေတာ႔ပါဘူး။ I'm က ' က စတာလား ။ ဒါမွမဟုတ္ 'I က
စတာလားဆိုတာ Confused ျဖစ္သြားပါၿပီ။ အဲဒိလိုဘဲ double quotation mark နဲ႔ စေပမယ္႔ အလားတူ
Problem မ်ဳိး ေတြလည္းျဖစ္ႏုိင္ပါတယ္။ ေအာက္က နမူနာေလးကို ေလ႔လာၾကည့္ပါ။
	
	 echo "I'm a KoKo . "Hello world"";
	 အဲဒိေတာ႔ လိုအပ္သလို ေပၚဖုိ႔ single quotation mark(') and double quotation
15udkausmf
rZÑdr pmay
mark (") ေတြကို လိုအပ္သလို အသံုးျပဳရမွာပါ။ အထက္ပါ code ကို မွန္မွန္ကန္ကန္ Run ဖို႔
ေအာက္ပါအတုိင္း ေရးရင္ ရပါတယ္။
echo"I'm a KoKo . "Hello world"";
 သံုးထားတာကို သတိျပဳမိမွာပါ။ ဘာအတြက္ သံုးတာလဲဆိုရင္ ဒီမွာက Hello world
ရဲ႕ေရွ႕နဲ႔ေနာက္က (") ကို plain character အျဖစ္ ယူလိုတဲ႔အတြက္ဘဲျဖစ္ပါတယ္။ အခုေန
ရႈပ္ေနမယ္ဆုိတာ သိပါတယ္။ ေနာက္ အခန္းေတြ ေရာက္လာရင္ ခု ေလ႔က်င္႔ခန္းေတြက
ထမင္းစားေရေသာက္ တာထက္ကို ပိုမို လြယ္ကူ သြားေစမယ္ဆုိတာ အာမခံပါတယ္။
Integrating HTML with PHP
ေအာက္မွာ ျပထားတဲ႔ နမူနာေလးေတြကို ၾကည့္လိုက္ရင္ HTML ကို PHP ထဲ ထည့္သံုးရတာ
ဘယ္ေလာက္ လြယ္ကူၿပီး လွပ တယ္ဆုိတာ ကိုယ္တုိင္ လုပ္ၾကည့္လိုက္ပါ။
<html>
<head>
<title>My first Program</title>
</head>
<body>
<?php
echo " <h1>I'm a KoKo.</h1>";
echo "<h2>I'm a KoKo . "Hello world"</h2>";
?>
</body>
</html>
Considerations with HTML inside PHP
HTML ကို PHP ထဲမွာ ထည့္သံုးေတာ႔မယ္ဆုိရင္ ေအာက္မွာ ျပထားတဲ႔အခ်က္ေတြကို
ေသခ်ာေလး ဂရုစိုက္ေစခ်င္ပါတယ္။
၁။ double quotation mark ေတြကို သံုးရာမွာ ဂရုစိုက္ပါ။ back slash () ခံၿပီးသံုးပါ။
ဥပမာ-
echo "<p style="font-size:80%;">";
၂။ HTML နဲ႔သံုးမယ္ဆုိရင္ single quotation mark ကို အမ်ားဆံုးသံုးသင္႔ပါတယ္။
PHP avScg;xpfrsm;16
rZÑdr pmay
ဥပမာ
		 echo '<p style="font-size:80%;">';
	 ၃။ PHP code ေတြထဲကို HTML code ေတြ တအားမ်ားေနၿပီဆုိရင္ သတိထားပါ။ code
ေတြေရာေထြးၿပီး ရႈပ္ေထြး ေနတတ္ပါတယ္။ အဲဒိအခါမွာ ကိုယ္႔ရဲ႕ HTML code ေတြကို Strictly
ျဖစ္ေအာင္ ျပန္စဥ္းစားၿပီး ျပန္ေရးပါ။ ေအာက္က ဥပမာ ၂ ခုကို ႏႈိင္းယွဥ္ၾကည့္ရင္ သိႏိုင္ပါတယ္။
Example(1)
<?php
echo ' <table style="font-family: Arial,sans-serif; font-size: 80%; ';
echo 'width: 100%;">';
echo ' <tr> ';
echo ' <td style="width: 50%;">';
echo 'First Name:';
echo ' </td > ';
echo ' <td style="width: 50%">';
echo $_POST['fname'];
echo ' </td > ';
echo ' </tr > ';
echo ' </table > ';
?>
Example(2)
<table style="font-family: Arial,sans-serif; font-size: 80%; width: 100%;">
<tr>
<td style="width: 50%;">
First Name:
</td >
<td style="width: 50%" >
		 <?php echo $_POST['fname'];?>
</td>
</tr>
</table>
17udkausmf
rZÑdr pmay
အထက္က ဥပမာ ၂ ခုကို ယွဥ္ၾကည့္မယ္ဆုိရင္ အဓိက ရည္ရြယ္ခ်က္က $_POST['fname']
ဆိုတဲ႔ ဟာကို ထုတ္ေပးဖုိ႔ဘဲျဖစ္တယ္ဆုိတာ ေတြ႕ရမယ္။ ဒီလိုပံုစံမ်ဳိးမွာ HTML code အားလံုးကို PHP
ပံုစံ ထဲ ထည့္ေရးမယ္႔အစား(Example 1လို) Example 2 လို HTML ထဲမွာ လိုအပ္တဲ႔ PHP code
ကိုဘဲ ထည့္ေရးရင္ ပိုၿပီးရိုးရွင္းပါတယ္။ ဆာဗာ အတြက္ကေတာ႔ အထက္က Example ၂ ခုထဲက
ၾကိဳက္တဲ႔ဟာနဲ႔ ေရး ။ အေရးမႀကီးဘူး။ ပရိုဂရမ္မာေတြအတြက္ဘဲကိုယ္ေရးလိုက္တဲ႔ဟာ For-
mat က်က် ေရးခ်င္တယ္၊ debugging လုပ္ဖို႔ လြယ္လြယ္ျဖစ္ခ်င္တယ္ဆုိရင္ example 2 လိုေရးဖို႔
အၾကံျပဳလိုပါတယ္။
Using Constants and Variables to add Functionality
ခုဆုိရင္ echo function ဘယ္လို အလုပ္လုပ္သလဲဆုိတာ နားလည္သြားၿပီလို႔ယူဆပါတယ္။
echo function ဟာ HTML နဲ႔ တူတူပါဘဲ။ ခု ရွင္းျပမယ္႔ Constants and Variables ေတြကို ထည့္သံုး
အသံုးျပဳတတ္မွ တကယ္႔ True power of PHP ကို ရရွိမွာျဖစ္ပါတယ္။
Overview of constants
Constant ဆိုတဲ႔ သေဘာတရားကို ေက်ာင္းသားတုိင္း သိၾကမွာပါ။ သူ႔ကို အသံုးျပဳမယ္ဆုိရင္
(၁) မသံုးခင္မွာ သူ႕ရဲ႕ တန္ဖိုးကို ႀကိဳတင္သတ္မွတ္ဖို႔လိုပါတယ္။
(၂) Constant ေတြကို နာမည္ေပးတဲ႔အခါမွာ အစစာလံုးေတြကို letter (A to Z, a to
z) or _(underscore) နဲ႔စရပါတယ္။
(၃) Constant နာမည္ေတြကို Number နဲ႔ စလို႔ မရပါဘူး။
(၄) Constant ေတြဟာ case- sensitive ျဖစ္ပါတယ္။ သိသာထင္ရွားေအာင္ စာလံုး
အႀကီးေတြနဲ႔ ေရးေလ႔ရွိပါတယ္။
(၅) Constant ေတြကို PHP function တစ္ခုျဖစ္တဲ႔ define() နဲ႔ သတ္မွတ္ၿပီးေတာ႔
သတ္မွတ္ၿပီးသြားရင္ သူ႔ကို ျပန္ေျပာင္းလို႔မရပါဘူး
နမူနာေလး ေလ႔က်င္႔ၾကည့္ရေအာင္။ ေအာက္မွာ ျပထားတဲ႔ code ေတြအတုိင္း text editor ထဲ
ရိုက္ထည့္ပါ။
PHP avScg;xpfrsm;18
rZÑdr pmay
	 <html>
		 <head>
			 <title> My Movie Site </title>
		 </head>
		 <body>
			 <?php
				 define ('FAVMOVIE', 'ThaGyanMoe');
				 echo 'My favorite movie is ';
				 echo FAVMOVIE;
			 ?>
		 </body>
	 </html >
	
	 အဲဒိ ပရိုဂရမ္ေလးကို ေလ႔လာမယ္ဆုိရင္ FAVMOVIE ဆိုတဲ႔ constant ကို သတ္မွတ္ၿပီး
သူ႔ရဲ႕ တန္ဖိုးကို ThaGyanMoe လို႔ ထားလိုက္တာပါ။ အဲဒိေတာ႔ ဘယ္လိုျဖစ္သြားမလဲဆုိရင္
define('name','value') ျဖစ္သြားတာပါ။ ေအာက္က ပံုအတုိင္း Result ထြက္လာပါမယ္။
19udkausmf
rZÑdr pmay
Overview of Variables
Constant ရဲ႕ ေျပာင္းျပန္က Variable ေပါ႔ ။ Variable ေတြရဲ႕ တန္ဖုိးဟာ ေျပာင္းႏိုင္တယ္။
Variable ေတြကို သံုးဖုိ႔ define သတ္မွတ္ေပးစရာမလိုသလို declare လုပ္ဖို႔လည္း မလိုပါဘူး။ Vari-
able ေတြဟာ ဘာနဲ႔ တူသလဲဆုိရင္ information ေတြကို သိမ္းထားတဲ႔ container တစ္ခုပါဘဲ။
လိုတ႔ဲေနရာကေန ေခၚသံုးႏိုင္တယ္။ ၿပီးေတာ႔ အဲဒိ information ကိုလည္း ထပ္ေျပာင္းႏိုင္တယ္။ Vari-
able ေတြကို ေရးေတာ႔မယ္ဆုိရင္
(၁) $ နဲ႔ စရမယ္။
(၂) Variable ေတြဟာ case-sensitive ျဖစ္ပါတယ္။ ($dateEntered နဲ႔ $Dateentered)
တုိ႔ရဲ႕ တန္ဖုိးဟာ မတူပါဘူး
(၃) Variable name ေတြရဲ႕ အစဟာလည္း letter(A to Z, a to z) or _ (underscore)
ျဖစ္ရပါမယ္။
(၄) Variable name ေတြရဲ႕ အစဟာ number မျဖစ္ရပါဘူး (0-9)။
Using Variables
ခုနက moviesite.php ကို အနည္းငယ္ ျပင္ေရးၾကည့္ပါမယ္။ Variables ေလး
ထည့္သံုးၾကည့္မွာေပါ႔။ ျပင္ထားတဲ႔ စာေၾကာင္းေတြကို Highlight ျပထားပါတယ္။
<html>
<head> <title> My Movie Site </title> </head>
<body>
<?php
define ('FAVMOVIE', 'ThaGyanMoe');
echo 'My favorite movie is ';
echo FAVMOVIE;
echo '<br/>';
$movierate = 5;
echo 'My movie rating for this movie is: ';
echo $movierate;
?>
</body>
</html >
PHP avScg;xpfrsm;20
rZÑdr pmay
How it works
	 ပထမဆံုး $movierate ဆုိတဲ႔ variable ရဲ႕ တန္ဖုိးကို 5 လို႔ သတ္မွတ္လိုက္ပါတယ္။ Num-
ber ေတြကို တန္ဖုိးသတ္မွတ္ ရင္ single quotation mark or double quotation mark မလိုပါဘူး။
တကယ္လို႔ သင္ဟာ ေအာက္ပါအတုိင္း ေရးမယ္ဆုိရင္ movierate တန္ဖုိးဟာ ဂဏန္း 5 မဟုတ္ဘဲ
Character 5 ျဖစ္သြားမွာပါ။
	 $movierate='5';
ဒီေတာ႔ တန္ဖိုးေတြကို သတ္မွတ္ရင္ integer သတ္မွတ္ၿပီး ထားရင္ ေနာက္ပိုင္း mathematical calcu-
lation လုပ္ရင္ ပိုမိုလြယ္ကူပါလိမ္႔မယ္။ ေအာက္မွာ ျပထားတဲ႔ နမူနာကို ၾကည့္လိုက္ရင္ သိသာပါတယ္။
	 <?php
		 $mamamovierate = 5;
		 $nyinyimovierate = 7;
		 $fathermovierate = 2;
		 $mothermovierate = 1;
		 $avgmovierate = (($mamamovierate + $nyinyimovierate +
						 $fathermovierate+ $mothermovierate) / 4);
		 echo 'The average movie rating for this movie is: ';
		 echo $avgmovierate;
	 ?>
21udkausmf
rZÑdr pmay
ဒီပရိုဂရမ္ေလးကို ေလ႔လာၾကည့္ရင္ ရိုးရုိးရွင္းရွင္းေလးပါဘဲ။ သခ်ၤာ ေဖာ္ျမဴလာအတုိင္း
စုစုေပါင္းကို အေရအတြက္ နဲ႔ စားလုိက္ရင္ average value ကို ရတာဘဲေလ ။ မဟုတ္ဘူးလား။
တစ္ခု သတိထားရမွာက () ေတြကို ေရးရင္ျဖစ္ပါတယ္။ ( ဖြင္႔ၿပီးရင္ ျပန္ပိတ္ ) ရပါတယ္။ + -*/
ေတြပါလာၿပီဆုိေတာ႔ ဒီအေၾကာင္းကို ေနာက္ပိုင္းမွာ ဆက္ရွင္းျပပါမယ္။ ခု PHP ထဲမွာ ပါတဲ႔ built-in
mathematical functions ေတြကို နည္းနည္းေလာက္ တီးေခါက္ ၾကည့္ရေအာင္။
rand([$min , $max]) : Returns a random number.
ceil($value) : Returns the next highest integer by rounding the value up-
wards.
floor($value) : Returns the next lowest integer by rounding the value down-
wards.
number_format($number[,$decimal_places[,$decimal_point, $thousands_
sep]])
ေအာက္မွာ ျပထားတဲ႔ နမူေလးနဲ႔ ယွဥ္တြဲ ေလ႔လာၾကည့္ပါ။ ၿပီးရင္ ကိုယ္႔ဟာကို တစ္ျခား
တန္ဖုိးေတြကို ေရးၿပီး ေလ႔က်င္႔ပါ။ Pratice makes perfect တဲ႔။
rand([$min , $max]) : Returns a random number.
ceil($value) : Returns the next highest integer by rounding the value up-
wards.
floor($value) : Returns the next lowest integer by rounding the value down-
wards.
number_format($number[,$decimal_places[,$decimal_point, $thousands_
sep]])
$price = 12345.67
number_format($price); // returns 12,345.67
number_format($price,2,'.',''); // returns 12345.67
PHP avScg;xpfrsm;22
rZÑdr pmay
	 အခုက အျမည္းေလးေကၽြးထားတဲ႔သေဘာပါဘဲ။ ေနာက္ပိုင္းမွာ လက္ေတြ႕ေလ႔က်င္႔ခန္းေတြ
လုပ္ရင္းနဲ႔ ပိုၿပီး နားလည္ လာပါမယ္။ သက္ဆုိင္ရာ ေနရာေရာက္ရင္ အေသးစိတ္ရွင္းျပမွာပါ။
Passing variables between pages
	 တကယ္လို႔ သင္႔ရဲ႕ website ထဲကို user ေတြကို ၀င္ခြင္႔ေပးမယ္ဆုိရင္ login form လိုလာၿပီေပါ႔။
Login လုပ္ၿပီးသြားရင္ သင္႔အေနနဲ႔ ၀င္လာတဲ႔ user ကို ႏႈတ္ဆက္ခ်င္တယ္။ အဲဒိ ႏႈတ္ဆက္စာကိုလည္း
user က ဘယ္ စာမ်က္ႏွာကိုဘဲ သြားသြား ေပၚေနေစခ်င္တယ္ဆိုရင္ ေပၚေစခ်င္တဲ႔ ဟာကို vari-
able တစ္ခု သတ္မွတ္ၿပီး အဲဒိ variable ကို စာမ်က္ႏွာတစ္ခုကေန ေနာက္တစ္ခုကို passing လုပ္ဖုိ႔
လုပ္ရမွာဘဲျဖစ္တယ္။ အဲဒိလို pass လုပ္ဖုိ႔ အေျခခံ အားျဖင္႔ေပါ႔ ၄ မ်ဳိးရွိပါတယ္။
	 (1) Pass the variables in URL
	 (2) Through a session
	 (3) Via a cookie
	 (4) with an HTML form
	 အဲဒိ ထဲက ဘယ္ဟာကို သံုးမယ္ဆုိတာေတာ႔ ကိုယ္ ျပဳလုပ္တဲ႔ site ရဲ႕
လိုအပ္ခ်က္ေပၚမွာမူတည္ၿပီးဘဲ ဆံုး ျဖတ္ၾကပါတယ္။
Passing Variables through a URL
	
ဥပမာေပါ႔ဗ်ာ -
	 http://www.mydomain.com/news/articles/showart.php?id=12345
	 သူက variables ကို URL ထဲကေန ျဖတ္ၿပီးေဖာ္ျပတာပါ။ showart.php ကို ေခၚလိုက္ရင္ ar-
ticles ထဲက id နံပါတ္ 12345 ကို ေခၚတင္လုိက္တာပါ။
	 အဲဒိလို variable ေတြကို URL ထဲမွာ ေဖာ္ျပတဲ႔အခါမွာ ႏွစ္ခု ကို တစ္ျပိဳင္တည္း လုပ္ခ်င္ရင္
ampersand(&) သေကၤတကို သံုးၿပီး ႏွစ္ခုကို ေပါင္းၿပီး ေဖာ္ျပလို႔ရတယ္။ ဥပမာ-
	 http://www.mydomain.com/news/articles/showart.php?id=12345&lang=en
23udkausmf
rZÑdr pmay
သူ႔ရဲ႕ သေဘာတရားကေတာ႔ id နံပါတ္ 12345 ျဖစ္ရမယ္႔ အျပင္ language ကလည္း en ဆိုတဲ႔
english ျဖစ္ရမယ္ေပါ႔ဗ်ာ။ ခုကေတာ႔ ဒီလို လုပ္လို႔ရတယ္ဆုိတာဘဲ မွတ္ထားဦးေနာ္။ ကိုယ္က ခုမွ
စေလ႔လာတာဆိုေတာ႔ အေျခခံေလာက္ေတြဘဲ ေလ႔လာေနတာေလ။ ဒီလို variable ေတြကို URL ထဲမွာ
ေဖာ္ျပတဲ႔ နည္းက တကယ္တမ္း ေတာ႔ Security အပိုင္းက စဥ္းစားရင္ တအားကို အားနည္းပါတယ္။
sensitive ျဖစ္တဲ႔ information ေတြကို ခုလိုသာ ျပေပးေနရင္ Security အတြက္ ဘယ္လိုလုပ္
စိတ္ခ်ႏိုင္ရေတာ႔မွာလဲ။ သူ႕ရဲ႕ အားနည္းခ်က္ေလးေတြကို ေလ႔လာၾကည့္ရေအာင္။
၁။ ယူဇာအားလံုးက သင္သံုးထားတဲ႔ variables ေတြကို ျမင္ရမယ္။
၂။ ယူဇာေတြဟာ URL ထဲက variable ေတြကို ေျပာင္းၿပီးေတာ႔ တစ္ျခား နည္းလမ္းေတြနဲ႔ သင္
မျပခ်င္တဲ႔ information ေတြကို ယူႏုိင္တယ္ ။
ဘာဘဲျဖစ္ျဖစ္ေပါ႔။ security ပိုင္း အားနည္းတယ္ဆိုေပမယ္႔ တစ္ျခား သံုးလို႔ရတဲ႔
ေနရာေလးေတြလည္း ရွိေသးတယ္ေလ။ ခုလိုမ်ဳိး variable ေတြကို PASS လုပ္ဖုိ႔ PHP မွာ ရွိပါတယ္။
$_GET array ျဖစ္ပါတယ္။ URL မွာ ေပၚမယ္႔ variable name ကို key အျဖစ္ ယူလိုက္မွာပါ။ URL
မွာ variable က id ျဖစ္တယ္ဆုိရင္ $_GET['id'] ျဖစ္ၿပီးေတာ႔ ေနာက္ variable က lang ဆုိရင္ $_
GET['lang'] ေပါ႔။ ဒါဆုိရင္ ေလ႔က်င္႔ခန္း နမူနာေလး လုပ္ၾကည့္ရ ေအာင္ ။ ခုနက ေရးခဲ႔တဲ႔ moviesite.
php ကို နည္းနည္းေလး ျပင္ေရးမယ္ဗ်ာ။
<html>
<head>
<title> My Movie Site - <?php echo $_GET['favmovie'];
?> </title>
</head >
<body >
<?php
	 	 	 	 //delete	this	line:	defi	ne('FAVMOVIE',	'The	Life	
of Brian');
echo 'My favorite movie is ';
PHP avScg;xpfrsm;24
rZÑdr pmay
				 echo $_GET['favmovie'];
		 		 echo ' <br/> ';
				 $movierate = 5;
				 echo 'My movie rating for this movie is: ';
				 echo $movierate;
			 ?>
		 </body>
	 </html>
ျပင္ၿပီးသြားၿပီလား။ OK. ဒါဆုိရင္ ေနာက္ထပ္ document အသစ္တစ္ခုေရးမယ္။ text editor မွာ new
pageေခၚၿပီးေတာ႔ ေအာက္ပါအတုိင္း ေရးပါ။ ၿပီးရင္ movie1.php ဆိုၿပီး save လုပ္ပါ။
	 <html>
		 <head>
	 	 	 <title>  Find my Favorite Movie!  </title>
		 <head>
		 <body>
	 		 <?php
				 echo ' <a href="moviesite.php?favmovie=Stripes"> ';
				 echo 'Click here to see information about my favorite
movie!';
				 echo ' </a> ';
			 ?>
		 </body>
	 </html>
ၿပီးရင္ browser ကေန movie1.php ကို ေခၚလိုက္ရင္ ေအာက္က ပံု အတိုင္းေပၚလာ ပါမယ္။ ကၽြန္ေတာ္
ဒီစာအုပ္မွာ HTML အေၾကာင္းကို အေသးစိတ္ရွင္း မေနပါဘူး။ PHP ကို ေလ႔လာေနၿပီဆုိေတာ႔ HTML
ကိုလည္း အေတာ္ အသင္႔ နားလည္ ေနၿပီလို႔ ယူဆပါတယ္။
25udkausmf
rZÑdr pmay
ပံုမွာျမင္တဲ႔အတုိင္းဘဲသူကclickပါတဲ႔။အဲဒိေတာ႔clickလိုက္ေပါ႔။ဒါဆုိရင္ေအာက္ကပံုအတုိင္း
ထြက္လာမယ္။
PHP avScg;xpfrsm;26
rZÑdr pmay
ပံုမွာျမင္ရတဲ႔အတုိင္းဘဲ $favmovie = TheGyanMoe ျဖစ္သြားတာပါ။ တစ္ခါတည္း browser ရဲ႕ Tab ရဲ႕
title ကိုလည္း ၾကည့္လိုက္ပါဦး My Movie Site - ThaGyanMoe ဆိုၿပီး ျမင္ရမွာပါ။ ဘာျဖစ္လို႔လဲဆုိေတာ႔
title tag မွာ $favmovie ဆိုတဲ႔ variable ကို ေခၚသံုးထားလိုက္လို႔ျဖစ္ပါတယ္။
Special characters in URLs
	 URL မွာ variable ေတြမွာပါတတ္တဲ႔ special character ေတြျဖစ္တဲ႔ space, amper-
sands(&) စတဲ႔ character မ်ား ကို ဒီအတုိင္း ေဖာ္ျပရာမွာ problem ရွိပါတယ္။ ဒီလို ဟာေတြကို PHP
မွာ ေက်ာ္လႊားႏိုင္ပါတယ္။ သူ႕မွာပါတဲ႔ urlencode() ဆိုတဲ႔ function ကို သံုးၿပီး special character
problem ကို ေျဖရွင္းႏိုင္ပါတယ္။ အခု နည္းနည္းေလာက္ ထပ္ေပါင္း ေလ႔က်င္႔ၾကည့္ရေအာင္။ mov-
ie1.php ကို ေအာက္က ကုဒ္ေတြအတုိင္း ထပ္ ျပင္ေရးၾကည့္မယ္ေလ။
	
<html>
	 	 <head>
  	 	 	 <title>  Find my Favorite Movie!  </title >
		 </head>
		 <body>
			 <?php
				 //add this line:
	 	 	 	 $myfavmovie = urlencode('Enemy at the
gate');
				 //change this line:
				 echo "<a href="moviesite.
php?favmovie=$myfavmovie">";
				 echo 'Click here to see information about my
favorite movie!';
				 echo '</a>';
			 ?>
		 </body >
</html>
27udkausmf
rZÑdr pmay
save လုပ္ၿပီး ျပန္ ဖြင့္ၾကည့္ရေအာင္။ ဒါဆုိရင္ ေအာက္ပါပံုအတုိင္းျမင္ရမယ္။ URL box ထဲကို
ေသခ်ာၾကည့္ပါ။
ဒီပရိုဂရမ္ေလးမွာဆုိရင္ $myfavmovie = Enemy at the gate ဆိုၿပီး ေပးခဲ႔တာပါ။ word ေတြၾကားက
spaceေတြကိုမရွိေစခ်င္တဲ႔အတြက္urlencode()ဆိုတဲ႔functionကိုတစ္ခါတည္းတြဲေပးလိုက္တာပါဘဲ။
မခက္ပါဘူး။ ဟုတ္တယ္မလား။ ကဲ ..ေနာက္တစ္ခန္းကို ဆက္ကူး လိုက္ၾကရေအာင္။
Passing variables with SESSIONS
ကၽြန္ေတာ္ အထက္မွာ ေျပာခဲ႔တဲ႔အတုိင္း variable ကို URL ကေန passing လုပ္တဲ႔အခါမွာ
အေရးမႀကီးတဲ႔ ေဒတာေတြ ၊ saved လုပ္ထားတဲ႔ old information ေတြကို ယူသံုးလိုက္လို႔ ကိုယ္႔
site အတြက္ dangerous အေျခအေနကို မေရာက္ႏိုင္တဲ႔ အေျခအေနေတြမွာ သံုးလို႔ရပါတယ္။
တကယ္လို႔မ်ား user တစ္ေယာက္ရဲ႕ personal data ေတြကိုသာဆုိရင္ အထက္ပါနည္းနဲ႔
မသံုးသင္႔ပါဘူး။ ကိုယ္႔အေၾကာင္းကို ဘာျဖစ္လို႔ လူတုိင္းကို ေပးသိရမွာလဲ ? မဟုတ္ဘူးလား။ Person-
al data ေတြဆုိတာ username, password, address, email, phone number, credit card number
စတာေတြပါပါတယ္။ အဲဒါေတြကို private အေနနဲ႔ သံုးဖုိ႔ Cookies ကို သံုးရပါတယ္။ ေနာက္ပိုင္းမွာေတာ႔
cookies အေၾကာင္းကို ထပ္ၿပီး ျဖည့္စြက္ေဆြးေႏြးသြားပါမယ္။
PHP avScg;xpfrsm;28
rZÑdr pmay
	 what is a session? Session ဆိုတာ တကယ္ေတာ႔ variable ကို temporary
သတ္မွတ္လိုက္တာဘဲျဖစ္ပါတယ္။ သူ႕ရဲ႕ သက္တမ္းက ဘယ္ေလာက္ခံလဲဆုိေတာ႔ Browser ကို
shutdown ခ်လိုက္တဲ႔အထိပါဘဲ။ browser လည္း ပိတ္ သူလည္း ေပ်ာက္ ပါဘဲ။ Session မွာလည္း
သူ႔ဟာသူ session id ပါပါတယ္။ ဒါမွ ကိုယ္လုပ္လိုက္တဲ႔ (browser ေပၚမွာ) အရာတစ္ခုကို သူက
သူ႔နံပါတ္နဲ႔သူ မွတ္ထားတာျဖစ္ပါတယ္။ PHP program က လိုအပ္တဲ႔အခါမွာ အဲဒိ Session ေတြကို
refer ျပန္လုပ္ပါတယ္။Session ေတြကို URL ထဲမွာ Pass လုပ္လို႔ရသလို cookie နဲ႔လည္း တြဲဖက္ၿပီး
လုပ္လို႔ရပါတယ္။
	 PHP program မွာ session ကို ေခၚသံုးဖုိ႔ session_start() ဆုိတဲ႔ function ေလးကို
ေခၚသံုးလိုက္ယံုပါဘဲ။ ဘယ္နားမွာ ေရးရလဲဆုိရင္ PHP program ရဲ႕ ထိပ္ဆံုးမွာ ေရးရပါတယ္။
တစ္ခုေတာ႔ရွိတယ္။ session ထဲမွာ သင္က ဘယ္ data ေတြကို သိမ္းမွာလဲဆုိတာေတာ႔
ပထမဆံုး စဥ္းစားထားဖုိ႔လိုပါတယ္။ အဓိကက ေတာ႔ username and login information
ေတြကို သိမ္းတာမ်ားပါတယ္။ ကဲ ..ေျပာေနၾကာပါတယ္။ ကၽြန္ေတာ္တုိ႔ ပရိုဂရမ္ တစ္ပုဒ္ေလာက္
ခ်ေရးလိုက္မယ္။ movie1.php ကိုဘဲ နည္းနည္း ထပ္ေပါင္းေရးၾကည့္မယ္။ ေအာက္က အတုိင္းေပါ႔ -
<?php
	 session_start();
	 $_SESSION['username'] = 'MgMg12345';
	 $_SESSION['authuser'] = 1;
?>
<html>
	 <head>
	 	 <title>  Find my Favorite Movie!  </title >
	 </head>
	 <body>
		 <?php
	 	 	 $myfavmovie = urlencode('Enemy at the gate');
			 echo " <a href="moviesite.
php?favmovie=$myfavmovie"> ";
29udkausmf
rZÑdr pmay
echo 'Click here to see information about my favorite mov-
ie!';
echo ' </a> ';
?>
</body>
</html>
ေနာက္ၿပီးေတာ႔ moviesite.php ကိုလည္း နည္းနည္းေတာ႔ျပင္ေရးရမယ္ေလ။ ဘာလို႔ဆုိေတာ႔
သူ႔ဆီက information ေတြ ယူရမွာကိုး ။ session သံုးၿပီဆုိေတာ႔ သူက ဒီအတုိင္း မေပးေတာ႔ဘူးေလ။
သတ္မွတ္ထားတဲ႔ data ေတြကို တူမတူ တိုက္စစ္မယ္။ တူရင္ေပးမယ္။ မတူရင္ မေပးဘူးေပါ႔။ အဲဒိလို
စစ္ဖုိ႔အတြက္ moviesite.php ကို နည္းနည္းေလး ျပင္ေရးမယ္ေလ။
<?php
session_start();
//check to see if user has logged in with a valid password
if	($_SESSION['authuser']	!=	1)	{
				echo	'Sorry,	but	you	don't	have	permission	to	view	this	page!';
				exit();
}
?>
<html>
<head>
<title> My Movie Site - <?php echo $_GET['favmovie']; ?> </title>
</head >
<body>
<?php
	 	 	 echo	'Welcome	to	our	site,	';
	 	 	 echo	$_SESSION['username'];
	 	 	 echo	'!	<br/>';
echo 'My favorite movie is ';
echo $_GET['favmovie'];
echo ' <br/> ';
$movierate = 5;
echo 'My movie rating for this movie is: ';
echo $movierate;
PHP avScg;xpfrsm;30
rZÑdr pmay
		 ?>
	 </body>
</html>
Save လုပ္ၿပီးေတာ႔ movie1.php ကို ဖြင္႔ၿပီး click လုပ္လိုက္ရင္ ေအာက္က
ပံုအတိုင္းထြက္လာပါမယ္။
How it works
	 အေရးႀကီးတာကို မေမ႔နဲ႔ေနာ္။ session ကို ေရးမယ္ဆုိရင္ ကိုယ္ေရးမယ္႔ script ရဲ႕
ထိပ္ဆံုးမွာ ေရးရတယ္။ ခု ဒီ ပရိုဂရမ္ မွာဆုိရင္ movie1.php ကေန request လုပ္လာတာကို
moviesite.php ရဲ႕ ထိပ္ဆံုးက session က if နဲ႔ စစ္ပါတယ္။ if ရဲ႕ အလုပ္လုပ္ပံုက
ေအာက္ပါအတုိင္းျဖစ္ပါတယ္။ သူ႕ရဲ႕ condition က if(conditional statement){statement}
ျဖစ္ပါတယ္။ ဥပမာ ေလး တစ္ခု နဲ႔ လုပ္ၾကည့္မယ္ေလ။ အစဆိုေတာ႔ လြယ္လြယ္ကူကူေပါ႔ဗ်ာ။
31udkausmf
rZÑdr pmay
<?php
if (1+3 ==4){
echo 'Summation is true.';
}
?>
အဲဒါကို run လုိက္ရင္ browser ကေန Summation is true ဆိုတာကို ျပမွာပါ။ အလုပ္လုပ္ပံုက
if ဆိုတဲ႔အတိုင္း ျဖစ္လွ်င္ေပါ႔ ဗ်ာ... 1+3==4 ျဖစ္လွ်င္ Summation is true ဆိုတာကို echo နဲ႔ output
ထုတ္ထားတာပါ။ 1+3==5 ဆိုရင္ ဘာမွ ျပမွာမဟုတ္ပါဘူး ။ ဟုတ္မွမဟုတ္တာကိုး။ ဘာျဖစ္လို႔ ==
ႏွစ္ခါသံုးရတာလဲ ဆုိရင္ PHP မွာ သံုးရမယ္႔ Comparison operators ကို ရွင္း ျပပါမယ္။
Comparison operators
== :Values are equal
=== : Values are identical
!= :Values are not equal
!== :Values are not identical
< :value 1 is less than value 2
> :value 1 is greater than value 2
<= :value 1 is less than or equal to value 2
>= :value 1 is greater than or equal to value 2
ဒီေနရာမွာ ေသခ်ာ မွတ္ထားရမွာက equal ဆိုတာနဲ႔ identical ဆုိတာ မတူပါဘူး။ identical
မွာဆိုရင္ variable ရဲ႕ value ေရာ datatype ေရာ တူပါတယ္။ equal မွာကေတာ႔ value ဘဲတူတာပါ။
အခု moviesite.php မွာ ျပင္ေရးလိုက္တဲ႔ ဟာကို ျပန္ရွင္းပါမယ္။
PHP avScg;xpfrsm;32
rZÑdr pmay
	 if($_SESSION['authuser'] !=1) ဆိုတာက movie1.php file ကေန request လုပ္လာတာမွာ
authuser =1 မဟုတ္ဘူးဆုိရင္ ဆိုတဲ႔ အဓိပၸာယ္ရပါတယ္။ လိုရင္းေျပာရရင္ 1 ျဖစ္မွ ရမယ္ဆိုေပါ႔ဗ်ာ။
1 မဟုတ္ဘူးဆိုရင္ {} ကြင္းထဲကဟာကို ဆက္ Run မွာပါ။ အဲဒိမွာ သူက echo သံုးၿပီး သင္က 1
မဟုတ္တဲ႔အတြက္ ဒီ page ကို ၾကည့္ခြင္႔မရွိပါဘူး ဆိုၿပီး output ထုတ္ေပးတာပါ။ ၿပီးရင္ exit() func-
tion သံုးၿပီး ျပန္ထြက္သြားပါတယ္။
	 တကယ္လို႔ 1 ျဖစ္ခဲ႔မယ္ဆုိရင္ က်န္တဲ႔ code ေတြကို ဆက္ run မွာပါ။ အခုက 1 ျဖစ္ေနေတာ႔
ပထမဆံုး welcome to our site လာမယ္။ ေနာက္ၿပီးရင္ echo $_SESSION['username'] ကို
ကၽြန္ေတာ္တုိ႔က MgMg12345 လို႔သတ္မွတ္ခဲ႔တဲ႔အတြက္ MgMg12345 ဆိုၿပီးျပမယ္။ က်န္တာကေတာ႔
ေရွ႕က အတုိင္းဘဲ။
	 If , else if, while , do while, switch and break , For စတဲ႔ statement ေတြကို သူ႔ရဲ႕
သက္ဆုိင္ရာေနရာ ေရာက္မွ ကၽြန္ေတာ္ ရွင္းျပသြားပါမယ္။ Theory နဲ႔ Pratical ကို တစ္ခါတည္း
လုပ္သြားတာေပါ႔။ ဒါမွမဟုတ္ရင္ ခင္ဗ်ား ပ်င္းသြားမွာေပါ႔။
33udkausmf
rZÑdr pmay
Passing variables with cookies
Cookies ေတြမွာ ဘာေတြကို သိမ္းသလဲဆုိရင္ website ကို လာေရာက္တဲ႔သူရဲ႕ computer
information အနည္းငယ္ကို သိမ္းပါတယ္။ Theory အရဆုိရင္ေတာ႔ Cookies ေတြဟာ အသံုးျပဳသူရဲ႕
IP , operating system ေတြကို intercept လုပ္ႏိုင္ပါတယ္။ ဒါေပမယ္႔ cookies ေတြက storing infor-
mation ဘဲလုပ္ပါတယ္။ တစ္ခ်ဳိ႕သူေတြက ေတာ႔ ဒီ cookies technology နဲ႔ အသံုးျပဳသူရဲ႕ browsing
habits ေတြ ကို track လုပ္ပါတယ္။ ၿပီးေတာ႔ ဒီ cookies ေတြကို commonly name directory ထဲမွာ
သိမ္းထားတာျဖစ္တဲ႔အတြက္ hacker ေတြက hack လုပ္ၿပီးေတာ႔ ေသာ္လည္းေကာင္း တစ္ျခားသူက
မိမိကြန္ပ်ဴတာထဲက cookies ေတြကို တစ္နည္းနည္းျဖင္႔လာယူသြားလွ်င္ေသာ္ လည္းေကာင္း သင္႔ရဲ႕
အေရးႀကီးေဒတာေတြ ပါသြားႏိုင္ပါတယ္။ ဒါေၾကာင္႔ တစ္ခ်ဳိ႕သူေတြကေတာ႔ Browser က cook-
ies ကို disable ေပးထားေလ႔ရွိပါတယ္။ ဒီလိုမ်ဳိး ျဖစ္ပ်က္ႏိုင္တာေတြေၾကာင္႔ တကယ္႔ အေရးႀကီး
ေဒတာေတြ (ဥပမာ - Credit card information ) စတာေတြကို ကြန္ပ်ဴတာထဲမွာ သိမ္းဆည္း မထားဖို႔
အႀကံေပးလိုပါတယ္။
Cookies နဲ႔ပါတ္သတ္ၿပီး ပိုသိခ်င္ရင္ security risk ေတြကို ပို သိခ်င္ရင္ ေအာက္က website
ကို သြားေရာက္ ေလ႔လာႏိုင္ပါတယ္။
www.w3.org/Security/faq/wwwsf2.html#CLT-Q10
ဒီလိုဆုိရင္ ဘာျဖစ္လို႔ developer သမားေတြက cookies ကို သံုးေနၾကေသးလဲ။ cook-
ies ကို သံုးျခင္းျဖင္႔ သတ္မွတ္ထားတဲ႔ အခ်ိန္ထိ information ကို သိမ္းထားလို႔ရပါတယ္။ Ses-
sion ကို သာသံုးမယ္ဆုိရင္ Browser ကို ပိတ္လိုက္တာနဲ႔ သူ႕ရဲ႕ life ကလည္း ကုန္ၿပီေလ။ cookies
ကေတာ႔ အဲလို မဟုတ္ပါဘူး။ Session ကိုသာ cookies နဲ႔ တြဲသံုးမယ္ဆုိရင္ browser life ထက္ ပို
ၾကာရွည္ခံေအာင္သံုးႏိုင္ပါတယ္။
ဟုတ္ၿပီ။ ခု cookie ကို ဘယ္လို သတ္မွတ္မလဲ။ လြယ္ပါတယ္။ setcookie() ေပါ႔။ ဒါလည္း
PHP function တစ္ခုပါဘဲ။ cookie တစ္ခု သတ္မွတ္မယ္ဆုိရင္ ေအာက္က အခ်က္ေတြကို အရင္ဆံုး
စဥ္းစား ဖုိ႔လိုပါတယ္။
1. Cookie name
2. Value of the cookie name (eg. username)
3. Cookie life time (in seconds) UNIX timestamp ေပၚမွာ အေျခခံထားပါတယ္။
PHP avScg;xpfrsm;34
rZÑdr pmay
ဒါေပမယ္႔ ခုလို ေရးလို႔ရပါ တယ္။ time()+60*60*24*365 ဒါဆုိရင္ သူ႔ရဲ႕ သက္တမ္းက ၁
ႏွစ္စာျဖစ္ပါတယ္။
4. Path ( cookie ကို သိမ္းမယ္႔ေနရာ)
5. Domain ( ဒီ cookie ကို လက္ခံႏိုင္တဲ႔ domain) (ဒီဟာက optional ျဖစ္ပါတယ္။
မသတ္မွတ္လည္းရတယ္)
6. Cookie မွာ secure connection HTTPS ကို on ေပးထားရမယ္။
အဲဒိေတာ႔ ဒီလိုပံုစံျဖစ္မွာေပါ႔။
setcookie ($name[, $value[, $expire[, $path[, $domain[, $secure]]]]])
ခုလည္း $_COOKIE['cookiename'] ကို သံုးမွာပါဘဲ။ ခု လုပ္မယ္႔ ပရိုဂရမ္မွာဆုိရင္
MgMg12345 ဆုိတဲ႔ user ဟာ ဒီ site ကို လာတုိင္း သူ႔ရဲ႕ username ကို type လုပ္စရာမလိုဘဲ
ေအာ္တို ျဖည့္ေပးမွာျဖစ္ပါတယ္။ movie1.php file ကိုဘဲ နည္းနည္းေလး ထပ္ ျပင္ ေရးၾကည့္တာေပါ႔။
<?php
setcookie('username', 'MgMg', time() + 60);
session_start();
//delete this line: $_SESSION['username'] = 'MgMg12345';
$_SESSION['authuser'] = 1;
?>
<html>
<head>
<title> Find my Favorite Movie! </title>
</head>
<body>
<?php
$myfavmovie = urlencode('Enemy at the gate');
echo " <a href="moviesite.php?favmovie=$myfavmovie"> ";
echo 'Click here to see information about my favorite movie!';
echo ' </a> ';
?>
</body>
</html>
setcookie('username', 'MgMg', time() + 60);
35udkausmf
rZÑdr pmay
ၿပီးေတာ႔ ထံုးစံအတိုင္း moviesite.php file ကို နည္းနည္းေလး ထပ္ျပင္ေရးမယ္
<?php
session_start();
//check to see if user has logged in with a valid password
if ($_SESSION['authuser'] != 1) {
echo 'Sorry, but you don't have permission to view this page!';
exit();
}
?>
<html>
<head>
<title> My Movie Site - <?php echo $_GET['favmovie']; ?> </title>
</head >
<body >
<?php
echo 'Welcome to our site, ';
echo $_COOKIE['username'];
echo '! <br/> ';
echo 'My favorite movie is ';
echo $_GET['favmovie'];
echo ' <br/> ';
$movierate=5;
echo 'My movie rating for this movie is: ';
echo $movierate;
?>
</body >
</html>
ဒီလိုဆိုရင္ ေအာက္ပါပံုေတြအတုိင္းျမင္ရမွာပါ။
PHP avScg;xpfrsm;36
rZÑdr pmay
	 အထက္က ပရိုဂရမ္ဟာ cookies life time ကို 60 seconds ဘဲ သတ္မွတ္ထားတာပါ။
ကိုယ္႔ဟာကို စိတ္ၾကိဳက္ ျပင္ၾကည့္ၿပီးေလ႔က်င္႔ၾကည့္ပါ။
37udkausmf
rZÑdr pmay
Passing information with Forms
Form ပံုစံကို နည္းနည္းေလာက္ ေလ႔လာၾကည့္ရေအာင္ ။ သူ႔ကို စတင္ေတာ႔မယ္ဆုိရင္
(၁) <form> နဲ႔ စတင္ၿပီး action and method ဆိုတဲ႔ attribute ပါပါတယ္။ action အေနနဲ႔
URL တစ္ခုကို ေပးႏိုင္ၿပီး method အေနနဲ႔ GET or POST တစ္ခုခုကို သံုး
ႏိုင္ပါတယ္။
(၂) input fields မ်ားပါပါတယ္။ အသံုးမ်ားတာေတြကေတာ႔
TEXT: min 2 characters to 2000 characters အထိ သံုးႏိုင္ပါတယ္။ ဒိထက္
ပိုမ်ားမ်ားသံုးခ်င္ရင္ေတာ႔ textarea ဆိုတဲ႔ ဟာကို သံုးရပါမယ္။
Check box : user ေတြကို Choice လုပ္ဖုိ႔ရန္အတြက္ျဖစ္ပါတယ္။ choice ကို
တစ္ခုထက္မက ေရြးခ်ယ္ႏိုင္မွာျဖစ္ပါတယ္။
Radio: radio button ကလည္း list ထဲကေန ေရြးခ်ယ္ဖို႔ဘဲျဖစ္ပါတယ္။ ဒါေပမယ္႔
သူက တစ္ခုဘဲ ေရြးလို႔ရမွာျဖစ္ပါတယ္။
Select:ဒီေကာင္႔ကိုေတာ႔ေတာ္ေတာ္မ်ားမ်ားကDropdownboxအျဖစ္သိၾကပါတယ္။
Passwords: သူ႔ကိုေတာ႔ user က ဘာရိုက္တယ္ဆုိတာကို Hide
လုပ္ထားရမွာျဖစ္ပါတယ္။
Using forms to get information
movie1.php file ကိုဘဲ နည္းနည္းေလး ထပ္ၿပီး ျပင္ေရးၾကည့္မယ္ေလ။ ျပင္ရင္းျပင္ရင္း
ေတာ္ေတာ္ေတာင္ မ်ားလာၿပီေနာ္။ ကၽြန္ေတာ္ေျပာခ်င္တာက မ်ားလာၿပီဆုိေတာ႔ Comment
ေလးေတြ ေသခ်ာေရးဖုိ႔ ပါ။ ေအာက္မွာ ျပထားတဲ႔ Code ေလးေတြကို ေသခ်ာ ေလ႔လာၾကည့္ပါ။
PHP avScg;xpfrsm;38
rZÑdr pmay
<?php
	 //delete this line: setcookie('username', 'MgMg', time() + 60);
	 session_start();
	 $_SESSION['username'] = $_POST['user'];
	 $_SESSION['userpass'] = $_POST['pass'];
	 $_SESSION['authuser'] = 0;
	 //Check username and password information
	 if (($_SESSION['username'] == 'MgMg') and
	 ($_SESSION['userpass'] == '12345')) {
	 $_SESSION['authuser'] = 1;
	 } else {
	 echo 'Sorry, but you don't have permission to view this page!';
	 exit();
	 }
?>
<html>
<head >
<title> Find my Favorite Movie! </title >
</head >
<body>
	 <?php
		 $myfavmovie = urlencode('Enemy at the gate');
		 echo " <a href="moviesite.php?favmovie=$myfavmovie"> ";
		 echo "Click here to see information about my favorite movie!";
		 echo " </a> ";
	 ?>
</body>
</html>
ျပီးသြားရင္ moviesite.php ကို နည္းနည္း ထပ္ျပင္ေရးပါဦးမယ္။
	 <?php
		 session_start();
//check to see if user has logged in with a valid password
		 if ($_SESSION['authuser'] !=1 ) {
		 echo 'Sorry, but you don't have permission to view this page!';
		 exit();
39udkausmf
rZÑdr pmay
}
?>
<html>
<head>
<title> My Movie Site - <?php echo $_GET['favmovie']; ?> </title>
</head>
<body>
<?php
echo 'Welcome to our site, ';
//delete this line: echo $_COOKIE['username'];
echo $_SESSION['username'];
echo '!<br/>';
echo 'My favorite movie is ';
echo $_GET['favmovie'];
echo ' <br/> ';
$movierate = 5;
echo 'My movie rating for this movie is: ';
echo $movierate;
?>
</body>
</html>
ၿပီးသြားရင္ Login form တစ္ခု တည္ေဆာက္ပါမယ္။ text editor မွာ new document လုပ္ပါ။ File
name ကို login.php လုိ႔ နာမည္ေပးပါမယ္။
<?php
session_unset();
?>
<html>
<head>
<title>Please Log In</title>
</head>
<body>
<form method="post" action="movie1.php">
<p> Enter your username:
<input type="text" name="user"/>
</p>
<p> Enter your password:
PHP avScg;xpfrsm;40
rZÑdr pmay
			 <input type="password" name="pass"/>
			 </p>
			 <p>
			 <input type="submit" name="submit" value="Submit"/>
			 </p>
		 </form>
	 </body>
</html>
ၿပီးသြားရင္ login.php file ကို ေခၚၾကည့္ပါမယ္။ ေအာက္ကပံုအတိုင္း ျမင္ရမွာပါ။
username ေနရာမွာ mgmg12345 password ကို 12345 ဆိုၿပီး၀င္ၾကည့္ပါ။
၀င္လုိ႔ရမွာမဟုတ္ပါဘူး။ username မွားေနတဲ႔အတြက္ ျဖစ္ပါတယ္။ Authorization scripts
အလုပ္လုပ္တယ္ေပါ႔ဗ်ာ။
41udkausmf
rZÑdr pmay
အခု login name "MgMg" and password "12345" နဲ႔၀င္ၾကည့္ပါ။ ၀င္လုိ႔ရသြားတာကို
ေတြ႕ရပါမယ္။
How it works
ပထမဆံုးအလုပ္လုပ္တာက login.php ေလ ။ ဟုတ္တယ္မလား။ သူ႔ထဲမွာ ဘယ္ page
ကဘဲလာတဲ႔ session ေတြထဲက variables ေတြကို unset လုပ္လိုက္ပါတယ္။ အဲဒါကို session_un-
set() ဆိုတဲ႔ function နဲ႔ လုပ္လိုက္တာပါ။ ၿပီးရင္ variables ၂ ခုျဖစ္တဲ႔ username and password
(user and password respectively) ကို ေမးပါတယ္။ ၿပီးရင္ ရလာတဲ႔ variables ၂ ခုကို movie1.
php ကို ပို႔ေပးပါတယ္။ အဲလို ပို႔တဲ႔ေနရာမွာ POST method ကို သံုးၿပီးပို႔ပါတယ္။ အဲဒါေၾကာင္႔ movie1.
php မွာ $_POST syntax ကို ေတြ႕ရတာျဖစ္ပါတယ္။ ခု ဒီေလာက္ သိရင္ ရပါၿပီ။ ေနာက္ အခန္းေတြမွာ
လက္ေတြ႕ေလ႔က်င္႔ခန္းေတြ လုပ္ရင္းနဲ႔ ပိုၿပီးနားလည္လာပါမယ္။
movie1.php fileက တကယ္ေတာ႔ ေအာက္ပါလုပ္ငန္းစဥ္မ်ားကို လုပ္ေဆာင္သြားပါတယ္ -
(၁) Session ကို စတင္ေပးတယ္။ default အားျဖင္႔ login က ရလာတဲ႔ variables ေတြကို
register လုပ္ေပးတယ္။
(၂) Usernameand password ကို accept လုပ္ႏိုင္လား မလုပ္ႏိုင္ဘူးလား စစ္ေပးတယ္။
(၃) တကယ္လို႔ username and password ၂ ခုလံုးကို လက္ခံတယ္ဆုိရင္ autheruser ကို 1
အျဖစ္ သတ္မွတ္ ေပးၿပီးေတာ႔ other pages ေတြကို access ေပးပါတယ္။
PHP avScg;xpfrsm;42
rZÑdr pmay
(like moviesite.php)
	 (၄) တကယ္လို႔ username and password က မွားတယ္ဆုိရင္ error message ကို
ျပေပးပါတယ္။
Using if / else arguments
	 ခု if/elsearguments ကိုရွင္းပါမယ္။ ေရွ႕မွာတုန္းကေတာ႔ နည္းနည္း ရွင္းခဲ႔ေသး တယ္ေလ။
မွတ္မိမယ္ထင္တယ္။ if ကို ဘာျဖစ္လို႔ သံုးရတာလဲ။ ဟုတ္ကဲ႔ ဒီလိုပါ။ ကၽြန္ေတာ္တုိ႔ဟာ ခုဆုိရင္ val-
ues အမ်ဳိးမ်ဳိးကို variables ေတြနဲ႔ ျပႏိုင္လာၿပီျဖစ္ပါတယ္။ တစ္ခ်ဳိ႕ variable ေတြကို specific action
လုပ္ခ်င္တဲ႔အခါမ်ဳိးမွာ if ကို သံုးပါတယ္။ ဥပမာ $password ဆိုတဲ႔ variable ေပါ႔။ user ကို password
ေတာင္းမယ္။ user က ထည့္မယ္။ မွန္ရင္ site ထဲကို ၀င္ခြင္႔ေပးမယ္။ မမွန္ဘူးဆုိရင္ user ကို kick out
ဒါမွမဟုတ္ site ထဲကို ၀င္ခြင္႔မေပးဘူး။ if ကို else ထပ္ေပါင္း ေပးလိုက္မယ္ဆုိရင္ the whole range
of possible actions ေတြကို ထိန္းႏိုင္မွာပါ။
	
Using if statements
	
	 Basic if statement က ေအာက္ေဖာ္ျပပါ အတုိင္းျဖစ္ပါတယ္
	 if (condition) action to be taken if true.
	 ဥပမာ အေနနဲ႔ -
	 if ($stockmarket >1000) echo 'Wharr.... Time to Party';
	 တကယ္လို႔ simple statement ထက္ ပို ရွည္တယ္ဆုိရင္ေတာ႔ {} ကို သံုးရမွာပါ။ ဒီ အဖြင္႔
အပိတ္ေတြကို ေသခ်ာ ဂရုစိုက္ဖုိ႔လိုပါတယ္။ ေအာက္ေဖာ္ျပပါ နမူနာကို ၾကည့္ပါ။
	 if ($stockmarket > 10000) {
		 echo 'Wharr .....Time to Party!';
		 $mood = 'happy';
		 $retirement = 'potentially obtainable';
	 }
43udkausmf
rZÑdr pmay
အခု ကၽြန္ေတာ္တုိ႔ လက္ေတြ႕ေလ႔က်င္႔ဖုိ႔ လုပ္ပါမယ္။ text editor ကိုဖြင္႔ပါ။ new document
လုပ္ပါ။ date.php လို႔ နာမည္ေပးပါ။ ၿပီးရင္ ေအာက္က code ေတြအတုိင္း လိုက္ေရးၾကည့္ပါ။
<html>
<head>
<title> How many days in this month? </title>
</head>
<body>
<?php
date_default_timezone_set('Asia/Yangon');
$month = date('n');
if ($month == 1) { echo '31'; }
if ($month == 2) { echo '28 (unless it's a leap year)'; }
if ($month == 3) { echo '31'; }
if ($month == 4) { echo '30'; }
if ($month == 5) { echo '31'; }
if ($month == 6) { echo '30'; }
if ($month == 7) { echo '31'; }
if ($month == 8) { echo '31'; }
if ($month == 9) { echo '30'; }
if ($month == 10) { echo '31'; }
if ($month == 11) { echo '30'; }
if ($month == 12) { echo '31'; }
?>
</body>
</html>
PHP avScg;xpfrsm;44
rZÑdr pmay
	 ကၽြန္ေတာ္ ဒီစာအုပ္ေရးေနတဲ႔ အခ်ိန္က စက္တင္ဘာလ ျဖစ္တဲ႔အတြက္ 30 လို႔
ျပေနတာပါ။
How it works
	 အရင္ဆံုးdate_default_timezone_set ဆိုတဲ႔ date function တစ္ခု နဲ႔ ကိုယ္ေရာက္ရွိေနတဲ႔
ေဒသေပၚမူတည္ၿပီး time zone သတ္မွတ္တာပါ။ အေမရိကား နယူးေယာက္ မွာဆုိရင္ ('America/
New_York') လို႔ သတ္မွတ္ရမွာပါ။ ကၽြန္ေတာ္တုိ႔ ေရးလိုက္တဲ႔ script က $month ဆိုတဲ႔ variable ကို
ယူပါတယ္။ ၿပီးေတာ႔ PHP date function ေတြထဲက တစ္ခုျဖစ္တဲ႔ date('n') ဆိုတဲ႔ value နဲ႔ assign
လုပ္ေပးလို္က္ပါတယ္။ ဒီ script က ဆာဗာ ရဲ႕ အခ်ိန္ကို ၾကည့္ပါတယ္။ ဒီေနရာမွာ တစ္ခု ေျပာခ်င္တာက
date function ကိုက 1 for january , 2 for february စသျဖင္႔ သိပါတယ္။ ေတာ္ေနၾကာ ဘယ္က
ဘယ္လို သိတာလဲ ဦးေဏွာက္စားေနမွာစိုးလို႔ပါ။ date function ကိုလည္း ေနာက္ပိုင္း အခန္းေတြမွာ
အက်ယ္တ၀န္႔ ရွင္းပါဦးမယ္။
	 ဒီ script မွာ if statement သံုးၿပီး မွန္တဲ႔ အထိ စစ္ပါတယ္။ ပထမဆံုး if statement က False
ျဖစ္သြားတယ္ဆုိရင္ေနာက္ ထပ္ statement တစ္ခုကို ခ်က္ျခင္းစစ္ပါတယ္။ ဒီလိုနဲ႔ True ျဖစ္တဲ႔အထိ
စစ္ပါတယ္။
	 Using if and else together
	 သူ႕ရဲ႕ပံုစံေလးကေတာ႔ေအာက္ပါအတုိင္းျဖစ္ပါတယ္။အက်ယ္တ၀န္႔ေတာ႔မရွင္းေတာ႔ဘူးေလ။
တစ္ခု မဟုတ္ရင္ တစ္ခု ဆုိတဲ႔ အဓိပၸာယ္ရပါတယ္။
	
	 <?php
		 $test = 5;
		 if($test < 15) {
			 echo 'The condition was met';
		 } else {
			 echo 'The condition was not met';
		 }	
	 ?>
45udkausmf
rZÑdr pmay
အထက္က ပရိုဂရမ္ေလးကို ၾကည့္မယ္ဆုိရင္ $test ဆိုတဲ႔ variable တန္ဖုိးကို 5 လို႔
သတ္မွတ္လိုက္တယ္။ ၿပီးေတာ႔ if statement နဲ႔ စစ္ၾကည့္လိုက္တယ္။ စစ္ၾကည့္တယ္ဆိုတာ ကိုယ္
output လုပ္ခ်င္တဲ႔ data အတြက္ ျဖစ္ပါတယ္။ $test က 15 ထက္ငယ္တယ္ဆုိရင္ The condition
was met ကို ထုတ္ေပးမွာပါ။ မငယ္ဘူးဆုိရင္ေတာ႔ The condition was not met ဆိုတဲ႔ စာေၾကာင္းကို
ထုတ္ေပးမွာပါ။ $test = 20 လို႔သာေပးခဲ႔မယ္ဆုိရင္ ဒုတိယ output ကို ထုတ္ေပးမွာပါ။
တကယ္လို႔ ကုိယ္ေပးခ်င္တဲ႔ message က အေျခအေန ၂ ခုထက္ပိုရင္ ဘယ္လိုလုပ္မလဲ ။
ရပါတယ္။ အဲဒိအခါမွာ if ရယ္ else ရယ္ၾကားမွာ else if ကို ထည့္သြင္း အသံုးျပဳႏိုင္ပါေသးတယ္။
ေအာက္က နမူနာေလးကို ေလ႔လာၾကည့္ရေအာင္။
<?php
$age = 20;
if($age < 18) {
echo "Not old enough to vote or drink! <br />";
} else if ($age < 21) {
echo "Old enough to vote, but not to drink. <br />";
} else { // If we get here, $age is >= 21
echo "Old enough to vote and drink! <br />";
}
?>
အေပၚက code ကိုေလ႔လာၾကည့္ရင္ အသက္ ၁၈ ႏွစ္ေအာက္ဆုိရင္ vote or drink ၂ ခုလံုး
လုပ္လို႔မရဘူး။ တကယ္လို႔ ၂၁ ႏွစ္ေအာက္ဆုိရင္ေတာ႔ ( ၁၈ ႏွစ္ နဲ႔ ၂၁ ႏွစ္ၾကားျဖစ္သြားတာေပါ႔)
ေသာက္လုိ႔မရဘူး။ ေအာက္ဆံုး တစ္ခုက ေတာ႔ ၂ ခုလံုးလုပ္လုိ႔ရၿပီေပါ႔။ $age=20 ဆိုတဲ႔ ေနရာမွာ
အသက္ အမ်ဳိးမ်ဳိးကို ေျပာင္းလဲ ေလ႔က်င္႔ၾကည့္ပါ။
PHP avScg;xpfrsm;46
rZÑdr pmay
While and do-while
	 while loop က ဘယ္လို လုပ္ေပးလဲဆုိရင္ code block တစ္ခုကို True မျဖစ္မခ်င္း repeat
လုပ္ေပးပါတယ္။ နမူနာေလးနဲ႔တြဲေလ႔လာလိုက္ရင္ ပိုနားလည္သြားမွာပါ။
	 <?php
		 $i = 0;
    	 	 while($i<3) {
		 echo "Count is at $i. <br />";
		 ++$i;
		 }
	 ?>
	 အထက္ကပံုစံမွာဆုိရင္ ကၽြန္ေတာ္တုိ႔က counter variable $i ကို သံုးထားပါတယ္။ သူ႕ရဲ႕
ကနဦးတန္ဖုိးကို သုည 0 ေပးထားလိုက္ပါတယ္။ ေနာက္ၿပီးေတာ႔ while loop ထဲထည့္ သံုးလိုက္ပါတယ္။
ဘယ္ အေျခအေနထိ ဒီကုဒ္ ကို Run မွာလဲဆုိေတာ႔ <3 ထိ ပါ။ ဘယ္က စမွာလဲဆုိေတာ႔ သုည ကပါ။
while နဲ႔စစ္မယ္။ ပထမဆံုးက သုည ..အုိေက မွန္တယ္ ဘာျဖစ္လို႔လဲဆုိေတာ႔ 3 ထက္ငယ္တယ္ေလ။
ဒီေတာ႔ ပထမဆံုး output အေနနဲ႔ Count is at 0. ျဖစ္မယ္။ ဒုတိယအေနနဲ႔ 1 တတိယအေနနဲ႔ 2
အထိမွန္တယ္။ စတုတၳအေနနဲ႔ 3 ၾကေတာ႔ မမွန္ေတာ႔ဘူး။ ဘာျဖစ္လုိ႔လဲဆိုေတာ႔ <3 ဆိုတာ 3 နဲ႔
ညီလို႔မရဘူး။ ငယ္ကိုငယ္ရမွာ။ ဒီလိုမ်ဳိး ပထမက 0 ဒုတိယက 1 တတိယက 2 ဆိုတာ ဘယ္လို လုပ္
ကြန္ပ်ဴတာက သိလဲ။ ဟုတ္ကဲ႔... ++$i ဆိုတဲ႔ဟာနဲ႔ ေဖာ္ျပတာပါ။ ထြက္လာတဲ႔ တန္ဖုိးကုိ 1 ေပါင္း
ေပးတာပါ။
	 ဒီ script ကို run လိုက္ရင္ Browser မွာ ဒီလို ေပၚမွာပါ။
	
	 Count is at 0.
	 Count is at 1.
	 Count is at 2
	
	 မွတ္ခ်က္။ သင္႔ အေနနဲ႔ မွတ္ထားရမွာက condition က မကိုက္ညီႏိုင္ဘူးဆုိရင္ loop က ex-
cute လုပ္ေပးမွာ 	 မဟုတ္ပါဘူး။ $i=4 ဆိုရင္ ဘာ output မွ ထြက္လာမွာမဟုတ္ပါဘူး။
47udkausmf
rZÑdr pmay
do-while loop
<?php
	 	 $i=10;
	 	 do{
echo "The count is at $i.";
++$i;
	 	 }while(i<5);
?>
ဒီပံုစံမွာဆုိရင္ do ဆုိေတာ႔ လုပ္ပါေပါ႔။ ဘာလုပ္ခိုင္းလဲဆုိရင္ output အေနနဲ႔ $i value
ကို ထုတ္ခိုင္းတယ္။ ၿပီးေတာ႔ while loop ကို ဆက္ဆင္းတယ္။ အဲဒိမွာၾကေတာ႔ ဘာ output မွ
မထြက္ေတာ႔ဘူးေလ။ initial value ကိုက 10 ျဖစ္ေနၿပီ။ while မွာေပးထားတဲ႔ condition က < 5
ဆိုေတာ႔ ဘာ မွ ထြက္လာမွာမဟုတ္ဘူး။ Output အေနနဲ႔ The count is 10. ဆိုၿပီး ေပၚလာမွာပါ။
FOR loop
for loop ဆိုတာ PHP program ရဲ႕ အသံုးမ်ားဆံုး statement ေတြထဲက တစ္ခု
အပါ၀င္ျဖစ္ပါတယ္။ သူ႔ အေနနဲ႔ expression ၃ ခု ကို လက္ခံႏိုင္ပါတယ္။ Expression 1 အေနနဲ႔ loop
ရဲ႕ အစ တန္ဖုိးကို ေဖာ္ျပတာျဖစ္ၿပီး Expression 2 အေနနဲ႔ကေတာ႔ expression 1 အေပၚအေျခခံကာ
iteration method သံုးၿပီး တြက္ခ်က္မွာ ျဖစ္ပါတယ္။ True value ေတြကိုဘဲ တြက္မွာျဖစ္ၿပီး False
ျဖစ္သြားတဲ႔အခါမွာ ရပ္သြားမွာျဖစ္ပါတယ္။ Expression 3 အေနနဲ႔ကေတာ႔ iteration တစ္ခုစီရဲ႕ end
of iteration ျဖစ္ပါတယ္။ ဒီလိုေျပာေနေတာ႔ နည္းနည္း ရႈပ္သြားသလို ခံစားရမယ္။ မရႈပ္ဘူးေနာ္။
ေအာက္က နမူနာပံုစံေလးကိုၾကည့္လိုက္။ လြယ္မွလြယ္။ ေျပာဖုိ႔က်န္သြားတယ္။ Expression တစ္ခုစီမွာ
အစိတ္အပိုင္း တစ္ခု ထက္မက ပါႏိုင္ပါတယ္။ ပါလာခဲ႔ရင္ comma (,) နဲ႔ ခံေပးရပါမယ္။ Expression
တစ္ခုနဲ႔တစ္ခုၾကားမွာေတာ႔ semicolon (;) နဲ႔ ခံေရးေပးရပါတယ္။
PHP avScg;xpfrsm;48
rZÑdr pmay
	 <?php
	 	 for($i=0; $i<5; ++$i){
			 echo "The count is $i <br />";
		 }
	 ?>
	 ဒါဆုိရင္ အဲဒိ script ကို run မယ္ဆုိရင္ browser က ေအာက္ပါအတုိင္း ျပေပးမွာပါ။
	
	 The count is 0
	 The count is 1
	 The count is 2
	 The count is 3
	 The count is 4
	
FOREACH loop
	
	 foreach ဆိုတဲ႔ အတုိင္း သူလည္းဘဲ တစ္ခုခ်င္းစီအတြက္ သံုးတာေပါ႔ဗ်ာ။ ဒီ foreach က ar-
rays နဲ႔ တြဲသံုးရင္ very powerfull ျဖစ္တယ္ဗ်။ နမူနာေလးနဲ႔ဘဲျပမယ္ဗ်ာ။ ေရွ႕ခန္း က array ကိုေသခ်ာ
နားလည္ခဲ႔ရင္ လြယ္ပါတယ္။
	 <?php
	 	 $bands = array(
	 	 	 	 "IronCross", "Emperor", "LazyClub", "Aurora"
				 );
	 	 foreach($bands as $band) {
        		 	 echo $band, "<br />";
		 }
	 ?>
	 ဘယ္လို အလုပ္သြားသလဲဆုိရင္ $bands ဆုိတဲ႔ variable နဲ႔ array တစ္ခု နဲ႔
တည္ေဆာက္လိုက္တယ္။ ၿပီးေတာ႔ foreach နဲ႔ loop ပတ္လိုက္တယ္။ $bands as $band ဆိုတာမွာ
as = alias name (နာမည္ခြဲ ေပါ႔ ဗ်ာ) ။ array ထဲက value တစ္ခု စီကို variable တစ္ခု စီ အျဖစ္
49udkausmf
rZÑdr pmay
သတ္မွတ္လိုက္တယ္။ အဲဒိေတာ႔ ဘယ္လိုျဖစ္သြားမလဲ။ ျမင္သာေအာင္ ရွင္းျပရရင္ $band = Iron-
Cross ေနာက္တစ္ခါ ထပ္ပတ္ျပန္ေတာ႔ $band = Emperor ..and so on ေပါ႔ဗ်ာ။ အဲဒိေတာ႔ output
ထုတ္လိုက္ရင္ Browser က ေအာက္ပါအတုိင္း ျပပါလိမ္႔မယ္။
IronCross
Emperor
LazyClub
Aurora
foreach loop ရဲ႕ လွပၿပီး အသံုး၀င္တဲ႔ ပံုစံေလးတစ္ခုကို နည္းနည္းေလး ထဲထဲ၀င္၀င္
ထပ္ေလ႔လာၾကည့္ရေအာင္။ ေအာက္က ပံုစံေလးကိုၾကည့္ၾကည့္ပါ။
<?php
		 	 $person	=	array(	
								 	 	 	 'name'	=>	'Kokyaw',	
								 	 		 	 'age'	=>	23,	
'passion' => 'craft beer'
);
		 	 foreach($person	as	$key	=>	$value)	{	
echo "His $key is $value. <br />";
}
?>
အထက္က script ကို run လိုက္ရင္ ေအာက္ပါ အတုိင္း browser က ထုတ္ေပးမွာပါ။
His name is Kokyaw.
His age is 23.
His passion is craft beer.
PHP avScg;xpfrsm;50
rZÑdr pmay
	 Break
	 ဘယ္ loop မွာ မဆို break function သံုးၿပီး လိုခ်င္တဲ႔ ေနရာမွာ ရပ္တန္႔လို႔ရပါတယ္။ ဥပမာ-
		
		 while($i<10) {
			 if($i == 7) {
	 		 break; // Exit the while loop
		 	 }
		 }
	 ဒီမွာဆုိရင္ while and if ကို တြဲသံုးသြားတာ ေတြ႕ရပါမယ္။ break က loop မဟုတ္ဘဲ loop ကို
အေျခအေနတစ္ခုမွာ ရပ္တန္႔ေပးတယ္ဆုိတာကို မွတ္ထားဖုိ႔လုိပါတယ္။ $i ==7 ဆိုတဲ႔ ေနရာမွာ loop
က ရပ္သြားမွာပါ။ ရပ္ၿပီးသြားတာနဲ႔ loop ကိေန ထြက္သြားမွာ ျဖစ္ပါတယ္။
	 Switch
	
Switch statement ကို codition 2 ခုထက္ ပိုတဲ႔ အခါမ်ဳိးမွာ သံုးေလ႔ရွိပါတယ္။ သူ႔ကို case နဲ႔ တြဲၿပီး
သံုးရပါတယ္။ ေမးစရာရွိလာပါတယ္။ if ကို သံုးရင္ေရာ မရဘူးတဲ႔လား။ ရပါတယ္ လို႔ဘဲေျဖရမွာဘဲ။
ဒါေပမယ္႔ codition အမ်ားႀကီးအတြက္ဆုိိရင္ switch ကို သံုးရတာ ပိုၿပီး လြယ္ကူျမန္ဆန္ပါတယ္။ case
တစ္ခုခ်င္းစီဟာ ဘာနဲ႔ သြားတူသလဲဆုိရင္ if function နဲ႔ သြားတူပါတယ္။ switch မွာ expression ကို
လက္ခံၿပီး case တစ္ခုခ်င္းစီနဲ႔ စစ္ပါတယ္။ မွန္သြားၿပီဆုိတဲ႔ case မွာ code ကို excute လုပ္ပါတယ္။
case တစ္ခုခ်င္းစီကို break statement or else statement နဲ႔ separate လုပ္ထားရပါမယ္။
နမူနာေလး တစ္ခုနဲ႔ ျပပါမယ္။ date ကို check လုပ္တဲ႔ script ေလးတစ္ခုေပါ႔။ ရိုးရိုးရွင္းရွင္းေလးနဲ႔
နားလည္လြယ္ပါတယ္။
	 <?php
	 	 $day = date('w');
	 	 switch($day)
	 	 {
			 case '0':
        	 	 	 	 echo "It's Sunday!";
				 break;
51udkausmf
rZÑdr pmay
					 	 	 case	'1':	
									 	 	 	 echo	"It's	Monday!";	
break;
					 	 	 case	'2':	
									 	 	 	 echo	"It's	Tuesday!";	
break;
					 	 	 case	'3':	
									 	 	 	 echo	"It's	Wednesday!";	
break;
			 	 	 case	'4':	
									 	 	 	 echo	"It's	Thursday!";	
break;
case '5':
									 	 	 	 echo	"Woohoo!	It's	Friday!";	
break;
case '6':
									 	 	 	 echo	"It's	Saturday!";	
break;
default:
									 	 	 	 echo	"That's	no	day	I	recognize...";	
break;
}
?>
ကၽြန္ေတာ္တုိ႔ အေပၚက script မွာဆုိရင္ date() function ကို ယူသံုးခဲ႔ပါတယ္။ $date
ဆိုတဲ႔ variable ရဲ႕ value ကို date() နဲ႔ ေပးခဲ႔တာပါ။ w ဆိုတာက week ကို ေျပာတာပါ။ ေနာက္ပိုင္း
အခန္းေတြမွာ လက္ေတြ႕လုပ္ရင္း နဲ႔ ပိုနားလည္မွာပါ။ ခုကေတာ႔ ဒီေလာက္ သိထားရင္ ရပါၿပီ။
PHP avScg;xpfrsm;52
rZÑdr pmay
Continue
	 contiune ရဲ႕ အလုပ္လုပ္ပံုက break ရဲ႕ အလုပ္လုပ္ပံုနဲ႔ ဆင္တူပါတယ္။
ျခားနားတာေလးတစ္ခုဘဲရွိတယ္။ အဲဒါက ဘာလဲဆုိေတာ႔ contiune ဟာ လက္ရွိ အေျခအေနမွာဘဲ
end ျဖစ္ပါတယ္။ ျပီးရင္ သူက Loop က ေန ျပန္မထြက္ သြားပါဘူး။ ဆက္ၿပီးေတာ႔ loop လုပ္ပါတယ္။
ဥပမာ အေနနဲ႔ ကၽြန္ေတာ္တုိ႔ စံု ဂဏန္းသီးသန္႔ ထုတ္ၾကည့္ ရေအာင္ ။
<?php
    for($i=0; $i<=10; ++$i) {
/*
         * If the modulus of $i and 2 is not zero (which evaluates
         * to false), we continue
*/
        if($i%2) {
continue;
}
        echo $i, " ";
}
?>
	 ဒီမွာဆုိရင္ for နဲ႔ if ကို တြဲသံုးထားပါတယ္။ For loop ထဲမွာ if statement ထည့္သံုးၿပီးေတာ႔
အေျခအေနကို စစ္ခိုင္းတာပါ။ $i%2 ဆိုတာက $i တန္ဖိုးကို ၂ နဲ႔ စားလို႔ ျပတ္ သြားရင္ continue
(loop ကို ဆက္ ၿပီးေတာ႔ ပတ္ခုိင္းတာပါ) လုပ္ခိုင္းပါတယ္။ " " ကို ထည့္သံုးလိုက္တာက space
ျခားေစခ်င္လုိ႔ပါ။ သူ႔ကို run လုိက္ရင္
	 0 2 4 6 8 10
	 ဆိုၿပီးရပါမယ္။
53udkausmf
rZÑdr pmay
return
return statement ဟာဆုိရင္ PHP မွာ most usefull statement လို႔ေတာင္ ေျပာလို႔ရပါတယ္။
သူ႔ရဲ႕ သေဘာတရားကေတာ႔ function တစ္ခုအတြင္း မွာထည့္သံုးၿပီး အဆံုးကိုေရာက္သြားၿပီဆုိရင္
function ကို stop လုပ္လိုက္ၿပီး ရလာတဲ႔ argument ကို function ရဲ႕ value အျဖစ္
ျပန္ထုတ္ေပးတာဘဲ ျဖစ္ပါတယ္။ တကယ္လို႔ function ရဲ႕ အျပင္ဘက္မွာ သံုးမယ္ဆုိရင္ေတာ႔ script
ကို stop လုပ္တာဘဲျဖစ္ပါတယ္။ ဒီ return အေၾကာင္းကို ေနာက္ပိုင္းမွာ user defined function
အခန္းေရာက္ရင္ ဆက္ရွင္းပါမယ္။ ခုေတာ႔ ဒီေလာက္သိထားဖုိ႔ဘဲလိုပါတယ္။
Understanding ARRAYS
array ကေတာ႔ PHP ရဲ႕ powerfull datatypes ထဲက တစ္ခုဘဲျဖစ္ပါတယ္။ သူ႔ရဲ႕ map infor-
mation ( map ဆိုတာက one to one function လိုပါဘဲ) က key နဲ႔ value ဆိုတာကို သံုးပါတယ္။
နံပါတ္ ၁ key သည္ နံပါတ္ ၁ value ေပါ႔။ ဒီေတာ႔ array ဆိုတဲ႔ အထဲမွာ information အမ်ားႀကီးကို
variable တစ္ခုခ်င္းစီအေနနဲ႔ သိမ္းဆည္းထား လို႔ရတယ္။ သံုးခ်င္တဲ႔အခါ အကုန္ထုတ္သံုးလို႔ရသလို
လိုအပ္တာေလးေတြဘဲ လည္း ထုတ္သံုးလို႔ရတယ္ေလ။ array ဆိုတာ ေသတၱာ နဲ႔ လည္းတူပါတယ္။
သူ႔ထဲမွာ ပစၥည္းေတြထည့္ထားမယ္။ ကိုယ္က လိုအပ္တဲ႔အခါ လိုအပ္တာကို ထုတ္ယူမယ္။ နံပါတ္ ၁
ေသတၱာထဲမွာ ခဲတံ ၊ ေပတံ ေတြဘဲ ထည့္ထားမယ္လို႔ မွတ္ထားရင္ ေနာင္ ကို လိုတဲ႔အခါ ခ်က္ခ်င္း
သြားယူလို႔ရမယ္ေလ။ နံပါတ္ ၂ ထဲမွ ပုဆိုး ထားမယ္ဆုိရင္ ေနာင္ ကို ပုဆုိးလိုတဲ႔အခါ ဘယ္ လိုက္ရွာရမွန္း
မျဖစ္ေတာ႔ဘူး ။ သိေနၿပီ နံပါတ္ ၂ ထဲမွာ ဆုိတာကို ။ အဲဒိထဲကမွ ဘာ အေရာင္ ဘာ အမ်ဳိးအစား
ဆုိတာေတာ႔ ထပ္ေရြး ရမွာေပါ႔။ ေအာက္က script ကို ၾကည့္ပါ။ ရိုးရိုး တန္းတန္းေရးထားတာပါ။
<?php
$entryTitle = "Sample Title";
					 	 $entryDate	=	"September	9,	2011";	
					 	 $entryAuthor	=	"Kokyaw";	
					 	 $entryBody	=	"Today,	I	wrote	a	blog	entry.";	
?>
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02
Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02

Weitere ähnliche Inhalte

Empfohlen

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Empfohlen (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Phpmyanmaruploadedbylusoegyiprogrammerfacebook com-120719081831-phpapp02

  • 1. Chapter 1 Configuring Your Installation Introduction Great website ေတြကို creat လုပ္ေပးႏိုင္တဲ႔ technologies ေတြက အမ်ားႀကီးရွိပါတယ္။ အဲဒိထဲကမွ သင္ဟာ Apache/MySQL/PHP (တစ္ခါတစ္ရံ AMP လုိ႔သံုးႏံႈးပါတယ္) ကို ေရြးခ်ယ္ၿ ပီးေလ႔လာၾကမွာျဖစ္ပါတယ္။ သင္႔အေနနဲ႔ အရင္ကတည္းက မေလ႔လာဖူးတာျဖစ္ျဖစ္ နည္းနည္းပ ါးပါးေလ႔လာဖူးရင္ျဖစ္ျဖစ္ ဒီစာအုပ္ကို ဖတ္ရႈႏိုင္ပါတယ္။ Apache, MySQL, PHP ဆုိတဲ႔ ၃ ခုလံုးဟာ တစ္ပိုင္းျခင္းစီျဖစ္ျဖစ္ သံုးခုတြဲျဖစ္ျဖစ္ ေတာ္ေတာ္ေလးကို complex ျဖစ္ပါတယ္။ ယခုစာအုပ္ထဲမွာ အဲဒိ ၃ ခုလံုးနဲ႔သက္ဆုိင္တဲ႔ အေၾကာင္းအရာအားလံုးရဲ႕ details ကို ေဖာ္ျပႏိုင္ဖို႔ဆုိတာ ေတာ္ေတာ္ေလးကို မလြယ္ကူပါဘူး။ မျဖစ္ႏိုင္ပါဘူး။ ဒီစာအုပ္ရဲ႕ အဓိက ရည္ရြယ္ခ်က္က ခုနက ေျပာခဲ႔တဲ႔ AMP တစ္ခုျခင္းစီကို အေျခခံကေန နားလည္လြယ္ေအာင္ ရည္ရြယ္ၿပီးေရးထားတာပါ။ တစ္ခ်ဳိ႕ေနရာေတြမွာ coding အားလံုးကို အေသးစိတ္လိုက္မရွင္းထားတာက ေရွ႕သင္ခန္းစာမွာ ရွင္းထားခဲ႔ၿပီးရင္ ေနာက္သင္ ခန္းစာမွာထပ္မရွင္းေတာ႔ပါဘူး။ အဓိက ရည္ရြယ္ခ်က္ကို focus လုပ္ေနတာကေန ေသြဖီသြားမွာစိုးလို႔ပါ။ ေနာက္တစ္ခုက ဒီစာအုပ္ကို ဖတ္မယ္ဆုိရင္ စာဖတ္သူဟာ HTML, CSS ကို နားလည္ ထားသူ သို႔မဟုတ္ တီးမိေခါက္မိရွိထားသူျဖစ္ဖုိ႔လိုပါတယ္။ HTML နဲ႔ CSS နဲ႔ပါတ္သတ္တာေတြကို လံုး၀ ထည့္မရွင္းထားပါဘူး။ တစ္ျခား ေနာက္ထပ္ Program တစ္ခုခုကို လည္း သင္ မသိထားရင္ ရပါတယ္။ သိထားတဲ႔သူေတြကေတာ႔ programming concept ရတာေပါ႔။ ဆိုလိုတာကေတာ႔ APACHE/MySQL/ PHP newbie ေတြအတြက္ ရည္ရြယ္ပါတယ္။ တကယ္လို႔မ်ား ကၽြန္ေတာ္ intermediate level အတြက္ စာအုပ္ ထုတ္ျဖစ္ခဲ႔မယ္ဆုိရင္ အဲဒိစာအုပ္မွာ ေအာက္ပါအခန္းမ်ား ပါ၀င္လာမွာျဖစ္ပါတယ္ - 1. Image upload 2. Create thumbnails 3. Handling and avoiding errors 4. Validating user input အခု စာအုပ္မွာ အဓိက ပါတာေတြကေတာ႔ PHP ကို စတင္ဖုိ႔အတြက္ မိမိစက္ထဲမွာ web serv- er တစ္ခု တည္ေဆာက္တာနဲ႔ က်န္တဲ႔အပိုင္းကေတာ႔ PHP/MySQL အဓိက ျဖစ္ပါတယ္။ အခုစာအုပ္ကို သင္က ဆံုးခန္းတုိင္ေအာင္ ဖတ္ၿပီးၿပီဆုိပါက သင္႔အေနျဖင္႔ movie review dynamic website တစ္ခုကို အေျခခံက်က် ဖန္တီးႏိုင္မွာျဖစ္ပါတယ္။ ဘာေတြပါလဲဆုိရင္ movie name ေတြပါမယ္။ အဲဒိ movie တစ္ခုျခင္းစီရဲ႕ details ေတြပါမယ္။ user ေတြရဲ႕ comments ေတြပါမယ္။ အဲဒိ comments ေတြနဲ႔အတူ movie ratings ေတြပါ ၾကယ္ေလးေတြနဲ႔ ျပတတ္လာမယ္။ ၿပီးရင္ ေနာက္ထပ္ movie အသစ္ေတြ ထပ္ေပါင္းထည့္ႏိုင္မယ္။ ရွိၿပီးသားဟာေတြကို Edit လုပ္ႏိုင္မယ္။ delete လုပ္ႏိုင္မယ္။ အဲဒါေတြ အားလံုးအတြက္ concepts ေတြကို ေသခ်ာရွင္းျပထားပါတယ္။ တစ္ခ်ဳိ႕ေနရာေတြမွာ screen
  • 2. PHP avScg;xpfrsm;2 rZÑdr pmay shot နဲ႔ ျပပါတယ္။ Requirements ခု သင္ခန္းစာအတြက္ လိုအပ္တာေတြကေတာ႔ ၁။ Browser ၂။ Text editor ( ကၽြန္ေတာ္ကေတာ႔ notepad++ သံုးပါတယ္) ၃။ Wamp server ၄။ developer tools bar (firefox addon) တုိ႔ျဖစ္ပါတယ္။ အဲဒါေတြ အားလံုးကို ဒီစာအုပ္နဲ႔အတူ ပါလာမယ္႔ CD ခ်ပ္ထဲကေန ရႏိုင္ပါတယ္။ Wamp server installation ပထမဆံုး CD ထဲက WampServer2.0c ဆိုတဲ႔ .exe file ကို double click လုပ္ပါ။ Yes ကို ႏွိပ္ပါ။
  • 3. 3udkausmf rZÑdr pmay Next ကို ႏွိပ္ပါ။
  • 4. PHP avScg;xpfrsm;4 rZÑdr pmay default အေနနဲ႔ c ေအာက္မွာ wamp ဆိုတဲ႔ folder နာမည္နဲ႔ install လုပ္မွာပါ။ Next ကိုဘဲ ႏွိပ္ပါ။ ေနာက္တစ္ခါ Quick launch တုိ႔ဘာတုိ႔ေရြးခိုင္းရင္လည္း ႏွစ္သက္သလို ေရြးၿပီး Next လုပ္ပါ။ ၿပီးရင္ေတာ႔ Install ကို ႏွိပ္ပါ။ ဒါဆုိရင္ သူ႔ဟာသူ install လုပ္ေနပါလိမ္႔မယ္။ ၿပီးသြားရင္ default browser ေရြးခိုင္းပါလိမ္႔မယ္။ ကၽြန္ေတာ္ကေတာ႔ firefox ကိုဘဲေရြးခဲ႔ပါတယ္။ ေနာက္တစ္ဆင္႔အေနနဲ႔ mail parameters ကို ေရြးခိုင္းပါတယ္။ ေလာေလာဆယ္ ဒီအတုိင္းထားၿပီး Next ကိုဘဲ ႏွိပ္ပါတယ္။ ၿပီးသြားရင္ေတာ႔ Finish ကို ႏွိပ္လိုက္ပါ။ ဒါဆုိရင္ task bar မွာ ေအာက္ပါအတုိင္းေပၚေနပါလိမ္႔မယ္။
  • 5. 5udkausmf rZÑdr pmay အဲဒိ ျမားျပထားတဲ႔ icon ေပၚမွာ left click ႏွိပ္ၿပီးေတာ႔ put online ကို ကလစ္လိုက္ပါ။ အဲဒါၿပီးရင္ wamp server icon ေလးဟာ ေအာက္ပါပံုအတုိင္းေျပာင္းသြားပါလိမ္႔မယ္။
  • 6. PHP avScg;xpfrsm;6 rZÑdr pmay အားလံုးၿပီးသြားၿပီဆုိရင္ သင္႔အေနနဲ႔ wamp server ကို ေအာင္ျမင္စြာ install လုပ္ၿပီးသြားပါၿပီ။ သင္ ယခုျပဳလုပ္လုိက္တဲ႔ ဆာဗာထဲမွာ PHP 5.2.6 , Apache 2.2.8 , MySQL 5.0.51b တုိ႔ ကိုလည္း install လုပ္ၿပီးသား ျဖစ္သြားပါမည္။ Starting with browser firefox browser မွာ localhost or 127.0.0.1 လုိ႔ ရိုက္ထည့္လိုက္ပါက ေအာက္ပါအတုိင္း တက္လာရပါမည္။ ဒါမွမဟုတ္လည္း wamp server icon အေပၚမွာ left click လုပ္ၿပီး localhost ကို click လုပ္ရင္လည္း တက္ပါတယ္။
  • 7. 7udkausmf rZÑdr pmay Your projects ဆိုတဲ႔ေနရာမွာ ခုေလာေလာဆယ္ ေအာက္ပါအတုိင္းျမင္ရမွာျဖစ္ပါတယ္။ No projects yet. To create a new one, just create a directory in ‘www’. ကၽြန္ေတာ္တုိ႔လုပ္သမွ် projects အားလံုးသည္ c:wampwww ဆိုေသာ folder ေအာက္တြင္သာ ျပဳလုပ္ရမည္ ျဖစ္ပါသည္။ ေနာက္ထပ္ phpMyAdmin ကို ေခၚလိုလွ်င္ wamp server icon ေပၚမွ phpMyAdmin ကို click လုပ္ၿပီး ေခၚႏိုင္ပါသည္။ Default Database username မွာ root ျဖစ္ၿပီး password မွာ blank ျဖစ္ပါသည္။ ယခုစာအုပ္တြင္ Default အတိုင္းသာ သံုးသြားမည္ျဖစ္ပါသည္။
  • 8. PHP avScg;xpfrsm;8 rZÑdr pmay How to use Notepad++ Notepad++ ကို install လုပ္ၿပီးၿပီဆုိပါက text document တစ္ခုေပၚတြင္ right click လုပ္ၾကည့္ပါက Edit with Notepad++ ဆိုေသာ စာတမ္းကိုေတြ႕ျမင္ရမည္ျဖစ္ပါသည္။ သင္က php page တစ္ခုကို စတင္ၿပီး create လုပ္လုိပါက www folder ထဲတြင္ text docu- ment တစ္ခု လုပ္လိုက္ပါ။ ၿပီးရင္အဲဒိ text document ေပၚကို right click လုပ္ၿပီးေတာ႔ Edit with Notepad++ လုပ္လုိက္ပါ။ ဒီလိုဆိုရင္ notepad++ program တက္လာပါမယ္။ တက္လာတဲ႔အခါမွာ Language မွာ PHP ကို ေရြးေပးပါ။ ၿပီးရင္save as လုပ္ၿပီးေတာ႔ နာမည္တစ္ခုနဲ႔ သိမ္းလိုက္ရင္ php file တစ္ခုကို ရလာမွာျဖစ္ပါတယ္။ default အေနနဲ႔ PHP ရဲ႕ open and close tag ေတြကို အနီနဲ႔ ေဖာ္ျပၿပီး comment ေတြကို အစိမ္းနဲ႔ျပပါတယ္။ ျပင္ခ်င္တယ္ဆုိရင္ေတာ႔ settings/style configura- tor မွာ ျပင္လို႔ရပါတယ္။
  • 9. 9udkausmf rZÑdr pmay Chapter (2) Creating PHP pages using PHP ဒီအခန္းမွာေတာ႔ PHP ရဲ႕ အေျခခံအခ်က္ေလးမ်ားကို ေျပာသြားမွာျဖစ္ၿပီး တစ္ခ်ိန္တည္း မွာဘဲ ေျပာသြားတဲ႔အခ်က္ေလးေတြနဲ႔ web တစ္ခုကို အဆင္႔ဆင္႔ တည္ေဆာက္သြားမွာျဖစ္ပါတယ္။ အားလံုးၿပီးသြားတဲ႔အခါမွာ Movie review ေတြရယ္ ၊ ဒီ web ကို လာတဲ႔ လူေတြရဲ႕ comment ေတြရယ္ movie details ေတြကို MySQL နဲ႔ တြဲၿပီး ျပႏိုင္မွာျဖစ္ပါတယ္။ အေသးစား dynam- ic web page တစ္ခု တည္ေဆာက္တယ္လို႔ မွတ္ယူလို႔ရပါတယ္။ သင္႔အေနနဲ႔ PHP program ကို ဒီအတုိင္း သီအိုရီ ခ်ည္း သက္သက္ေလ႔လာ ေနရင္ ပ်င္းမွာစိုးပါတယ္။ ကိုယ္ သိထားသေလာက္က ဘယ္ေလာက္ထိ ေရးလို႔ရသလဲ ဘယ္ေလာက္ထိ ဖန္တီးလို႔ရသလဲဆုိတာကို သိထားဖုိ႔လိုပါတယ္။ ခု အေျခခံအခ်က္ေလးေတြနဲ႔ တင္ သင္ ထင္မွတ္မထားေလာက္ေအာင္ လုပ္ႏိုင္မွာကို ေတြ႕ရွိရမွာပါ။ ကၽြန္ေတာ္ဟာ ဒီစာအုပ္နဲ႔ အတူ CD တစ္ခ်ပ္ တြဲထည့္ေပးထားၿပီးေတာ႔ အဲဒိ CD ထဲမွာ Exercise files ေတြပါတယ္။ အႀကံျပဳလိုတာကေတာ႔ အဲဒိ CD ထဲက ဖိုင္ေတြကို တတ္ႏုိင္သမွ် နားလည္ေအာင္ၾကည့္ပါ။ copy paste လုပ္ၿပီး သင္မေလ႔က်င္႔ပါနဲ႔။ Programming ဆိုတာမ်ဳိးကလည္း တစ္ခါေရးနားမလည္ ႏွစ္ခါေရး ရင္ ရူးသြားတာမ်ဳိးမဟုတ္ပါဘူး။ ထပ္ခါထပ္ခါေရးေလ ပို နားလည္ေလ ျဖစ္ေစတာပါ။ PHP ကို အျခား language ေတြျဖစ္တဲ႔ HTML တို႔လို text editor နဲ႔ ေရးလို႔ရပါတယ္။ ဒါေပမယ္႔ HTML နဲ႔ မတူတာက PHP မွာက .php ဆိုတဲ႔ extension နဲ႔ အဆံုး သတ္တာျဖစ္ၿပီး Web စာမ်က္ႏွာ ေပၚတာေတြက HTML ေတြျဖစ္တယ္ဆုိတာ မွတ္ထားဖို႔လိုပါတယ္။ How PHP fits with HTML The Rules of PHP syntax PHP ကို စေရးၿပီဆုိရင္ ထိပ္ဆံုးမွာ <?php နဲ႔ စၿပီးေတာ႔ ေနာက္ဆံုးမွာ ?> အဆံုးသတ္ရပါတယ္။ ေယ်ဘူယ်အားျဖင္႔PHPstatementေတြရဲ႕အဆံုးကိုsemicolon(;)နဲ႔အဆံုးသတ္ေပးရပါတယ္။ ေအာက္က ဥပမာကို ၾကည့္ပါ။
  • 10. PHP avScg;xpfrsm;10 rZÑdr pmay <?php $num = 1+2; echo $num; ?> ကိုယ္ေရးေနတဲ႔ ပရိုဂရမ္ဟာ တျဖည္းျဖည္းရွည္ လာၿပီးရႈပ္ေထြးမႈရွိလာရင္ ေနာက္တစ္ခါ ျပန္ၾကည့္တဲ႔အခါ ကိုယ္ေရးထားတဲ႔ဟာကို ကိုယ္႔ဟာကို ျပန္မမွတ္မိ ျဖစ္ေနတတ္ပါတယ္။ ဒါေၾကာင္႔ စတင္ေရးၿပီဆုိကတည္းက ဘယ္ အေၾကာင္းအရာ ကို ဘာေၾကာင္႔ေရးထားတယ္ဆုိတာကို ပရိဂရမ္ထဲမွာ ထည့္ေရးထားဖုိ႔ အၾကံျပဳလိုပါတယ္။ ဒါကို Comment ေရးတယ္လို႔လဲေခၚပါတယ္။ Com- ment ေရးရင္ တစ္ေၾကာင္းတည္းဆုိရင္ double forward slashes (//) ကို အသံုး ျပဳၿပီးေရးရပါတယ္။ ဥပမာ- <?php // Adding number $num = 1+2; echo $num; ?> ဒီလို ေရးတဲ႔အခါမွာ comments ေတြကို ပရိုဂရမ္က ထည့္ မ run ပါဘူး။ တကယ္လို႔ ကိုယ္မွတ္ထားတာက ငါးေၾကာင္း ေလာက္ျဖစ္သြားမယ္ဆုိရင္ /* com- ment */ ကို သံုးလို႔ရပါတယ္။ ဒါေတြကို မွတ္ထားရင္ရပါၿပီ။ ကဲ... အခု ဆိုရင္ သင္ဟာ PHP ကို ဘယ္လို စေရးရမယ္ဆုိတာ သိၿပီးသြားၿပီမဟုတ္လား။ သိပ္မခက္ပါဘူး။ The importance of coding pratices သင္ဟာ ပရိုဂရမ္ တစ္ခု စေရးေတာ႔မယ္ဆုိရင္ Code structure ေတြကို အ ရ င္ ဆံုးေ လ ႔ လာ သ င္ ႔ ပ ါ တ ယ္ ။ သ င္ေ ရး လို က္ တဲ ႔ C o d eေ တ ြ ဟာ B r o w s e rေ ပ ၚ မ ွာ ေကာင္းမြန္စြာအလုပ္လုပ္ေနသမွ် သင္႔ရဲ႕ code structure ကို သိပ္ဂရုစိုက္စရာမလိုပါဘူး ။ တကယ္လို႔ အဲသည္လိုမဟုတ္ေတာ႔ဘဲ တစ္ခုခု error ျပ ေနၿပီဆုိရင္ Code error ကို ရွာရေတာ႔မယ္ ။ အဲဒိအခါမွာစေရးကတည္းက ရႈပ္ေထြးေနေအာင္ေရးခဲ႔မယ္ဆုိရင္ အလြယ္တကူ ရွာဖို႔ ခက္ခဲမွာပါ။ ေအာက္က နမူနာပံုစံကိုၾကည့္ၾကည့္ပါ။
  • 11. 11udkausmf rZÑdr pmay Example(2) ကိုၾကည့္လိုက္ရင္ ပိုရွည္တယ္ထင္ေပမယ္႔ တကယ္တမ္းၾကေတာ႔ syntax err- ror or other troubleshooting လုပ္တဲ႔အခါမွာ ပိုမိုျမန္ဆန္စြာလုပ္ႏိုင္ပါတယ္။ ဒါဟာ ပရိုဂရမ္ကို ခုမွ စေရးမယ္႔ သူေတြအတြက္တကယ္႔ကို အေရးႀကီးပါတယ္။ ၾကံဳသလိုေရးလိုက္ရင္ အက်င္႔ႀကီးပါသြားတတ္ပါတယ္။ Example (1) < ?php //check to make sure the first name is equal to MgMg before granting ac- cess if ($_POST['fname'] == 'MgMg') { echo '<p> Hi '. $_POST['fname'] . '</p>'; } else { echo '<p> Your name isn't MgMg so you cannot enter the web site. </p> '; } ?> Example(2) < ?php //check to make sure the first name is equal to Joe before granting access if ($_POST['fname'] == 'Joe') { echo '<p>'; echo 'Hi'; echo $_POST['fname']; echo '</p>'; } else { echo '<p>'; echo 'Your name's not MgMg so you cannot enter the web site!'; echo '</p>';
  • 12. PHP avScg;xpfrsm;12 rZÑdr pmay Creating your first program Using (echo) 1. ေအာက္မွာ ျပထားတဲ႔ ကုဒ္ေတြကို notepad++ ထဲ ကူးထည့္ၿပီး firstprog.php ဆိုၿပီး Save လုပ္ပါ။ <html> <head> <title>My first Program</title> </head> <body> <?php echo "I'm a KoKo.And I'm OK."; ?> </body> </html> OK . အဲဒိ firstprog.php ဆိုတ႔ဲ ဖုိင္ကို web browser ကေန ၾကည့္ၾကည့္ရင္ ေအာက္ကပံုအတိုင္း ျမင္ရပါမယ္။
  • 13. 13udkausmf rZÑdr pmay ကဲ အခု ေနာက္ထပ္ တစ္ေၾကာင္းေလာက္ ထပ္ေပါင္း ေရးၾကည့္ရေအာင္။ ထပ္ေပါင္းေရးတဲ႔ စာေၾကာင္းကို Highlight လုပ္ေပးထားပါတယ္။ <html> <head> <title>My first Program</title> </head> <body> <?php echo "I'm a KoKo."; echo 'And I'm OK.'; ?> </body> </html> File ကို save လုပ္ၿပီးေတာ႔ Browser ကေန ျပန္ၾကည့္ၾကည့္ပါ။ ေအာက္ပါ ပံုအတိုင္း ျမင္ရပါလိမ္႔မယ္။
  • 14. PHP avScg;xpfrsm;14 rZÑdr pmay How it works? Browser ကေန PHP program ကို​ call လုပ္လိုက္ရင္ အရင္ဆံုး PHP code ေတြကို line by line ရွာပါတယ္။ ဆုိလိုတာက <?php ?> ၾကားက ကုဒ္ေတြကို ရွာတာေပါ႔။ တစ္ခ်ိန္တည္းမွာဘဲ အဲဒိ code ေတြကို process လုပ္ပါတယ္။ ဆာဗာကို PHP code ေတြဟာ တစ္ေၾကာင္းတည္း ပံုစံနဲ႔ သြားတာပါ။ ဆာဗာဆီကိုPHP code ေတြဟာ မွန္မွန္ကန္ကန္ေရာက္သြားၿပီဆိုရင္ က်န္တဲ႔ HTML code ေတြကို browser ဆီပို႔ေပးပါတယ္။ တစ္ခါတည္း php sections ေတြပါ ပို႔ေပးတာပါ။ အထက္က ပရိုဂရမ္ မွာ Coding ပိုင္းမွာ သတိထားမိမယ္ဆုိရင္ single quotation marks (') ေလးကို သတိထားမိမွာပါ။ Text string ေတြကို ေဖာ္ျပရာမွာ single quotation mark(') နဲ႔ double quotation mark(") ကို လိုအပ္ခ်က္ေပၚမူတည္ၿပီး သံုးသြားရမွာပါ။ ေနာက္ပိုင္း သင္ခန္းစာေတြမွာ ပရိုဂရမ္ ေရးရင္း ေရးရင္း ပိုမုိေလ႔လာႏိုင္ပါတယ္။ ေအာက္က နမူနာ ပံုစံေလးကို ၾကည့္ၾကည့္ပါ။ echo " I'm a KoKo"; အဲဒိဟာကို output အေနနဲ႔ ထုတ္လိုက္ရင္ I'm a KoKo ဆိုၿပီး ရလာမွာပါ။ ဘာျဖစ္လို႔လဲဆိုေတာ႔ text string ရဲ႕ အစနဲ႔ အဆံုး ကို " နဲ႔ ခံၿပီး သံုးထားလို႔ပါ။ double quotaion mark (") ႏွစ္ခုၾကားမွာ ရွိတဲ႔ဟာက String ေတြျဖစ္တယ္ဆုိတာ PHP က သူ႔အလိုလို သိပါတယ္။ ေအာက္က နမူနာကိုလည္း ၾကည့္ပါဦး။ echo 'I'm a KoKo'; အဲဒိ လိုင္းကို Output ထုတ္လိုက္ရင္ Error message ရလာမွာပါ။ ဘာျဖစ္လို႔လဲဆုိေတာ႔ String value က ဘယ္က စမွန္း PHP က မသိေတာ႔ပါဘူး။ I'm က ' က စတာလား ။ ဒါမွမဟုတ္ 'I က စတာလားဆိုတာ Confused ျဖစ္သြားပါၿပီ။ အဲဒိလိုဘဲ double quotation mark နဲ႔ စေပမယ္႔ အလားတူ Problem မ်ဳိး ေတြလည္းျဖစ္ႏုိင္ပါတယ္။ ေအာက္က နမူနာေလးကို ေလ႔လာၾကည့္ပါ။ echo "I'm a KoKo . "Hello world""; အဲဒိေတာ႔ လိုအပ္သလို ေပၚဖုိ႔ single quotation mark(') and double quotation
  • 15. 15udkausmf rZÑdr pmay mark (") ေတြကို လိုအပ္သလို အသံုးျပဳရမွာပါ။ အထက္ပါ code ကို မွန္မွန္ကန္ကန္ Run ဖို႔ ေအာက္ပါအတုိင္း ေရးရင္ ရပါတယ္။ echo"I'm a KoKo . "Hello world""; သံုးထားတာကို သတိျပဳမိမွာပါ။ ဘာအတြက္ သံုးတာလဲဆိုရင္ ဒီမွာက Hello world ရဲ႕ေရွ႕နဲ႔ေနာက္က (") ကို plain character အျဖစ္ ယူလိုတဲ႔အတြက္ဘဲျဖစ္ပါတယ္။ အခုေန ရႈပ္ေနမယ္ဆုိတာ သိပါတယ္။ ေနာက္ အခန္းေတြ ေရာက္လာရင္ ခု ေလ႔က်င္႔ခန္းေတြက ထမင္းစားေရေသာက္ တာထက္ကို ပိုမို လြယ္ကူ သြားေစမယ္ဆုိတာ အာမခံပါတယ္။ Integrating HTML with PHP ေအာက္မွာ ျပထားတဲ႔ နမူနာေလးေတြကို ၾကည့္လိုက္ရင္ HTML ကို PHP ထဲ ထည့္သံုးရတာ ဘယ္ေလာက္ လြယ္ကူၿပီး လွပ တယ္ဆုိတာ ကိုယ္တုိင္ လုပ္ၾကည့္လိုက္ပါ။ <html> <head> <title>My first Program</title> </head> <body> <?php echo " <h1>I'm a KoKo.</h1>"; echo "<h2>I'm a KoKo . "Hello world"</h2>"; ?> </body> </html> Considerations with HTML inside PHP HTML ကို PHP ထဲမွာ ထည့္သံုးေတာ႔မယ္ဆုိရင္ ေအာက္မွာ ျပထားတဲ႔အခ်က္ေတြကို ေသခ်ာေလး ဂရုစိုက္ေစခ်င္ပါတယ္။ ၁။ double quotation mark ေတြကို သံုးရာမွာ ဂရုစိုက္ပါ။ back slash () ခံၿပီးသံုးပါ။ ဥပမာ- echo "<p style="font-size:80%;">"; ၂။ HTML နဲ႔သံုးမယ္ဆုိရင္ single quotation mark ကို အမ်ားဆံုးသံုးသင္႔ပါတယ္။
  • 16. PHP avScg;xpfrsm;16 rZÑdr pmay ဥပမာ echo '<p style="font-size:80%;">'; ၃။ PHP code ေတြထဲကို HTML code ေတြ တအားမ်ားေနၿပီဆုိရင္ သတိထားပါ။ code ေတြေရာေထြးၿပီး ရႈပ္ေထြး ေနတတ္ပါတယ္။ အဲဒိအခါမွာ ကိုယ္႔ရဲ႕ HTML code ေတြကို Strictly ျဖစ္ေအာင္ ျပန္စဥ္းစားၿပီး ျပန္ေရးပါ။ ေအာက္က ဥပမာ ၂ ခုကို ႏႈိင္းယွဥ္ၾကည့္ရင္ သိႏိုင္ပါတယ္။ Example(1) <?php echo ' <table style="font-family: Arial,sans-serif; font-size: 80%; '; echo 'width: 100%;">'; echo ' <tr> '; echo ' <td style="width: 50%;">'; echo 'First Name:'; echo ' </td > '; echo ' <td style="width: 50%">'; echo $_POST['fname']; echo ' </td > '; echo ' </tr > '; echo ' </table > '; ?> Example(2) <table style="font-family: Arial,sans-serif; font-size: 80%; width: 100%;"> <tr> <td style="width: 50%;"> First Name: </td > <td style="width: 50%" > <?php echo $_POST['fname'];?> </td> </tr> </table>
  • 17. 17udkausmf rZÑdr pmay အထက္က ဥပမာ ၂ ခုကို ယွဥ္ၾကည့္မယ္ဆုိရင္ အဓိက ရည္ရြယ္ခ်က္က $_POST['fname'] ဆိုတဲ႔ ဟာကို ထုတ္ေပးဖုိ႔ဘဲျဖစ္တယ္ဆုိတာ ေတြ႕ရမယ္။ ဒီလိုပံုစံမ်ဳိးမွာ HTML code အားလံုးကို PHP ပံုစံ ထဲ ထည့္ေရးမယ္႔အစား(Example 1လို) Example 2 လို HTML ထဲမွာ လိုအပ္တဲ႔ PHP code ကိုဘဲ ထည့္ေရးရင္ ပိုၿပီးရိုးရွင္းပါတယ္။ ဆာဗာ အတြက္ကေတာ႔ အထက္က Example ၂ ခုထဲက ၾကိဳက္တဲ႔ဟာနဲ႔ ေရး ။ အေရးမႀကီးဘူး။ ပရိုဂရမ္မာေတြအတြက္ဘဲကိုယ္ေရးလိုက္တဲ႔ဟာ For- mat က်က် ေရးခ်င္တယ္၊ debugging လုပ္ဖို႔ လြယ္လြယ္ျဖစ္ခ်င္တယ္ဆုိရင္ example 2 လိုေရးဖို႔ အၾကံျပဳလိုပါတယ္။ Using Constants and Variables to add Functionality ခုဆုိရင္ echo function ဘယ္လို အလုပ္လုပ္သလဲဆုိတာ နားလည္သြားၿပီလို႔ယူဆပါတယ္။ echo function ဟာ HTML နဲ႔ တူတူပါဘဲ။ ခု ရွင္းျပမယ္႔ Constants and Variables ေတြကို ထည့္သံုး အသံုးျပဳတတ္မွ တကယ္႔ True power of PHP ကို ရရွိမွာျဖစ္ပါတယ္။ Overview of constants Constant ဆိုတဲ႔ သေဘာတရားကို ေက်ာင္းသားတုိင္း သိၾကမွာပါ။ သူ႔ကို အသံုးျပဳမယ္ဆုိရင္ (၁) မသံုးခင္မွာ သူ႕ရဲ႕ တန္ဖိုးကို ႀကိဳတင္သတ္မွတ္ဖို႔လိုပါတယ္။ (၂) Constant ေတြကို နာမည္ေပးတဲ႔အခါမွာ အစစာလံုးေတြကို letter (A to Z, a to z) or _(underscore) နဲ႔စရပါတယ္။ (၃) Constant နာမည္ေတြကို Number နဲ႔ စလို႔ မရပါဘူး။ (၄) Constant ေတြဟာ case- sensitive ျဖစ္ပါတယ္။ သိသာထင္ရွားေအာင္ စာလံုး အႀကီးေတြနဲ႔ ေရးေလ႔ရွိပါတယ္။ (၅) Constant ေတြကို PHP function တစ္ခုျဖစ္တဲ႔ define() နဲ႔ သတ္မွတ္ၿပီးေတာ႔ သတ္မွတ္ၿပီးသြားရင္ သူ႔ကို ျပန္ေျပာင္းလို႔မရပါဘူး နမူနာေလး ေလ႔က်င္႔ၾကည့္ရေအာင္။ ေအာက္မွာ ျပထားတဲ႔ code ေတြအတုိင္း text editor ထဲ ရိုက္ထည့္ပါ။
  • 18. PHP avScg;xpfrsm;18 rZÑdr pmay <html> <head> <title> My Movie Site </title> </head> <body> <?php define ('FAVMOVIE', 'ThaGyanMoe'); echo 'My favorite movie is '; echo FAVMOVIE; ?> </body> </html > အဲဒိ ပရိုဂရမ္ေလးကို ေလ႔လာမယ္ဆုိရင္ FAVMOVIE ဆိုတဲ႔ constant ကို သတ္မွတ္ၿပီး သူ႔ရဲ႕ တန္ဖိုးကို ThaGyanMoe လို႔ ထားလိုက္တာပါ။ အဲဒိေတာ႔ ဘယ္လိုျဖစ္သြားမလဲဆုိရင္ define('name','value') ျဖစ္သြားတာပါ။ ေအာက္က ပံုအတုိင္း Result ထြက္လာပါမယ္။
  • 19. 19udkausmf rZÑdr pmay Overview of Variables Constant ရဲ႕ ေျပာင္းျပန္က Variable ေပါ႔ ။ Variable ေတြရဲ႕ တန္ဖုိးဟာ ေျပာင္းႏိုင္တယ္။ Variable ေတြကို သံုးဖုိ႔ define သတ္မွတ္ေပးစရာမလိုသလို declare လုပ္ဖို႔လည္း မလိုပါဘူး။ Vari- able ေတြဟာ ဘာနဲ႔ တူသလဲဆုိရင္ information ေတြကို သိမ္းထားတဲ႔ container တစ္ခုပါဘဲ။ လိုတ႔ဲေနရာကေန ေခၚသံုးႏိုင္တယ္။ ၿပီးေတာ႔ အဲဒိ information ကိုလည္း ထပ္ေျပာင္းႏိုင္တယ္။ Vari- able ေတြကို ေရးေတာ႔မယ္ဆုိရင္ (၁) $ နဲ႔ စရမယ္။ (၂) Variable ေတြဟာ case-sensitive ျဖစ္ပါတယ္။ ($dateEntered နဲ႔ $Dateentered) တုိ႔ရဲ႕ တန္ဖုိးဟာ မတူပါဘူး (၃) Variable name ေတြရဲ႕ အစဟာလည္း letter(A to Z, a to z) or _ (underscore) ျဖစ္ရပါမယ္။ (၄) Variable name ေတြရဲ႕ အစဟာ number မျဖစ္ရပါဘူး (0-9)။ Using Variables ခုနက moviesite.php ကို အနည္းငယ္ ျပင္ေရးၾကည့္ပါမယ္။ Variables ေလး ထည့္သံုးၾကည့္မွာေပါ႔။ ျပင္ထားတဲ႔ စာေၾကာင္းေတြကို Highlight ျပထားပါတယ္။ <html> <head> <title> My Movie Site </title> </head> <body> <?php define ('FAVMOVIE', 'ThaGyanMoe'); echo 'My favorite movie is '; echo FAVMOVIE; echo '<br/>'; $movierate = 5; echo 'My movie rating for this movie is: '; echo $movierate; ?> </body> </html >
  • 20. PHP avScg;xpfrsm;20 rZÑdr pmay How it works ပထမဆံုး $movierate ဆုိတဲ႔ variable ရဲ႕ တန္ဖုိးကို 5 လို႔ သတ္မွတ္လိုက္ပါတယ္။ Num- ber ေတြကို တန္ဖုိးသတ္မွတ္ ရင္ single quotation mark or double quotation mark မလိုပါဘူး။ တကယ္လို႔ သင္ဟာ ေအာက္ပါအတုိင္း ေရးမယ္ဆုိရင္ movierate တန္ဖုိးဟာ ဂဏန္း 5 မဟုတ္ဘဲ Character 5 ျဖစ္သြားမွာပါ။ $movierate='5'; ဒီေတာ႔ တန္ဖိုးေတြကို သတ္မွတ္ရင္ integer သတ္မွတ္ၿပီး ထားရင္ ေနာက္ပိုင္း mathematical calcu- lation လုပ္ရင္ ပိုမိုလြယ္ကူပါလိမ္႔မယ္။ ေအာက္မွာ ျပထားတဲ႔ နမူနာကို ၾကည့္လိုက္ရင္ သိသာပါတယ္။ <?php $mamamovierate = 5; $nyinyimovierate = 7; $fathermovierate = 2; $mothermovierate = 1; $avgmovierate = (($mamamovierate + $nyinyimovierate + $fathermovierate+ $mothermovierate) / 4); echo 'The average movie rating for this movie is: '; echo $avgmovierate; ?>
  • 21. 21udkausmf rZÑdr pmay ဒီပရိုဂရမ္ေလးကို ေလ႔လာၾကည့္ရင္ ရိုးရုိးရွင္းရွင္းေလးပါဘဲ။ သခ်ၤာ ေဖာ္ျမဴလာအတုိင္း စုစုေပါင္းကို အေရအတြက္ နဲ႔ စားလုိက္ရင္ average value ကို ရတာဘဲေလ ။ မဟုတ္ဘူးလား။ တစ္ခု သတိထားရမွာက () ေတြကို ေရးရင္ျဖစ္ပါတယ္။ ( ဖြင္႔ၿပီးရင္ ျပန္ပိတ္ ) ရပါတယ္။ + -*/ ေတြပါလာၿပီဆုိေတာ႔ ဒီအေၾကာင္းကို ေနာက္ပိုင္းမွာ ဆက္ရွင္းျပပါမယ္။ ခု PHP ထဲမွာ ပါတဲ႔ built-in mathematical functions ေတြကို နည္းနည္းေလာက္ တီးေခါက္ ၾကည့္ရေအာင္။ rand([$min , $max]) : Returns a random number. ceil($value) : Returns the next highest integer by rounding the value up- wards. floor($value) : Returns the next lowest integer by rounding the value down- wards. number_format($number[,$decimal_places[,$decimal_point, $thousands_ sep]]) ေအာက္မွာ ျပထားတဲ႔ နမူေလးနဲ႔ ယွဥ္တြဲ ေလ႔လာၾကည့္ပါ။ ၿပီးရင္ ကိုယ္႔ဟာကို တစ္ျခား တန္ဖုိးေတြကို ေရးၿပီး ေလ႔က်င္႔ပါ။ Pratice makes perfect တဲ႔။ rand([$min , $max]) : Returns a random number. ceil($value) : Returns the next highest integer by rounding the value up- wards. floor($value) : Returns the next lowest integer by rounding the value down- wards. number_format($number[,$decimal_places[,$decimal_point, $thousands_ sep]]) $price = 12345.67 number_format($price); // returns 12,345.67 number_format($price,2,'.',''); // returns 12345.67
  • 22. PHP avScg;xpfrsm;22 rZÑdr pmay အခုက အျမည္းေလးေကၽြးထားတဲ႔သေဘာပါဘဲ။ ေနာက္ပိုင္းမွာ လက္ေတြ႕ေလ႔က်င္႔ခန္းေတြ လုပ္ရင္းနဲ႔ ပိုၿပီး နားလည္ လာပါမယ္။ သက္ဆုိင္ရာ ေနရာေရာက္ရင္ အေသးစိတ္ရွင္းျပမွာပါ။ Passing variables between pages တကယ္လို႔ သင္႔ရဲ႕ website ထဲကို user ေတြကို ၀င္ခြင္႔ေပးမယ္ဆုိရင္ login form လိုလာၿပီေပါ႔။ Login လုပ္ၿပီးသြားရင္ သင္႔အေနနဲ႔ ၀င္လာတဲ႔ user ကို ႏႈတ္ဆက္ခ်င္တယ္။ အဲဒိ ႏႈတ္ဆက္စာကိုလည္း user က ဘယ္ စာမ်က္ႏွာကိုဘဲ သြားသြား ေပၚေနေစခ်င္တယ္ဆိုရင္ ေပၚေစခ်င္တဲ႔ ဟာကို vari- able တစ္ခု သတ္မွတ္ၿပီး အဲဒိ variable ကို စာမ်က္ႏွာတစ္ခုကေန ေနာက္တစ္ခုကို passing လုပ္ဖုိ႔ လုပ္ရမွာဘဲျဖစ္တယ္။ အဲဒိလို pass လုပ္ဖုိ႔ အေျခခံ အားျဖင္႔ေပါ႔ ၄ မ်ဳိးရွိပါတယ္။ (1) Pass the variables in URL (2) Through a session (3) Via a cookie (4) with an HTML form အဲဒိ ထဲက ဘယ္ဟာကို သံုးမယ္ဆုိတာေတာ႔ ကိုယ္ ျပဳလုပ္တဲ႔ site ရဲ႕ လိုအပ္ခ်က္ေပၚမွာမူတည္ၿပီးဘဲ ဆံုး ျဖတ္ၾကပါတယ္။ Passing Variables through a URL ဥပမာေပါ႔ဗ်ာ - http://www.mydomain.com/news/articles/showart.php?id=12345 သူက variables ကို URL ထဲကေန ျဖတ္ၿပီးေဖာ္ျပတာပါ။ showart.php ကို ေခၚလိုက္ရင္ ar- ticles ထဲက id နံပါတ္ 12345 ကို ေခၚတင္လုိက္တာပါ။ အဲဒိလို variable ေတြကို URL ထဲမွာ ေဖာ္ျပတဲ႔အခါမွာ ႏွစ္ခု ကို တစ္ျပိဳင္တည္း လုပ္ခ်င္ရင္ ampersand(&) သေကၤတကို သံုးၿပီး ႏွစ္ခုကို ေပါင္းၿပီး ေဖာ္ျပလို႔ရတယ္။ ဥပမာ- http://www.mydomain.com/news/articles/showart.php?id=12345&lang=en
  • 23. 23udkausmf rZÑdr pmay သူ႔ရဲ႕ သေဘာတရားကေတာ႔ id နံပါတ္ 12345 ျဖစ္ရမယ္႔ အျပင္ language ကလည္း en ဆိုတဲ႔ english ျဖစ္ရမယ္ေပါ႔ဗ်ာ။ ခုကေတာ႔ ဒီလို လုပ္လို႔ရတယ္ဆုိတာဘဲ မွတ္ထားဦးေနာ္။ ကိုယ္က ခုမွ စေလ႔လာတာဆိုေတာ႔ အေျခခံေလာက္ေတြဘဲ ေလ႔လာေနတာေလ။ ဒီလို variable ေတြကို URL ထဲမွာ ေဖာ္ျပတဲ႔ နည္းက တကယ္တမ္း ေတာ႔ Security အပိုင္းက စဥ္းစားရင္ တအားကို အားနည္းပါတယ္။ sensitive ျဖစ္တဲ႔ information ေတြကို ခုလိုသာ ျပေပးေနရင္ Security အတြက္ ဘယ္လိုလုပ္ စိတ္ခ်ႏိုင္ရေတာ႔မွာလဲ။ သူ႕ရဲ႕ အားနည္းခ်က္ေလးေတြကို ေလ႔လာၾကည့္ရေအာင္။ ၁။ ယူဇာအားလံုးက သင္သံုးထားတဲ႔ variables ေတြကို ျမင္ရမယ္။ ၂။ ယူဇာေတြဟာ URL ထဲက variable ေတြကို ေျပာင္းၿပီးေတာ႔ တစ္ျခား နည္းလမ္းေတြနဲ႔ သင္ မျပခ်င္တဲ႔ information ေတြကို ယူႏုိင္တယ္ ။ ဘာဘဲျဖစ္ျဖစ္ေပါ႔။ security ပိုင္း အားနည္းတယ္ဆိုေပမယ္႔ တစ္ျခား သံုးလို႔ရတဲ႔ ေနရာေလးေတြလည္း ရွိေသးတယ္ေလ။ ခုလိုမ်ဳိး variable ေတြကို PASS လုပ္ဖုိ႔ PHP မွာ ရွိပါတယ္။ $_GET array ျဖစ္ပါတယ္။ URL မွာ ေပၚမယ္႔ variable name ကို key အျဖစ္ ယူလိုက္မွာပါ။ URL မွာ variable က id ျဖစ္တယ္ဆုိရင္ $_GET['id'] ျဖစ္ၿပီးေတာ႔ ေနာက္ variable က lang ဆုိရင္ $_ GET['lang'] ေပါ႔။ ဒါဆုိရင္ ေလ႔က်င္႔ခန္း နမူနာေလး လုပ္ၾကည့္ရ ေအာင္ ။ ခုနက ေရးခဲ႔တဲ႔ moviesite. php ကို နည္းနည္းေလး ျပင္ေရးမယ္ဗ်ာ။ <html> <head> <title> My Movie Site - <?php echo $_GET['favmovie']; ?> </title> </head > <body > <?php //delete this line: defi ne('FAVMOVIE', 'The Life of Brian'); echo 'My favorite movie is ';
  • 24. PHP avScg;xpfrsm;24 rZÑdr pmay echo $_GET['favmovie']; echo ' <br/> '; $movierate = 5; echo 'My movie rating for this movie is: '; echo $movierate; ?> </body> </html> ျပင္ၿပီးသြားၿပီလား။ OK. ဒါဆုိရင္ ေနာက္ထပ္ document အသစ္တစ္ခုေရးမယ္။ text editor မွာ new pageေခၚၿပီးေတာ႔ ေအာက္ပါအတုိင္း ေရးပါ။ ၿပီးရင္ movie1.php ဆိုၿပီး save လုပ္ပါ။ <html> <head> <title> Find my Favorite Movie! </title> <head> <body> <?php echo ' <a href="moviesite.php?favmovie=Stripes"> '; echo 'Click here to see information about my favorite movie!'; echo ' </a> '; ?> </body> </html> ၿပီးရင္ browser ကေန movie1.php ကို ေခၚလိုက္ရင္ ေအာက္က ပံု အတိုင္းေပၚလာ ပါမယ္။ ကၽြန္ေတာ္ ဒီစာအုပ္မွာ HTML အေၾကာင္းကို အေသးစိတ္ရွင္း မေနပါဘူး။ PHP ကို ေလ႔လာေနၿပီဆုိေတာ႔ HTML ကိုလည္း အေတာ္ အသင္႔ နားလည္ ေနၿပီလို႔ ယူဆပါတယ္။
  • 26. PHP avScg;xpfrsm;26 rZÑdr pmay ပံုမွာျမင္ရတဲ႔အတုိင္းဘဲ $favmovie = TheGyanMoe ျဖစ္သြားတာပါ။ တစ္ခါတည္း browser ရဲ႕ Tab ရဲ႕ title ကိုလည္း ၾကည့္လိုက္ပါဦး My Movie Site - ThaGyanMoe ဆိုၿပီး ျမင္ရမွာပါ။ ဘာျဖစ္လို႔လဲဆုိေတာ႔ title tag မွာ $favmovie ဆိုတဲ႔ variable ကို ေခၚသံုးထားလိုက္လို႔ျဖစ္ပါတယ္။ Special characters in URLs URL မွာ variable ေတြမွာပါတတ္တဲ႔ special character ေတြျဖစ္တဲ႔ space, amper- sands(&) စတဲ႔ character မ်ား ကို ဒီအတုိင္း ေဖာ္ျပရာမွာ problem ရွိပါတယ္။ ဒီလို ဟာေတြကို PHP မွာ ေက်ာ္လႊားႏိုင္ပါတယ္။ သူ႕မွာပါတဲ႔ urlencode() ဆိုတဲ႔ function ကို သံုးၿပီး special character problem ကို ေျဖရွင္းႏိုင္ပါတယ္။ အခု နည္းနည္းေလာက္ ထပ္ေပါင္း ေလ႔က်င္႔ၾကည့္ရေအာင္။ mov- ie1.php ကို ေအာက္က ကုဒ္ေတြအတုိင္း ထပ္ ျပင္ေရးၾကည့္မယ္ေလ။ <html> <head> <title> Find my Favorite Movie! </title > </head> <body> <?php //add this line: $myfavmovie = urlencode('Enemy at the gate'); //change this line: echo "<a href="moviesite. php?favmovie=$myfavmovie">"; echo 'Click here to see information about my favorite movie!'; echo '</a>'; ?> </body > </html>
  • 27. 27udkausmf rZÑdr pmay save လုပ္ၿပီး ျပန္ ဖြင့္ၾကည့္ရေအာင္။ ဒါဆုိရင္ ေအာက္ပါပံုအတုိင္းျမင္ရမယ္။ URL box ထဲကို ေသခ်ာၾကည့္ပါ။ ဒီပရိုဂရမ္ေလးမွာဆုိရင္ $myfavmovie = Enemy at the gate ဆိုၿပီး ေပးခဲ႔တာပါ။ word ေတြၾကားက spaceေတြကိုမရွိေစခ်င္တဲ႔အတြက္urlencode()ဆိုတဲ႔functionကိုတစ္ခါတည္းတြဲေပးလိုက္တာပါဘဲ။ မခက္ပါဘူး။ ဟုတ္တယ္မလား။ ကဲ ..ေနာက္တစ္ခန္းကို ဆက္ကူး လိုက္ၾကရေအာင္။ Passing variables with SESSIONS ကၽြန္ေတာ္ အထက္မွာ ေျပာခဲ႔တဲ႔အတုိင္း variable ကို URL ကေန passing လုပ္တဲ႔အခါမွာ အေရးမႀကီးတဲ႔ ေဒတာေတြ ၊ saved လုပ္ထားတဲ႔ old information ေတြကို ယူသံုးလိုက္လို႔ ကိုယ္႔ site အတြက္ dangerous အေျခအေနကို မေရာက္ႏိုင္တဲ႔ အေျခအေနေတြမွာ သံုးလို႔ရပါတယ္။ တကယ္လို႔မ်ား user တစ္ေယာက္ရဲ႕ personal data ေတြကိုသာဆုိရင္ အထက္ပါနည္းနဲ႔ မသံုးသင္႔ပါဘူး။ ကိုယ္႔အေၾကာင္းကို ဘာျဖစ္လို႔ လူတုိင္းကို ေပးသိရမွာလဲ ? မဟုတ္ဘူးလား။ Person- al data ေတြဆုိတာ username, password, address, email, phone number, credit card number စတာေတြပါပါတယ္။ အဲဒါေတြကို private အေနနဲ႔ သံုးဖုိ႔ Cookies ကို သံုးရပါတယ္။ ေနာက္ပိုင္းမွာေတာ႔ cookies အေၾကာင္းကို ထပ္ၿပီး ျဖည့္စြက္ေဆြးေႏြးသြားပါမယ္။
  • 28. PHP avScg;xpfrsm;28 rZÑdr pmay what is a session? Session ဆိုတာ တကယ္ေတာ႔ variable ကို temporary သတ္မွတ္လိုက္တာဘဲျဖစ္ပါတယ္။ သူ႕ရဲ႕ သက္တမ္းက ဘယ္ေလာက္ခံလဲဆုိေတာ႔ Browser ကို shutdown ခ်လိုက္တဲ႔အထိပါဘဲ။ browser လည္း ပိတ္ သူလည္း ေပ်ာက္ ပါဘဲ။ Session မွာလည္း သူ႔ဟာသူ session id ပါပါတယ္။ ဒါမွ ကိုယ္လုပ္လိုက္တဲ႔ (browser ေပၚမွာ) အရာတစ္ခုကို သူက သူ႔နံပါတ္နဲ႔သူ မွတ္ထားတာျဖစ္ပါတယ္။ PHP program က လိုအပ္တဲ႔အခါမွာ အဲဒိ Session ေတြကို refer ျပန္လုပ္ပါတယ္။Session ေတြကို URL ထဲမွာ Pass လုပ္လို႔ရသလို cookie နဲ႔လည္း တြဲဖက္ၿပီး လုပ္လို႔ရပါတယ္။ PHP program မွာ session ကို ေခၚသံုးဖုိ႔ session_start() ဆုိတဲ႔ function ေလးကို ေခၚသံုးလိုက္ယံုပါဘဲ။ ဘယ္နားမွာ ေရးရလဲဆုိရင္ PHP program ရဲ႕ ထိပ္ဆံုးမွာ ေရးရပါတယ္။ တစ္ခုေတာ႔ရွိတယ္။ session ထဲမွာ သင္က ဘယ္ data ေတြကို သိမ္းမွာလဲဆုိတာေတာ႔ ပထမဆံုး စဥ္းစားထားဖုိ႔လိုပါတယ္။ အဓိကက ေတာ႔ username and login information ေတြကို သိမ္းတာမ်ားပါတယ္။ ကဲ ..ေျပာေနၾကာပါတယ္။ ကၽြန္ေတာ္တုိ႔ ပရိုဂရမ္ တစ္ပုဒ္ေလာက္ ခ်ေရးလိုက္မယ္။ movie1.php ကိုဘဲ နည္းနည္း ထပ္ေပါင္းေရးၾကည့္မယ္။ ေအာက္က အတုိင္းေပါ႔ - <?php session_start(); $_SESSION['username'] = 'MgMg12345'; $_SESSION['authuser'] = 1; ?> <html> <head> <title> Find my Favorite Movie! </title > </head> <body> <?php $myfavmovie = urlencode('Enemy at the gate'); echo " <a href="moviesite. php?favmovie=$myfavmovie"> ";
  • 29. 29udkausmf rZÑdr pmay echo 'Click here to see information about my favorite mov- ie!'; echo ' </a> '; ?> </body> </html> ေနာက္ၿပီးေတာ႔ moviesite.php ကိုလည္း နည္းနည္းေတာ႔ျပင္ေရးရမယ္ေလ။ ဘာလို႔ဆုိေတာ႔ သူ႔ဆီက information ေတြ ယူရမွာကိုး ။ session သံုးၿပီဆုိေတာ႔ သူက ဒီအတုိင္း မေပးေတာ႔ဘူးေလ။ သတ္မွတ္ထားတဲ႔ data ေတြကို တူမတူ တိုက္စစ္မယ္။ တူရင္ေပးမယ္။ မတူရင္ မေပးဘူးေပါ႔။ အဲဒိလို စစ္ဖုိ႔အတြက္ moviesite.php ကို နည္းနည္းေလး ျပင္ေရးမယ္ေလ။ <?php session_start(); //check to see if user has logged in with a valid password if ($_SESSION['authuser'] != 1) { echo 'Sorry, but you don't have permission to view this page!'; exit(); } ?> <html> <head> <title> My Movie Site - <?php echo $_GET['favmovie']; ?> </title> </head > <body> <?php echo 'Welcome to our site, '; echo $_SESSION['username']; echo '! <br/>'; echo 'My favorite movie is '; echo $_GET['favmovie']; echo ' <br/> '; $movierate = 5; echo 'My movie rating for this movie is: '; echo $movierate;
  • 30. PHP avScg;xpfrsm;30 rZÑdr pmay ?> </body> </html> Save လုပ္ၿပီးေတာ႔ movie1.php ကို ဖြင္႔ၿပီး click လုပ္လိုက္ရင္ ေအာက္က ပံုအတိုင္းထြက္လာပါမယ္။ How it works အေရးႀကီးတာကို မေမ႔နဲ႔ေနာ္။ session ကို ေရးမယ္ဆုိရင္ ကိုယ္ေရးမယ္႔ script ရဲ႕ ထိပ္ဆံုးမွာ ေရးရတယ္။ ခု ဒီ ပရိုဂရမ္ မွာဆုိရင္ movie1.php ကေန request လုပ္လာတာကို moviesite.php ရဲ႕ ထိပ္ဆံုးက session က if နဲ႔ စစ္ပါတယ္။ if ရဲ႕ အလုပ္လုပ္ပံုက ေအာက္ပါအတုိင္းျဖစ္ပါတယ္။ သူ႕ရဲ႕ condition က if(conditional statement){statement} ျဖစ္ပါတယ္။ ဥပမာ ေလး တစ္ခု နဲ႔ လုပ္ၾကည့္မယ္ေလ။ အစဆိုေတာ႔ လြယ္လြယ္ကူကူေပါ႔ဗ်ာ။
  • 31. 31udkausmf rZÑdr pmay <?php if (1+3 ==4){ echo 'Summation is true.'; } ?> အဲဒါကို run လုိက္ရင္ browser ကေန Summation is true ဆိုတာကို ျပမွာပါ။ အလုပ္လုပ္ပံုက if ဆိုတဲ႔အတိုင္း ျဖစ္လွ်င္ေပါ႔ ဗ်ာ... 1+3==4 ျဖစ္လွ်င္ Summation is true ဆိုတာကို echo နဲ႔ output ထုတ္ထားတာပါ။ 1+3==5 ဆိုရင္ ဘာမွ ျပမွာမဟုတ္ပါဘူး ။ ဟုတ္မွမဟုတ္တာကိုး။ ဘာျဖစ္လို႔ == ႏွစ္ခါသံုးရတာလဲ ဆုိရင္ PHP မွာ သံုးရမယ္႔ Comparison operators ကို ရွင္း ျပပါမယ္။ Comparison operators == :Values are equal === : Values are identical != :Values are not equal !== :Values are not identical < :value 1 is less than value 2 > :value 1 is greater than value 2 <= :value 1 is less than or equal to value 2 >= :value 1 is greater than or equal to value 2 ဒီေနရာမွာ ေသခ်ာ မွတ္ထားရမွာက equal ဆိုတာနဲ႔ identical ဆုိတာ မတူပါဘူး။ identical မွာဆိုရင္ variable ရဲ႕ value ေရာ datatype ေရာ တူပါတယ္။ equal မွာကေတာ႔ value ဘဲတူတာပါ။ အခု moviesite.php မွာ ျပင္ေရးလိုက္တဲ႔ ဟာကို ျပန္ရွင္းပါမယ္။
  • 32. PHP avScg;xpfrsm;32 rZÑdr pmay if($_SESSION['authuser'] !=1) ဆိုတာက movie1.php file ကေန request လုပ္လာတာမွာ authuser =1 မဟုတ္ဘူးဆုိရင္ ဆိုတဲ႔ အဓိပၸာယ္ရပါတယ္။ လိုရင္းေျပာရရင္ 1 ျဖစ္မွ ရမယ္ဆိုေပါ႔ဗ်ာ။ 1 မဟုတ္ဘူးဆိုရင္ {} ကြင္းထဲကဟာကို ဆက္ Run မွာပါ။ အဲဒိမွာ သူက echo သံုးၿပီး သင္က 1 မဟုတ္တဲ႔အတြက္ ဒီ page ကို ၾကည့္ခြင္႔မရွိပါဘူး ဆိုၿပီး output ထုတ္ေပးတာပါ။ ၿပီးရင္ exit() func- tion သံုးၿပီး ျပန္ထြက္သြားပါတယ္။ တကယ္လို႔ 1 ျဖစ္ခဲ႔မယ္ဆုိရင္ က်န္တဲ႔ code ေတြကို ဆက္ run မွာပါ။ အခုက 1 ျဖစ္ေနေတာ႔ ပထမဆံုး welcome to our site လာမယ္။ ေနာက္ၿပီးရင္ echo $_SESSION['username'] ကို ကၽြန္ေတာ္တုိ႔က MgMg12345 လို႔သတ္မွတ္ခဲ႔တဲ႔အတြက္ MgMg12345 ဆိုၿပီးျပမယ္။ က်န္တာကေတာ႔ ေရွ႕က အတုိင္းဘဲ။ If , else if, while , do while, switch and break , For စတဲ႔ statement ေတြကို သူ႔ရဲ႕ သက္ဆုိင္ရာေနရာ ေရာက္မွ ကၽြန္ေတာ္ ရွင္းျပသြားပါမယ္။ Theory နဲ႔ Pratical ကို တစ္ခါတည္း လုပ္သြားတာေပါ႔။ ဒါမွမဟုတ္ရင္ ခင္ဗ်ား ပ်င္းသြားမွာေပါ႔။
  • 33. 33udkausmf rZÑdr pmay Passing variables with cookies Cookies ေတြမွာ ဘာေတြကို သိမ္းသလဲဆုိရင္ website ကို လာေရာက္တဲ႔သူရဲ႕ computer information အနည္းငယ္ကို သိမ္းပါတယ္။ Theory အရဆုိရင္ေတာ႔ Cookies ေတြဟာ အသံုးျပဳသူရဲ႕ IP , operating system ေတြကို intercept လုပ္ႏိုင္ပါတယ္။ ဒါေပမယ္႔ cookies ေတြက storing infor- mation ဘဲလုပ္ပါတယ္။ တစ္ခ်ဳိ႕သူေတြက ေတာ႔ ဒီ cookies technology နဲ႔ အသံုးျပဳသူရဲ႕ browsing habits ေတြ ကို track လုပ္ပါတယ္။ ၿပီးေတာ႔ ဒီ cookies ေတြကို commonly name directory ထဲမွာ သိမ္းထားတာျဖစ္တဲ႔အတြက္ hacker ေတြက hack လုပ္ၿပီးေတာ႔ ေသာ္လည္းေကာင္း တစ္ျခားသူက မိမိကြန္ပ်ဴတာထဲက cookies ေတြကို တစ္နည္းနည္းျဖင္႔လာယူသြားလွ်င္ေသာ္ လည္းေကာင္း သင္႔ရဲ႕ အေရးႀကီးေဒတာေတြ ပါသြားႏိုင္ပါတယ္။ ဒါေၾကာင္႔ တစ္ခ်ဳိ႕သူေတြကေတာ႔ Browser က cook- ies ကို disable ေပးထားေလ႔ရွိပါတယ္။ ဒီလိုမ်ဳိး ျဖစ္ပ်က္ႏိုင္တာေတြေၾကာင္႔ တကယ္႔ အေရးႀကီး ေဒတာေတြ (ဥပမာ - Credit card information ) စတာေတြကို ကြန္ပ်ဴတာထဲမွာ သိမ္းဆည္း မထားဖို႔ အႀကံေပးလိုပါတယ္။ Cookies နဲ႔ပါတ္သတ္ၿပီး ပိုသိခ်င္ရင္ security risk ေတြကို ပို သိခ်င္ရင္ ေအာက္က website ကို သြားေရာက္ ေလ႔လာႏိုင္ပါတယ္။ www.w3.org/Security/faq/wwwsf2.html#CLT-Q10 ဒီလိုဆုိရင္ ဘာျဖစ္လို႔ developer သမားေတြက cookies ကို သံုးေနၾကေသးလဲ။ cook- ies ကို သံုးျခင္းျဖင္႔ သတ္မွတ္ထားတဲ႔ အခ်ိန္ထိ information ကို သိမ္းထားလို႔ရပါတယ္။ Ses- sion ကို သာသံုးမယ္ဆုိရင္ Browser ကို ပိတ္လိုက္တာနဲ႔ သူ႕ရဲ႕ life ကလည္း ကုန္ၿပီေလ။ cookies ကေတာ႔ အဲလို မဟုတ္ပါဘူး။ Session ကိုသာ cookies နဲ႔ တြဲသံုးမယ္ဆုိရင္ browser life ထက္ ပို ၾကာရွည္ခံေအာင္သံုးႏိုင္ပါတယ္။ ဟုတ္ၿပီ။ ခု cookie ကို ဘယ္လို သတ္မွတ္မလဲ။ လြယ္ပါတယ္။ setcookie() ေပါ႔။ ဒါလည္း PHP function တစ္ခုပါဘဲ။ cookie တစ္ခု သတ္မွတ္မယ္ဆုိရင္ ေအာက္က အခ်က္ေတြကို အရင္ဆံုး စဥ္းစား ဖုိ႔လိုပါတယ္။ 1. Cookie name 2. Value of the cookie name (eg. username) 3. Cookie life time (in seconds) UNIX timestamp ေပၚမွာ အေျခခံထားပါတယ္။
  • 34. PHP avScg;xpfrsm;34 rZÑdr pmay ဒါေပမယ္႔ ခုလို ေရးလို႔ရပါ တယ္။ time()+60*60*24*365 ဒါဆုိရင္ သူ႔ရဲ႕ သက္တမ္းက ၁ ႏွစ္စာျဖစ္ပါတယ္။ 4. Path ( cookie ကို သိမ္းမယ္႔ေနရာ) 5. Domain ( ဒီ cookie ကို လက္ခံႏိုင္တဲ႔ domain) (ဒီဟာက optional ျဖစ္ပါတယ္။ မသတ္မွတ္လည္းရတယ္) 6. Cookie မွာ secure connection HTTPS ကို on ေပးထားရမယ္။ အဲဒိေတာ႔ ဒီလိုပံုစံျဖစ္မွာေပါ႔။ setcookie ($name[, $value[, $expire[, $path[, $domain[, $secure]]]]]) ခုလည္း $_COOKIE['cookiename'] ကို သံုးမွာပါဘဲ။ ခု လုပ္မယ္႔ ပရိုဂရမ္မွာဆုိရင္ MgMg12345 ဆုိတဲ႔ user ဟာ ဒီ site ကို လာတုိင္း သူ႔ရဲ႕ username ကို type လုပ္စရာမလိုဘဲ ေအာ္တို ျဖည့္ေပးမွာျဖစ္ပါတယ္။ movie1.php file ကိုဘဲ နည္းနည္းေလး ထပ္ ျပင္ ေရးၾကည့္တာေပါ႔။ <?php setcookie('username', 'MgMg', time() + 60); session_start(); //delete this line: $_SESSION['username'] = 'MgMg12345'; $_SESSION['authuser'] = 1; ?> <html> <head> <title> Find my Favorite Movie! </title> </head> <body> <?php $myfavmovie = urlencode('Enemy at the gate'); echo " <a href="moviesite.php?favmovie=$myfavmovie"> "; echo 'Click here to see information about my favorite movie!'; echo ' </a> '; ?> </body> </html> setcookie('username', 'MgMg', time() + 60);
  • 35. 35udkausmf rZÑdr pmay ၿပီးေတာ႔ ထံုးစံအတိုင္း moviesite.php file ကို နည္းနည္းေလး ထပ္ျပင္ေရးမယ္ <?php session_start(); //check to see if user has logged in with a valid password if ($_SESSION['authuser'] != 1) { echo 'Sorry, but you don't have permission to view this page!'; exit(); } ?> <html> <head> <title> My Movie Site - <?php echo $_GET['favmovie']; ?> </title> </head > <body > <?php echo 'Welcome to our site, '; echo $_COOKIE['username']; echo '! <br/> '; echo 'My favorite movie is '; echo $_GET['favmovie']; echo ' <br/> '; $movierate=5; echo 'My movie rating for this movie is: '; echo $movierate; ?> </body > </html> ဒီလိုဆိုရင္ ေအာက္ပါပံုေတြအတုိင္းျမင္ရမွာပါ။
  • 36. PHP avScg;xpfrsm;36 rZÑdr pmay အထက္က ပရိုဂရမ္ဟာ cookies life time ကို 60 seconds ဘဲ သတ္မွတ္ထားတာပါ။ ကိုယ္႔ဟာကို စိတ္ၾကိဳက္ ျပင္ၾကည့္ၿပီးေလ႔က်င္႔ၾကည့္ပါ။
  • 37. 37udkausmf rZÑdr pmay Passing information with Forms Form ပံုစံကို နည္းနည္းေလာက္ ေလ႔လာၾကည့္ရေအာင္ ။ သူ႔ကို စတင္ေတာ႔မယ္ဆုိရင္ (၁) <form> နဲ႔ စတင္ၿပီး action and method ဆိုတဲ႔ attribute ပါပါတယ္။ action အေနနဲ႔ URL တစ္ခုကို ေပးႏိုင္ၿပီး method အေနနဲ႔ GET or POST တစ္ခုခုကို သံုး ႏိုင္ပါတယ္။ (၂) input fields မ်ားပါပါတယ္။ အသံုးမ်ားတာေတြကေတာ႔ TEXT: min 2 characters to 2000 characters အထိ သံုးႏိုင္ပါတယ္။ ဒိထက္ ပိုမ်ားမ်ားသံုးခ်င္ရင္ေတာ႔ textarea ဆိုတဲ႔ ဟာကို သံုးရပါမယ္။ Check box : user ေတြကို Choice လုပ္ဖုိ႔ရန္အတြက္ျဖစ္ပါတယ္။ choice ကို တစ္ခုထက္မက ေရြးခ်ယ္ႏိုင္မွာျဖစ္ပါတယ္။ Radio: radio button ကလည္း list ထဲကေန ေရြးခ်ယ္ဖို႔ဘဲျဖစ္ပါတယ္။ ဒါေပမယ္႔ သူက တစ္ခုဘဲ ေရြးလို႔ရမွာျဖစ္ပါတယ္။ Select:ဒီေကာင္႔ကိုေတာ႔ေတာ္ေတာ္မ်ားမ်ားကDropdownboxအျဖစ္သိၾကပါတယ္။ Passwords: သူ႔ကိုေတာ႔ user က ဘာရိုက္တယ္ဆုိတာကို Hide လုပ္ထားရမွာျဖစ္ပါတယ္။ Using forms to get information movie1.php file ကိုဘဲ နည္းနည္းေလး ထပ္ၿပီး ျပင္ေရးၾကည့္မယ္ေလ။ ျပင္ရင္းျပင္ရင္း ေတာ္ေတာ္ေတာင္ မ်ားလာၿပီေနာ္။ ကၽြန္ေတာ္ေျပာခ်င္တာက မ်ားလာၿပီဆုိေတာ႔ Comment ေလးေတြ ေသခ်ာေရးဖုိ႔ ပါ။ ေအာက္မွာ ျပထားတဲ႔ Code ေလးေတြကို ေသခ်ာ ေလ႔လာၾကည့္ပါ။
  • 38. PHP avScg;xpfrsm;38 rZÑdr pmay <?php //delete this line: setcookie('username', 'MgMg', time() + 60); session_start(); $_SESSION['username'] = $_POST['user']; $_SESSION['userpass'] = $_POST['pass']; $_SESSION['authuser'] = 0; //Check username and password information if (($_SESSION['username'] == 'MgMg') and ($_SESSION['userpass'] == '12345')) { $_SESSION['authuser'] = 1; } else { echo 'Sorry, but you don't have permission to view this page!'; exit(); } ?> <html> <head > <title> Find my Favorite Movie! </title > </head > <body> <?php $myfavmovie = urlencode('Enemy at the gate'); echo " <a href="moviesite.php?favmovie=$myfavmovie"> "; echo "Click here to see information about my favorite movie!"; echo " </a> "; ?> </body> </html> ျပီးသြားရင္ moviesite.php ကို နည္းနည္း ထပ္ျပင္ေရးပါဦးမယ္။ <?php session_start(); //check to see if user has logged in with a valid password if ($_SESSION['authuser'] !=1 ) { echo 'Sorry, but you don't have permission to view this page!'; exit();
  • 39. 39udkausmf rZÑdr pmay } ?> <html> <head> <title> My Movie Site - <?php echo $_GET['favmovie']; ?> </title> </head> <body> <?php echo 'Welcome to our site, '; //delete this line: echo $_COOKIE['username']; echo $_SESSION['username']; echo '!<br/>'; echo 'My favorite movie is '; echo $_GET['favmovie']; echo ' <br/> '; $movierate = 5; echo 'My movie rating for this movie is: '; echo $movierate; ?> </body> </html> ၿပီးသြားရင္ Login form တစ္ခု တည္ေဆာက္ပါမယ္။ text editor မွာ new document လုပ္ပါ။ File name ကို login.php လုိ႔ နာမည္ေပးပါမယ္။ <?php session_unset(); ?> <html> <head> <title>Please Log In</title> </head> <body> <form method="post" action="movie1.php"> <p> Enter your username: <input type="text" name="user"/> </p> <p> Enter your password:
  • 40. PHP avScg;xpfrsm;40 rZÑdr pmay <input type="password" name="pass"/> </p> <p> <input type="submit" name="submit" value="Submit"/> </p> </form> </body> </html> ၿပီးသြားရင္ login.php file ကို ေခၚၾကည့္ပါမယ္။ ေအာက္ကပံုအတိုင္း ျမင္ရမွာပါ။ username ေနရာမွာ mgmg12345 password ကို 12345 ဆိုၿပီး၀င္ၾကည့္ပါ။ ၀င္လုိ႔ရမွာမဟုတ္ပါဘူး။ username မွားေနတဲ႔အတြက္ ျဖစ္ပါတယ္။ Authorization scripts အလုပ္လုပ္တယ္ေပါ႔ဗ်ာ။
  • 41. 41udkausmf rZÑdr pmay အခု login name "MgMg" and password "12345" နဲ႔၀င္ၾကည့္ပါ။ ၀င္လုိ႔ရသြားတာကို ေတြ႕ရပါမယ္။ How it works ပထမဆံုးအလုပ္လုပ္တာက login.php ေလ ။ ဟုတ္တယ္မလား။ သူ႔ထဲမွာ ဘယ္ page ကဘဲလာတဲ႔ session ေတြထဲက variables ေတြကို unset လုပ္လိုက္ပါတယ္။ အဲဒါကို session_un- set() ဆိုတဲ႔ function နဲ႔ လုပ္လိုက္တာပါ။ ၿပီးရင္ variables ၂ ခုျဖစ္တဲ႔ username and password (user and password respectively) ကို ေမးပါတယ္။ ၿပီးရင္ ရလာတဲ႔ variables ၂ ခုကို movie1. php ကို ပို႔ေပးပါတယ္။ အဲလို ပို႔တဲ႔ေနရာမွာ POST method ကို သံုးၿပီးပို႔ပါတယ္။ အဲဒါေၾကာင္႔ movie1. php မွာ $_POST syntax ကို ေတြ႕ရတာျဖစ္ပါတယ္။ ခု ဒီေလာက္ သိရင္ ရပါၿပီ။ ေနာက္ အခန္းေတြမွာ လက္ေတြ႕ေလ႔က်င္႔ခန္းေတြ လုပ္ရင္းနဲ႔ ပိုၿပီးနားလည္လာပါမယ္။ movie1.php fileက တကယ္ေတာ႔ ေအာက္ပါလုပ္ငန္းစဥ္မ်ားကို လုပ္ေဆာင္သြားပါတယ္ - (၁) Session ကို စတင္ေပးတယ္။ default အားျဖင္႔ login က ရလာတဲ႔ variables ေတြကို register လုပ္ေပးတယ္။ (၂) Usernameand password ကို accept လုပ္ႏိုင္လား မလုပ္ႏိုင္ဘူးလား စစ္ေပးတယ္။ (၃) တကယ္လို႔ username and password ၂ ခုလံုးကို လက္ခံတယ္ဆုိရင္ autheruser ကို 1 အျဖစ္ သတ္မွတ္ ေပးၿပီးေတာ႔ other pages ေတြကို access ေပးပါတယ္။
  • 42. PHP avScg;xpfrsm;42 rZÑdr pmay (like moviesite.php) (၄) တကယ္လို႔ username and password က မွားတယ္ဆုိရင္ error message ကို ျပေပးပါတယ္။ Using if / else arguments ခု if/elsearguments ကိုရွင္းပါမယ္။ ေရွ႕မွာတုန္းကေတာ႔ နည္းနည္း ရွင္းခဲ႔ေသး တယ္ေလ။ မွတ္မိမယ္ထင္တယ္။ if ကို ဘာျဖစ္လို႔ သံုးရတာလဲ။ ဟုတ္ကဲ႔ ဒီလိုပါ။ ကၽြန္ေတာ္တုိ႔ဟာ ခုဆုိရင္ val- ues အမ်ဳိးမ်ဳိးကို variables ေတြနဲ႔ ျပႏိုင္လာၿပီျဖစ္ပါတယ္။ တစ္ခ်ဳိ႕ variable ေတြကို specific action လုပ္ခ်င္တဲ႔အခါမ်ဳိးမွာ if ကို သံုးပါတယ္။ ဥပမာ $password ဆိုတဲ႔ variable ေပါ႔။ user ကို password ေတာင္းမယ္။ user က ထည့္မယ္။ မွန္ရင္ site ထဲကို ၀င္ခြင္႔ေပးမယ္။ မမွန္ဘူးဆုိရင္ user ကို kick out ဒါမွမဟုတ္ site ထဲကို ၀င္ခြင္႔မေပးဘူး။ if ကို else ထပ္ေပါင္း ေပးလိုက္မယ္ဆုိရင္ the whole range of possible actions ေတြကို ထိန္းႏိုင္မွာပါ။ Using if statements Basic if statement က ေအာက္ေဖာ္ျပပါ အတုိင္းျဖစ္ပါတယ္ if (condition) action to be taken if true. ဥပမာ အေနနဲ႔ - if ($stockmarket >1000) echo 'Wharr.... Time to Party'; တကယ္လို႔ simple statement ထက္ ပို ရွည္တယ္ဆုိရင္ေတာ႔ {} ကို သံုးရမွာပါ။ ဒီ အဖြင္႔ အပိတ္ေတြကို ေသခ်ာ ဂရုစိုက္ဖုိ႔လိုပါတယ္။ ေအာက္ေဖာ္ျပပါ နမူနာကို ၾကည့္ပါ။ if ($stockmarket > 10000) { echo 'Wharr .....Time to Party!'; $mood = 'happy'; $retirement = 'potentially obtainable'; }
  • 43. 43udkausmf rZÑdr pmay အခု ကၽြန္ေတာ္တုိ႔ လက္ေတြ႕ေလ႔က်င္႔ဖုိ႔ လုပ္ပါမယ္။ text editor ကိုဖြင္႔ပါ။ new document လုပ္ပါ။ date.php လို႔ နာမည္ေပးပါ။ ၿပီးရင္ ေအာက္က code ေတြအတုိင္း လိုက္ေရးၾကည့္ပါ။ <html> <head> <title> How many days in this month? </title> </head> <body> <?php date_default_timezone_set('Asia/Yangon'); $month = date('n'); if ($month == 1) { echo '31'; } if ($month == 2) { echo '28 (unless it's a leap year)'; } if ($month == 3) { echo '31'; } if ($month == 4) { echo '30'; } if ($month == 5) { echo '31'; } if ($month == 6) { echo '30'; } if ($month == 7) { echo '31'; } if ($month == 8) { echo '31'; } if ($month == 9) { echo '30'; } if ($month == 10) { echo '31'; } if ($month == 11) { echo '30'; } if ($month == 12) { echo '31'; } ?> </body> </html>
  • 44. PHP avScg;xpfrsm;44 rZÑdr pmay ကၽြန္ေတာ္ ဒီစာအုပ္ေရးေနတဲ႔ အခ်ိန္က စက္တင္ဘာလ ျဖစ္တဲ႔အတြက္ 30 လို႔ ျပေနတာပါ။ How it works အရင္ဆံုးdate_default_timezone_set ဆိုတဲ႔ date function တစ္ခု နဲ႔ ကိုယ္ေရာက္ရွိေနတဲ႔ ေဒသေပၚမူတည္ၿပီး time zone သတ္မွတ္တာပါ။ အေမရိကား နယူးေယာက္ မွာဆုိရင္ ('America/ New_York') လို႔ သတ္မွတ္ရမွာပါ။ ကၽြန္ေတာ္တုိ႔ ေရးလိုက္တဲ႔ script က $month ဆိုတဲ႔ variable ကို ယူပါတယ္။ ၿပီးေတာ႔ PHP date function ေတြထဲက တစ္ခုျဖစ္တဲ႔ date('n') ဆိုတဲ႔ value နဲ႔ assign လုပ္ေပးလို္က္ပါတယ္။ ဒီ script က ဆာဗာ ရဲ႕ အခ်ိန္ကို ၾကည့္ပါတယ္။ ဒီေနရာမွာ တစ္ခု ေျပာခ်င္တာက date function ကိုက 1 for january , 2 for february စသျဖင္႔ သိပါတယ္။ ေတာ္ေနၾကာ ဘယ္က ဘယ္လို သိတာလဲ ဦးေဏွာက္စားေနမွာစိုးလို႔ပါ။ date function ကိုလည္း ေနာက္ပိုင္း အခန္းေတြမွာ အက်ယ္တ၀န္႔ ရွင္းပါဦးမယ္။ ဒီ script မွာ if statement သံုးၿပီး မွန္တဲ႔ အထိ စစ္ပါတယ္။ ပထမဆံုး if statement က False ျဖစ္သြားတယ္ဆုိရင္ေနာက္ ထပ္ statement တစ္ခုကို ခ်က္ျခင္းစစ္ပါတယ္။ ဒီလိုနဲ႔ True ျဖစ္တဲ႔အထိ စစ္ပါတယ္။ Using if and else together သူ႕ရဲ႕ပံုစံေလးကေတာ႔ေအာက္ပါအတုိင္းျဖစ္ပါတယ္။အက်ယ္တ၀န္႔ေတာ႔မရွင္းေတာ႔ဘူးေလ။ တစ္ခု မဟုတ္ရင္ တစ္ခု ဆုိတဲ႔ အဓိပၸာယ္ရပါတယ္။ <?php $test = 5; if($test < 15) { echo 'The condition was met'; } else { echo 'The condition was not met'; } ?>
  • 45. 45udkausmf rZÑdr pmay အထက္က ပရိုဂရမ္ေလးကို ၾကည့္မယ္ဆုိရင္ $test ဆိုတဲ႔ variable တန္ဖုိးကို 5 လို႔ သတ္မွတ္လိုက္တယ္။ ၿပီးေတာ႔ if statement နဲ႔ စစ္ၾကည့္လိုက္တယ္။ စစ္ၾကည့္တယ္ဆိုတာ ကိုယ္ output လုပ္ခ်င္တဲ႔ data အတြက္ ျဖစ္ပါတယ္။ $test က 15 ထက္ငယ္တယ္ဆုိရင္ The condition was met ကို ထုတ္ေပးမွာပါ။ မငယ္ဘူးဆုိရင္ေတာ႔ The condition was not met ဆိုတဲ႔ စာေၾကာင္းကို ထုတ္ေပးမွာပါ။ $test = 20 လို႔သာေပးခဲ႔မယ္ဆုိရင္ ဒုတိယ output ကို ထုတ္ေပးမွာပါ။ တကယ္လို႔ ကုိယ္ေပးခ်င္တဲ႔ message က အေျခအေန ၂ ခုထက္ပိုရင္ ဘယ္လိုလုပ္မလဲ ။ ရပါတယ္။ အဲဒိအခါမွာ if ရယ္ else ရယ္ၾကားမွာ else if ကို ထည့္သြင္း အသံုးျပဳႏိုင္ပါေသးတယ္။ ေအာက္က နမူနာေလးကို ေလ႔လာၾကည့္ရေအာင္။ <?php $age = 20; if($age < 18) { echo "Not old enough to vote or drink! <br />"; } else if ($age < 21) { echo "Old enough to vote, but not to drink. <br />"; } else { // If we get here, $age is >= 21 echo "Old enough to vote and drink! <br />"; } ?> အေပၚက code ကိုေလ႔လာၾကည့္ရင္ အသက္ ၁၈ ႏွစ္ေအာက္ဆုိရင္ vote or drink ၂ ခုလံုး လုပ္လို႔မရဘူး။ တကယ္လို႔ ၂၁ ႏွစ္ေအာက္ဆုိရင္ေတာ႔ ( ၁၈ ႏွစ္ နဲ႔ ၂၁ ႏွစ္ၾကားျဖစ္သြားတာေပါ႔) ေသာက္လုိ႔မရဘူး။ ေအာက္ဆံုး တစ္ခုက ေတာ႔ ၂ ခုလံုးလုပ္လုိ႔ရၿပီေပါ႔။ $age=20 ဆိုတဲ႔ ေနရာမွာ အသက္ အမ်ဳိးမ်ဳိးကို ေျပာင္းလဲ ေလ႔က်င္႔ၾကည့္ပါ။
  • 46. PHP avScg;xpfrsm;46 rZÑdr pmay While and do-while while loop က ဘယ္လို လုပ္ေပးလဲဆုိရင္ code block တစ္ခုကို True မျဖစ္မခ်င္း repeat လုပ္ေပးပါတယ္။ နမူနာေလးနဲ႔တြဲေလ႔လာလိုက္ရင္ ပိုနားလည္သြားမွာပါ။ <?php $i = 0; while($i<3) { echo "Count is at $i. <br />"; ++$i; } ?> အထက္ကပံုစံမွာဆုိရင္ ကၽြန္ေတာ္တုိ႔က counter variable $i ကို သံုးထားပါတယ္။ သူ႕ရဲ႕ ကနဦးတန္ဖုိးကို သုည 0 ေပးထားလိုက္ပါတယ္။ ေနာက္ၿပီးေတာ႔ while loop ထဲထည့္ သံုးလိုက္ပါတယ္။ ဘယ္ အေျခအေနထိ ဒီကုဒ္ ကို Run မွာလဲဆုိေတာ႔ <3 ထိ ပါ။ ဘယ္က စမွာလဲဆုိေတာ႔ သုည ကပါ။ while နဲ႔စစ္မယ္။ ပထမဆံုးက သုည ..အုိေက မွန္တယ္ ဘာျဖစ္လို႔လဲဆုိေတာ႔ 3 ထက္ငယ္တယ္ေလ။ ဒီေတာ႔ ပထမဆံုး output အေနနဲ႔ Count is at 0. ျဖစ္မယ္။ ဒုတိယအေနနဲ႔ 1 တတိယအေနနဲ႔ 2 အထိမွန္တယ္။ စတုတၳအေနနဲ႔ 3 ၾကေတာ႔ မမွန္ေတာ႔ဘူး။ ဘာျဖစ္လုိ႔လဲဆိုေတာ႔ <3 ဆိုတာ 3 နဲ႔ ညီလို႔မရဘူး။ ငယ္ကိုငယ္ရမွာ။ ဒီလိုမ်ဳိး ပထမက 0 ဒုတိယက 1 တတိယက 2 ဆိုတာ ဘယ္လို လုပ္ ကြန္ပ်ဴတာက သိလဲ။ ဟုတ္ကဲ႔... ++$i ဆိုတဲ႔ဟာနဲ႔ ေဖာ္ျပတာပါ။ ထြက္လာတဲ႔ တန္ဖုိးကုိ 1 ေပါင္း ေပးတာပါ။ ဒီ script ကို run လိုက္ရင္ Browser မွာ ဒီလို ေပၚမွာပါ။ Count is at 0. Count is at 1. Count is at 2 မွတ္ခ်က္။ သင္႔ အေနနဲ႔ မွတ္ထားရမွာက condition က မကိုက္ညီႏိုင္ဘူးဆုိရင္ loop က ex- cute လုပ္ေပးမွာ မဟုတ္ပါဘူး။ $i=4 ဆိုရင္ ဘာ output မွ ထြက္လာမွာမဟုတ္ပါဘူး။
  • 47. 47udkausmf rZÑdr pmay do-while loop <?php $i=10; do{ echo "The count is at $i."; ++$i; }while(i<5); ?> ဒီပံုစံမွာဆုိရင္ do ဆုိေတာ႔ လုပ္ပါေပါ႔။ ဘာလုပ္ခိုင္းလဲဆုိရင္ output အေနနဲ႔ $i value ကို ထုတ္ခိုင္းတယ္။ ၿပီးေတာ႔ while loop ကို ဆက္ဆင္းတယ္။ အဲဒိမွာၾကေတာ႔ ဘာ output မွ မထြက္ေတာ႔ဘူးေလ။ initial value ကိုက 10 ျဖစ္ေနၿပီ။ while မွာေပးထားတဲ႔ condition က < 5 ဆိုေတာ႔ ဘာ မွ ထြက္လာမွာမဟုတ္ဘူး။ Output အေနနဲ႔ The count is 10. ဆိုၿပီး ေပၚလာမွာပါ။ FOR loop for loop ဆိုတာ PHP program ရဲ႕ အသံုးမ်ားဆံုး statement ေတြထဲက တစ္ခု အပါ၀င္ျဖစ္ပါတယ္။ သူ႔ အေနနဲ႔ expression ၃ ခု ကို လက္ခံႏိုင္ပါတယ္။ Expression 1 အေနနဲ႔ loop ရဲ႕ အစ တန္ဖုိးကို ေဖာ္ျပတာျဖစ္ၿပီး Expression 2 အေနနဲ႔ကေတာ႔ expression 1 အေပၚအေျခခံကာ iteration method သံုးၿပီး တြက္ခ်က္မွာ ျဖစ္ပါတယ္။ True value ေတြကိုဘဲ တြက္မွာျဖစ္ၿပီး False ျဖစ္သြားတဲ႔အခါမွာ ရပ္သြားမွာျဖစ္ပါတယ္။ Expression 3 အေနနဲ႔ကေတာ႔ iteration တစ္ခုစီရဲ႕ end of iteration ျဖစ္ပါတယ္။ ဒီလိုေျပာေနေတာ႔ နည္းနည္း ရႈပ္သြားသလို ခံစားရမယ္။ မရႈပ္ဘူးေနာ္။ ေအာက္က နမူနာပံုစံေလးကိုၾကည့္လိုက္။ လြယ္မွလြယ္။ ေျပာဖုိ႔က်န္သြားတယ္။ Expression တစ္ခုစီမွာ အစိတ္အပိုင္း တစ္ခု ထက္မက ပါႏိုင္ပါတယ္။ ပါလာခဲ႔ရင္ comma (,) နဲ႔ ခံေပးရပါမယ္။ Expression တစ္ခုနဲ႔တစ္ခုၾကားမွာေတာ႔ semicolon (;) နဲ႔ ခံေရးေပးရပါတယ္။
  • 48. PHP avScg;xpfrsm;48 rZÑdr pmay <?php for($i=0; $i<5; ++$i){ echo "The count is $i <br />"; } ?> ဒါဆုိရင္ အဲဒိ script ကို run မယ္ဆုိရင္ browser က ေအာက္ပါအတုိင္း ျပေပးမွာပါ။ The count is 0 The count is 1 The count is 2 The count is 3 The count is 4 FOREACH loop foreach ဆိုတဲ႔ အတုိင္း သူလည္းဘဲ တစ္ခုခ်င္းစီအတြက္ သံုးတာေပါ႔ဗ်ာ။ ဒီ foreach က ar- rays နဲ႔ တြဲသံုးရင္ very powerfull ျဖစ္တယ္ဗ်။ နမူနာေလးနဲ႔ဘဲျပမယ္ဗ်ာ။ ေရွ႕ခန္း က array ကိုေသခ်ာ နားလည္ခဲ႔ရင္ လြယ္ပါတယ္။ <?php $bands = array( "IronCross", "Emperor", "LazyClub", "Aurora" ); foreach($bands as $band) { echo $band, "<br />"; } ?> ဘယ္လို အလုပ္သြားသလဲဆုိရင္ $bands ဆုိတဲ႔ variable နဲ႔ array တစ္ခု နဲ႔ တည္ေဆာက္လိုက္တယ္။ ၿပီးေတာ႔ foreach နဲ႔ loop ပတ္လိုက္တယ္။ $bands as $band ဆိုတာမွာ as = alias name (နာမည္ခြဲ ေပါ႔ ဗ်ာ) ။ array ထဲက value တစ္ခု စီကို variable တစ္ခု စီ အျဖစ္
  • 49. 49udkausmf rZÑdr pmay သတ္မွတ္လိုက္တယ္။ အဲဒိေတာ႔ ဘယ္လိုျဖစ္သြားမလဲ။ ျမင္သာေအာင္ ရွင္းျပရရင္ $band = Iron- Cross ေနာက္တစ္ခါ ထပ္ပတ္ျပန္ေတာ႔ $band = Emperor ..and so on ေပါ႔ဗ်ာ။ အဲဒိေတာ႔ output ထုတ္လိုက္ရင္ Browser က ေအာက္ပါအတုိင္း ျပပါလိမ္႔မယ္။ IronCross Emperor LazyClub Aurora foreach loop ရဲ႕ လွပၿပီး အသံုး၀င္တဲ႔ ပံုစံေလးတစ္ခုကို နည္းနည္းေလး ထဲထဲ၀င္၀င္ ထပ္ေလ႔လာၾကည့္ရေအာင္။ ေအာက္က ပံုစံေလးကိုၾကည့္ၾကည့္ပါ။ <?php $person = array( 'name' => 'Kokyaw', 'age' => 23, 'passion' => 'craft beer' ); foreach($person as $key => $value) { echo "His $key is $value. <br />"; } ?> အထက္က script ကို run လိုက္ရင္ ေအာက္ပါ အတုိင္း browser က ထုတ္ေပးမွာပါ။ His name is Kokyaw. His age is 23. His passion is craft beer.
  • 50. PHP avScg;xpfrsm;50 rZÑdr pmay Break ဘယ္ loop မွာ မဆို break function သံုးၿပီး လိုခ်င္တဲ႔ ေနရာမွာ ရပ္တန္႔လို႔ရပါတယ္။ ဥပမာ- while($i<10) { if($i == 7) { break; // Exit the while loop } } ဒီမွာဆုိရင္ while and if ကို တြဲသံုးသြားတာ ေတြ႕ရပါမယ္။ break က loop မဟုတ္ဘဲ loop ကို အေျခအေနတစ္ခုမွာ ရပ္တန္႔ေပးတယ္ဆုိတာကို မွတ္ထားဖုိ႔လုိပါတယ္။ $i ==7 ဆိုတဲ႔ ေနရာမွာ loop က ရပ္သြားမွာပါ။ ရပ္ၿပီးသြားတာနဲ႔ loop ကိေန ထြက္သြားမွာ ျဖစ္ပါတယ္။ Switch Switch statement ကို codition 2 ခုထက္ ပိုတဲ႔ အခါမ်ဳိးမွာ သံုးေလ႔ရွိပါတယ္။ သူ႔ကို case နဲ႔ တြဲၿပီး သံုးရပါတယ္။ ေမးစရာရွိလာပါတယ္။ if ကို သံုးရင္ေရာ မရဘူးတဲ႔လား။ ရပါတယ္ လို႔ဘဲေျဖရမွာဘဲ။ ဒါေပမယ္႔ codition အမ်ားႀကီးအတြက္ဆုိိရင္ switch ကို သံုးရတာ ပိုၿပီး လြယ္ကူျမန္ဆန္ပါတယ္။ case တစ္ခုခ်င္းစီဟာ ဘာနဲ႔ သြားတူသလဲဆုိရင္ if function နဲ႔ သြားတူပါတယ္။ switch မွာ expression ကို လက္ခံၿပီး case တစ္ခုခ်င္းစီနဲ႔ စစ္ပါတယ္။ မွန္သြားၿပီဆုိတဲ႔ case မွာ code ကို excute လုပ္ပါတယ္။ case တစ္ခုခ်င္းစီကို break statement or else statement နဲ႔ separate လုပ္ထားရပါမယ္။ နမူနာေလး တစ္ခုနဲ႔ ျပပါမယ္။ date ကို check လုပ္တဲ႔ script ေလးတစ္ခုေပါ႔။ ရိုးရိုးရွင္းရွင္းေလးနဲ႔ နားလည္လြယ္ပါတယ္။ <?php $day = date('w'); switch($day) { case '0': echo "It's Sunday!"; break;
  • 51. 51udkausmf rZÑdr pmay case '1': echo "It's Monday!"; break; case '2': echo "It's Tuesday!"; break; case '3': echo "It's Wednesday!"; break; case '4': echo "It's Thursday!"; break; case '5': echo "Woohoo! It's Friday!"; break; case '6': echo "It's Saturday!"; break; default: echo "That's no day I recognize..."; break; } ?> ကၽြန္ေတာ္တုိ႔ အေပၚက script မွာဆုိရင္ date() function ကို ယူသံုးခဲ႔ပါတယ္။ $date ဆိုတဲ႔ variable ရဲ႕ value ကို date() နဲ႔ ေပးခဲ႔တာပါ။ w ဆိုတာက week ကို ေျပာတာပါ။ ေနာက္ပိုင္း အခန္းေတြမွာ လက္ေတြ႕လုပ္ရင္း နဲ႔ ပိုနားလည္မွာပါ။ ခုကေတာ႔ ဒီေလာက္ သိထားရင္ ရပါၿပီ။
  • 52. PHP avScg;xpfrsm;52 rZÑdr pmay Continue contiune ရဲ႕ အလုပ္လုပ္ပံုက break ရဲ႕ အလုပ္လုပ္ပံုနဲ႔ ဆင္တူပါတယ္။ ျခားနားတာေလးတစ္ခုဘဲရွိတယ္။ အဲဒါက ဘာလဲဆုိေတာ႔ contiune ဟာ လက္ရွိ အေျခအေနမွာဘဲ end ျဖစ္ပါတယ္။ ျပီးရင္ သူက Loop က ေန ျပန္မထြက္ သြားပါဘူး။ ဆက္ၿပီးေတာ႔ loop လုပ္ပါတယ္။ ဥပမာ အေနနဲ႔ ကၽြန္ေတာ္တုိ႔ စံု ဂဏန္းသီးသန္႔ ထုတ္ၾကည့္ ရေအာင္ ။ <?php for($i=0; $i<=10; ++$i) { /* * If the modulus of $i and 2 is not zero (which evaluates * to false), we continue */ if($i%2) { continue; } echo $i, " "; } ?> ဒီမွာဆုိရင္ for နဲ႔ if ကို တြဲသံုးထားပါတယ္။ For loop ထဲမွာ if statement ထည့္သံုးၿပီးေတာ႔ အေျခအေနကို စစ္ခိုင္းတာပါ။ $i%2 ဆိုတာက $i တန္ဖိုးကို ၂ နဲ႔ စားလို႔ ျပတ္ သြားရင္ continue (loop ကို ဆက္ ၿပီးေတာ႔ ပတ္ခုိင္းတာပါ) လုပ္ခိုင္းပါတယ္။ " " ကို ထည့္သံုးလိုက္တာက space ျခားေစခ်င္လုိ႔ပါ။ သူ႔ကို run လုိက္ရင္ 0 2 4 6 8 10 ဆိုၿပီးရပါမယ္။
  • 53. 53udkausmf rZÑdr pmay return return statement ဟာဆုိရင္ PHP မွာ most usefull statement လို႔ေတာင္ ေျပာလို႔ရပါတယ္။ သူ႔ရဲ႕ သေဘာတရားကေတာ႔ function တစ္ခုအတြင္း မွာထည့္သံုးၿပီး အဆံုးကိုေရာက္သြားၿပီဆုိရင္ function ကို stop လုပ္လိုက္ၿပီး ရလာတဲ႔ argument ကို function ရဲ႕ value အျဖစ္ ျပန္ထုတ္ေပးတာဘဲ ျဖစ္ပါတယ္။ တကယ္လို႔ function ရဲ႕ အျပင္ဘက္မွာ သံုးမယ္ဆုိရင္ေတာ႔ script ကို stop လုပ္တာဘဲျဖစ္ပါတယ္။ ဒီ return အေၾကာင္းကို ေနာက္ပိုင္းမွာ user defined function အခန္းေရာက္ရင္ ဆက္ရွင္းပါမယ္။ ခုေတာ႔ ဒီေလာက္သိထားဖုိ႔ဘဲလိုပါတယ္။ Understanding ARRAYS array ကေတာ႔ PHP ရဲ႕ powerfull datatypes ထဲက တစ္ခုဘဲျဖစ္ပါတယ္။ သူ႔ရဲ႕ map infor- mation ( map ဆိုတာက one to one function လိုပါဘဲ) က key နဲ႔ value ဆိုတာကို သံုးပါတယ္။ နံပါတ္ ၁ key သည္ နံပါတ္ ၁ value ေပါ႔။ ဒီေတာ႔ array ဆိုတဲ႔ အထဲမွာ information အမ်ားႀကီးကို variable တစ္ခုခ်င္းစီအေနနဲ႔ သိမ္းဆည္းထား လို႔ရတယ္။ သံုးခ်င္တဲ႔အခါ အကုန္ထုတ္သံုးလို႔ရသလို လိုအပ္တာေလးေတြဘဲ လည္း ထုတ္သံုးလို႔ရတယ္ေလ။ array ဆိုတာ ေသတၱာ နဲ႔ လည္းတူပါတယ္။ သူ႔ထဲမွာ ပစၥည္းေတြထည့္ထားမယ္။ ကိုယ္က လိုအပ္တဲ႔အခါ လိုအပ္တာကို ထုတ္ယူမယ္။ နံပါတ္ ၁ ေသတၱာထဲမွာ ခဲတံ ၊ ေပတံ ေတြဘဲ ထည့္ထားမယ္လို႔ မွတ္ထားရင္ ေနာင္ ကို လိုတဲ႔အခါ ခ်က္ခ်င္း သြားယူလို႔ရမယ္ေလ။ နံပါတ္ ၂ ထဲမွ ပုဆိုး ထားမယ္ဆုိရင္ ေနာင္ ကို ပုဆုိးလိုတဲ႔အခါ ဘယ္ လိုက္ရွာရမွန္း မျဖစ္ေတာ႔ဘူး ။ သိေနၿပီ နံပါတ္ ၂ ထဲမွာ ဆုိတာကို ။ အဲဒိထဲကမွ ဘာ အေရာင္ ဘာ အမ်ဳိးအစား ဆုိတာေတာ႔ ထပ္ေရြး ရမွာေပါ႔။ ေအာက္က script ကို ၾကည့္ပါ။ ရိုးရိုး တန္းတန္းေရးထားတာပါ။ <?php $entryTitle = "Sample Title"; $entryDate = "September 9, 2011"; $entryAuthor = "Kokyaw"; $entryBody = "Today, I wrote a blog entry."; ?>