Chapter 1                                Configuring Your InstallationIntroduction	       Great website ေတြကို creat လုပ္ေ...
2                                                       PHP        avScg;xpfrsm;shot နဲ႔ ျပပါတယ္။Requirements	        ခု သ...
udkausmf                 3Next ကို ႏွိပ္ပါ။                    rZÑdr pmay
4                                                           PHP        avScg;xpfrsm;default အေနနဲ႔ c ေအာက္မွာ wamp ဆိုတဲ႔ ...
udkausmf                                                                     5အဲဒိ ျမားျပထားတဲ႔ icon ေပၚမွာ left click ႏွိ...
6                                                        PHP        avScg;xpfrsm;အားလံုးၿပီးသြားၿပီဆုိရင္ သင္႔အေနနဲ႔ wamp ...
udkausmf                                                                   7Your projects ဆိုတဲ႔ေနရာမွာ ခုေလာေလာဆယ္ ေအာက္ပ...
8                                                      PHP       avScg;xpfrsm;How to use Notepad++	       Notepad++ ကို in...
udkausmf                                                                           9                                 Chapt...
10                                                          PHP         avScg;xpfrsm;	       <?php		              $num = 1...
udkausmf                                                                       11        Example(2) ကိုၾကည့္လိုက္ရင္ ပိုရွ...
12                                                    PHP        avScg;xpfrsm;Creating your first program		      Using (ec...
udkausmf                                                                        13ကဲ အခု ေနာက္ထပ္ တစ္ေၾကာင္းေလာက္ ထပ္ေပါင္...
14                                                         PHP         avScg;xpfrsm;How it works?	       Browser ကေန PHP p...
udkausmf                                                                             15mark (") ေတြကို လိုအပ္သလို အသံုးျပဳ...
16                                                       PHP        avScg;xpfrsm;ဥပမာ		             echo <p style="font-si...
udkausmf                                                                        17       အထက္က ဥပမာ ၂ ခုကို ယွဥ္ၾကည့္မယ္ဆု...
18                                                  PHP       avScg;xpfrsm;	   <html>  		       <head>  			            <ti...
udkausmf                                                                        19        Overview of Variables        Con...
20                                                    PHP        avScg;xpfrsm;How it works	      ပထမဆံုး $movierate ဆုိတဲ႔...
udkausmf                                                                        21ဒီပရိုဂရမ္ေလးကို    ေလ႔လာၾကည့္ရင္       ...
22                                                         PHP           avScg;xpfrsm;	       အခုက အျမည္းေလးေကၽြးထားတဲ႔သေဘ...
udkausmf                                                                          23သူ႔ရဲ႕ သေဘာတရားကေတာ႔ id နံပါတ္ 12345 ျ...
24                                                     PHP        avScg;xpfrsm;				                           echo $_GET[f...
udkausmf                                                                              25     ပံုမွာ ျမင္တဲ႔အတုိင္းဘဲ သူက c...
26                                                        PHP        avScg;xpfrsm;ပံုမွာျမင္ရတဲ႔အတုိင္းဘဲ $favmovie = TheG...
udkausmf                                                                         27       save လုပ္ၿပီး ျပန္ ဖြင့္ၾကည့္ရေအ...
28                                                   PHP        avScg;xpfrsm;	      what is a session?        Session ဆိုတ...
udkausmf                                                                  29                     echo Click here to see in...
30                                                         PHP        avScg;xpfrsm;		        ?>	    </body></html>    Save...
udkausmf                                                                           31        <?php                if (1+3 ...
32                                                       PHP        avScg;xpfrsm;	       if($_SESSION[authuser] !=1) ဆိုတာ...
udkausmf                                                                        33Passing variables with cookies        Co...
34                                                    PHP      avScg;xpfrsm;ဒါေပမယ္႔ ခုလို ေရးလို႔ရပါ တယ္။ time()+60*60*24...
udkausmf                                                                       35        ၿပီးေတာ႔ ထံုးစံအတိုင္း moviesite....
36                                                     PHP   avScg;xpfrsm;	       အထက္က ပရိုဂရမ္ဟာ cookies life time ကို 6...
udkausmf                                                                        37Passing information with Forms        Fo...
38                                                        PHP        avScg;xpfrsm;<?php	         //delete this line: setco...
udkausmf                                                                   39              }       ?><html><head> <title> ...
40                                                      PHP        avScg;xpfrsm;          			            <input type="pass...
udkausmf                                                                            41အခု login name "MgMg" and password "...
42                                                         PHP         avScg;xpfrsm;(like moviesite.php)	       (၄) တကယ္လိ...
udkausmf                                                                        43       အခု ကၽြန္ေတာ္တုိ႔ လက္ေတြ႕ေလ႔က်င္႔...
44                                                      PHP        avScg;xpfrsm;	    ကၽြန္ေတာ္ ဒီစာအုပ္ေရးေနတဲ႔ အခ်ိန္က စက...
udkausmf                                                                     45       အထက္က ပရိုဂရမ္ေလးကို ၾကည့္မယ္ဆုိရင္ ...
46                                                        PHP   avScg;xpfrsm;While and do-while	      while loop က ဘယ္လို ...
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Php (myanmar)
Upcoming SlideShare
Loading in...5
×

Php (myanmar)

8,403

Published on

PHP myanmar လို

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
8,403
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
39
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Php (myanmar)

  1. 1. Chapter 1 Configuring Your InstallationIntroduction 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. 2. 2 PHP avScg;xpfrsm;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 ကို ႏွိပ္ပါ။ rZÑdr pmay
  3. 3. udkausmf 3Next ကို ႏွိပ္ပါ။ rZÑdr pmay
  4. 4. 4 PHP avScg;xpfrsm;default အေနနဲ႔ c ေအာက္မွာ wamp ဆိုတဲ႔ folder နာမည္နဲ႔ install လုပ္မွာပါ။ Next ကိုဘဲ ႏွိပ္ပါ။ ေနာက္တစ္ခါ Quick launch တုိ႔ဘာတုိ႔ေရြးခိုင္းရင္လည္း ႏွစ္သက္သလို ေရြးၿပီး Next လုပ္ပါ။ ၿပီးရင္ေတာ႔ Install ကို ႏွိပ္ပါ။ ဒါဆုိရင္ သူ႔ဟာသူ install လုပ္ေနပါလိမ္႔မယ္။ ၿပီးသြားရင္ default browser ေရြးခိုင္းပါလိမ္႔မယ္။ ကၽြန္ေတာ္ကေတာ႔ firefoxကိုဘဲေရြးခဲ႔ပါတယ္။ ေနာက္တစ္ဆင္႔အေနနဲ႔ mail parameters ကို ေရြးခိုင္းပါတယ္။ေလာေလာဆယ္ ဒီအတုိင္းထားၿပီး Next ကိုဘဲ ႏွိပ္ပါတယ္။ၿပီးသြားရင္ေတာ႔ Finish ကို ႏွိပ္လိုက္ပါ။ ဒါဆုိရင္ task bar မွာ ေအာက္ပါအတုိင္းေပၚေနပါလိမ္႔မယ္။ rZÑdr pmay
  5. 5. udkausmf 5အဲဒိ ျမားျပထားတဲ႔ icon ေပၚမွာ left click ႏွိပ္ၿပီးေတာ႔ put online ကို ကလစ္လိုက္ပါ။အဲဒါၿပီးရင္ wamp server icon ေလးဟာ ေအာက္ပါပံုအတုိင္းေျပာင္းသြားပါလိမ္႔မယ္။ rZÑdr pmay
  6. 6. 6 PHP avScg;xpfrsm;အားလံုးၿပီးသြားၿပီဆုိရင္ သင္႔အေနနဲ႔ 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 လုပ္ရင္လည္းတက္ပါတယ္။ rZÑdr pmay
  7. 7. udkausmf 7Your 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 အတိုင္းသာ သံုးသြားမည္ျဖစ္ပါသည္။ rZÑdr pmay
  8. 8. 8 PHP avScg;xpfrsm;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 withNotepad++ လုပ္လုိက္ပါ။ ဒီလိုဆိုရင္ notepad++ program တက္လာပါမယ္။ တက္လာတဲ႔အခါမွာLanguage မွာ PHP ကို ေရြးေပးပါ။ ၿပီးရင္save as လုပ္ၿပီးေတာ႔ နာမည္တစ္ခုနဲ႔ သိမ္းလိုက္ရင္ phpfile တစ္ခုကို ရလာမွာျဖစ္ပါတယ္။ default အေနနဲ႔ PHP ရဲ႕ open and close tag ေတြကို အနီနဲ႔ေဖာ္ျပၿပီး comment ေတြကို အစိမ္းနဲ႔ျပပါတယ္။ ျပင္ခ်င္တယ္ဆုိရင္ေတာ႔ settings/style configura-tor မွာ ျပင္လို႔ရပါတယ္။ rZÑdr pmay
  9. 9. udkausmf 9 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 နဲ႔ စၿပီးေတာ႔ ေနာက္ဆံုးမွာ ?> အဆံုးသတ္ရပါတယ္။ ေယ်ဘူယ်အားျဖင္႔ PHP statement ေတြရဲ႕အဆံုးကို semicolon(;)နဲ႔ အဆံုး သတ္ေပးရပါတယ္။ေအာက္က ဥပမာကို ၾကည့္ပါ။ rZÑdr pmay
  10. 10. 10 PHP avScg;xpfrsm; <?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 ကို ရွာရေတာ႔မယ္။ အဲဒိအခါမွာစေရးကတည္းက ရႈပ္ေထြးေနေအာင္ေရးခဲ႔မယ္ဆုိရင္ အလြယ္တကူ ရွာဖို႔ ခက္ခဲမွာပါ။ေအာက္က နမူနာပံုစံကိုၾကည့္ၾကည့္ပါ။ rZÑdr pmay
  11. 11. udkausmf 11 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 isnt 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 names not MgMg so you cannot enter the web site!; echo </p>; rZÑdr pmay
  12. 12. 12 PHP avScg;xpfrsm;Creating your first program Using (echo) 1. ေအာက္မွာ ျပထားတဲ႔ ကုဒ္ေတြကို notepad++ ထဲ ကူးထည့္ၿပီး firstprog.php ဆိုၿပီး Saveလုပ္ပါ။ <html> <head> <title>My first Program</title> </head> <body> <?php echo "Im a KoKo.And Im OK."; ?> </body> </html>OK . အဲဒိ firstprog.php ဆိုတ႔ဲ ဖုိင္ကို web browser ကေန ၾကည့္ၾကည့္ရင္ ေအာက္ကပံုအတိုင္းျမင္ရပါမယ္။ rZÑdr pmay
  13. 13. udkausmf 13ကဲ အခု ေနာက္ထပ္ တစ္ေၾကာင္းေလာက္ ထပ္ေပါင္း ေရးၾကည့္ရေအာင္။ ထပ္ေပါင္းေရးတဲ႔စာေၾကာင္းကို Highlight လုပ္ေပးထားပါတယ္။ <html> <head> <title>My first Program</title> </head> <body> <?php echo "Im a KoKo."; echo And Im OK.; ?> </body> </html>File ကို save လုပ္ၿပီးေတာ႔ Browser ကေန ျပန္ၾကည့္ၾကည့္ပါ။ ေအာက္ပါ ပံုအတိုင္း ျမင္ရပါလိမ္႔မယ္။ rZÑdr pmay
  14. 14. 14 PHP avScg;xpfrsm;How it works? Browser ကေန PHP program ကို​ call လုပ္လိုက္ရင္ အရင္ဆံုး PHP code ေတြကို lineby 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 " Im a KoKo"; အဲဒိဟာကို output အေနနဲ႔ ထုတ္လိုက္ရင္ Im a KoKo ဆိုၿပီး ရလာမွာပါ။ ဘာျဖစ္လို႔လဲဆိုေတာ႔text string ရဲ႕ အစနဲ႔ အဆံုး ကို " နဲ႔ ခံၿပီး သံုးထားလို႔ပါ။ double quotaion mark (") ႏွစ္ခုၾကားမွာရွိတဲ႔ဟာက String ေတြျဖစ္တယ္ဆုိတာ PHP က သူ႔အလိုလို သိပါတယ္။ ေအာက္က နမူနာကိုလည္းၾကည့္ပါဦး။ echo Im a KoKo; အဲဒိ လိုင္းကို Output ထုတ္လိုက္ရင္ Error message ရလာမွာပါ။ ဘာျဖစ္လို႔လဲဆုိေတာ႔String value က ဘယ္က စမွန္း PHP က မသိေတာ႔ပါဘူး။ Im က က စတာလား ။ ဒါမွမဟုတ္ I ကစတာလားဆိုတာ Confused ျဖစ္သြားပါၿပီ။ အဲဒိလိုဘဲ double quotation mark နဲ႔ စေပမယ္႔ အလားတူProblem မ်ဳိး ေတြလည္းျဖစ္ႏုိင္ပါတယ္။ ေအာက္က နမူနာေလးကို ေလ႔လာၾကည့္ပါ။ echo "Im a KoKo . "Hello world""; အဲဒိေတာ႔ လိုအပ္သလို ေပၚဖုိ႔ single quotation mark() and double quotation rZÑdr pmay
  15. 15. udkausmf 15mark (") ေတြကို လိုအပ္သလို အသံုးျပဳရမွာပါ။ အထက္ပါ code ကို မွန္မွန္ကန္ကန္ Run ဖို႔ေအာက္ပါအတုိင္း ေရးရင္ ရပါတယ္။ echo"Im 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>Im a KoKo.</h1>"; echo "<h2>Im 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 ကို အမ်ားဆံုးသံုးသင္႔ပါတယ္။ rZÑdr pmay
  16. 16. 16 PHP avScg;xpfrsm;ဥပမာ 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> rZÑdr pmay
  17. 17. udkausmf 17 အထက္က ဥပမာ ၂ ခုကို ယွဥ္ၾကည့္မယ္ဆုိရင္ အဓိက ရည္ရြယ္ခ်က္က $_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 ထဲရိုက္ထည့္ပါ။ rZÑdr pmay
  18. 18. 18 PHP avScg;xpfrsm; <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 ထြက္လာပါမယ္။ rZÑdr pmay
  19. 19. udkausmf 19 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 > rZÑdr pmay
  20. 20. 20 PHP avScg;xpfrsm;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; ?> rZÑdr pmay
  21. 21. udkausmf 21ဒီပရိုဂရမ္ေလးကို ေလ႔လာၾကည့္ရင္ ရိုးရုိးရွင္းရွင္းေလးပါဘဲ။ သခ်ၤာ ေဖာ္ျမဴလာအတုိင္းစုစုေပါင္းကို အေရအတြက္ နဲ႔ စားလုိက္ရင္ average value ကို ရတာဘဲေလ ။ မဟုတ္ဘူးလား။တစ္ခု သတိထားရမွာက () ေတြကို ေရးရင္ျဖစ္ပါတယ္။ ( ဖြင္႔ၿပီးရင္ ျပန္ပိတ္ ) ရပါတယ္။ + -*/ေတြပါလာၿပီဆုိေတာ႔ ဒီအေၾကာင္းကို ေနာက္ပိုင္းမွာ ဆက္ရွင္းျပပါမယ္။ ခု PHP ထဲမွာ ပါတဲ႔ built-inmathematical 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 rZÑdr pmay
  22. 22. 22 PHP avScg;xpfrsm; အခုက အျမည္းေလးေကၽြးထားတဲ႔သေဘာပါဘဲ။ ေနာက္ပိုင္းမွာ လက္ေတြ႕ေလ႔က်င္႔ခန္းေတြလုပ္ရင္းနဲ႔ ပိုၿပီး နားလည္ လာပါမယ္။ သက္ဆုိင္ရာ ေနရာေရာက္ရင္ အေသးစိတ္ရွင္းျပမွာပါ။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 rZÑdr pmay
  23. 23. udkausmf 23သူ႔ရဲ႕ သေဘာတရားကေတာ႔ 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 ; rZÑdr pmay
  24. 24. 24 PHP avScg;xpfrsm; echo $_GET[favmovie]; echo <br/> ; $movierate = 5; echo My movie rating for this movie is: ; echo $movierate; ?> </body> </html>ျပင္ၿပီးသြားၿပီလား။ OK. ဒါဆုိရင္ ေနာက္ထပ္ document အသစ္တစ္ခုေရးမယ္။ text editor မွာ newpageေခၚၿပီးေတာ႔ ေအာက္ပါအတုိင္း ေရးပါ။ ၿပီးရင္ 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 favoritemovie!; echo </a> ; ?> </body> </html>ၿပီးရင္ browser ကေန movie1.php ကို ေခၚလိုက္ရင္ ေအာက္က ပံု အတိုင္းေပၚလာ ပါမယ္။ ကၽြန္ေတာ္ဒီစာအုပ္မွာ HTML အေၾကာင္းကို အေသးစိတ္ရွင္း မေနပါဘူး။ PHP ကို ေလ႔လာေနၿပီဆုိေတာ႔ HTMLကိုလည္း အေတာ္ အသင္႔ နားလည္ ေနၿပီလို႔ ယူဆပါတယ္။ rZÑdr pmay
  25. 25. udkausmf 25 ပံုမွာ ျမင္တဲ႔အတုိင္းဘဲ သူက click ပါတဲ႔။ အဲဒိေတာ႔ click လိုက္ေပါ႔။ ဒါဆုိရင္ ေအာက္ကပံုအတုိင္းထြက္လာမယ္။ rZÑdr pmay
  26. 26. 26 PHP avScg;xpfrsm;ပံုမွာျမင္ရတဲ႔အတုိင္းဘဲ $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 characterproblem ကို ေျဖရွင္းႏိုင္ပါတယ္။ အခု နည္းနည္းေလာက္ ထပ္ေပါင္း ေလ႔က်င္႔ၾကည့္ရေအာင္။ mov-ie1.php ကို ေအာက္က ကုဒ္ေတြအတုိင္း ထပ္ ျပင္ေရးၾကည့္မယ္ေလ။ <html> <head> <title> Find my Favorite Movie! </title > </head> <body> <?php //add this line: $myfavmovie = urlencode(Enemy at thegate); //change this line: echo "<a href="moviesite.php?favmovie=$myfavmovie">"; echo Click here to see information about myfavorite movie!; echo </a>; ?> </body ></html> rZÑdr pmay
  27. 27. udkausmf 27 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 အေၾကာင္းကို ထပ္ၿပီး ျဖည့္စြက္ေဆြးေႏြးသြားပါမယ္။ rZÑdr pmay
  28. 28. 28 PHP avScg;xpfrsm; 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"> "; rZÑdr pmay
  29. 29. udkausmf 29 echo Click here to see information about my favorite mov-ie!; echo </a> ; ?> </body></html> ေနာက္ၿပီးေတာ႔ moviesite.php ကိုလည္း နည္းနည္းေတာ႔ျပင္ေရးရမယ္ေလ။ ဘာလို႔ဆုိေတာ႔သူ႔ဆီက information ေတြ ယူရမွာကိုး ။ session သံုးၿပီဆုိေတာ႔ သူက ဒီအတုိင္း မေပးေတာ႔ဘူးေလ။သတ္မွတ္ထားတဲ႔ data ေတြကို တူမတူ တိုက္စစ္မယ္။ တူရင္ေပးမယ္။ မတူရင္ မေပးဘူးေပါ႔။ အဲဒိလိုစစ္ဖုိ႔အတြက္ moviesite.php ကို နည္းနည္းေလး ျပင္ေရးမယ္ေလ။<?phpsession_start();//check to see if user has logged in with a valid passwordif ($_SESSION[authuser] != 1) { echo Sorry, but you dont 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; rZÑdr pmay
  30. 30. 30 PHP avScg;xpfrsm; ?> </body></html> Save လုပ္ၿပီးေတာ႔ movie1.php ကို ဖြင္႔ၿပီး click လုပ္လိုက္ရင္ ေအာက္ကပံုအတိုင္းထြက္လာပါမယ္။How it works အေရးႀကီးတာကို မေမ႔နဲ႔ေနာ္။ session ကို ေရးမယ္ဆုိရင္ ကိုယ္ေရးမယ္႔ script ရဲ႕ထိပ္ဆံုးမွာ ေရးရတယ္။ ခု ဒီ ပရိုဂရမ္ မွာဆုိရင္ movie1.php ကေန request လုပ္လာတာကိုmoviesite.php ရဲ႕ ထိပ္ဆံုးက session က if နဲ႔ စစ္ပါတယ္။ if ရဲ႕ အလုပ္လုပ္ပံုကေအာက္ပါအတုိင္းျဖစ္ပါတယ္။ သူ႕ရဲ႕ condition က if(conditional statement){statement}ျဖစ္ပါတယ္။ ဥပမာ ေလး တစ္ခု နဲ႔ လုပ္ၾကည့္မယ္ေလ။ အစဆိုေတာ႔ လြယ္လြယ္ကူကူေပါ႔ဗ်ာ။ rZÑdr pmay
  31. 31. udkausmf 31 <?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 မွာ ျပင္ေရးလိုက္တဲ႔ ဟာကို ျပန္ရွင္းပါမယ္။ rZÑdr pmay
  32. 32. 32 PHP avScg;xpfrsm; 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 ကို တစ္ခါတည္းလုပ္သြားတာေပါ႔။ ဒါမွမဟုတ္ရင္ ခင္ဗ်ား ပ်င္းသြားမွာေပါ႔။ rZÑdr pmay
  33. 33. udkausmf 33Passing variables with cookies Cookies ေတြမွာ ဘာေတြကို သိမ္းသလဲဆုိရင္ website ကို လာေရာက္တဲ႔သူရဲ႕ computerinformation အနည္းငယ္ကို သိမ္းပါတယ္။ Theory အရဆုိရင္ေတာ႔ Cookies ေတြဟာ အသံုးျပဳသူရဲ႕IP , operating system ေတြကို intercept လုပ္ႏိုင္ပါတယ္။ ဒါေပမယ္႔ cookies ေတြက storing infor-mation ဘဲလုပ္ပါတယ္။ တစ္ခ်ဳိ႕သူေတြက ေတာ႔ ဒီ cookies technology နဲ႔ အသံုးျပဳသူရဲ႕ browsinghabits ေတြ ကို 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 ေပၚမွာ အေျခခံထားပါတယ္။ rZÑdr pmay
  34. 34. 34 PHP avScg;xpfrsm;ဒါေပမယ္႔ ခုလို ေရးလို႔ရပါ တယ္။ 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> rZÑdr pmay
  35. 35. udkausmf 35 ၿပီးေတာ႔ ထံုးစံအတိုင္း moviesite.php file ကို နည္းနည္းေလး ထပ္ျပင္ေရးမယ္<?phpsession_start();//check to see if user has logged in with a valid passwordif ($_SESSION[authuser] != 1) { echo Sorry, but you dont 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> ဒီလိုဆိုရင္ ေအာက္ပါပံုေတြအတုိင္းျမင္ရမွာပါ။ rZÑdr pmay
  36. 36. 36 PHP avScg;xpfrsm; အထက္က ပရိုဂရမ္ဟာ cookies life time ကို 60 seconds ဘဲ သတ္မွတ္ထားတာပါ။ကိုယ္႔ဟာကို စိတ္ၾကိဳက္ ျပင္ၾကည့္ၿပီးေလ႔က်င္႔ၾကည့္ပါ။ rZÑdr pmay
  37. 37. udkausmf 37Passing 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: ဒီေကာင္႔ကိုေတာ႔ ေတာ္ေတာ္မ်ားမ်ားက Drop down box အျဖစ္သိၾကပါတယ္။ Passwords: သူ႔ကိုေတာ႔ user က ဘာရိုက္တယ္ဆုိတာကို Hideလုပ္ထားရမွာျဖစ္ပါတယ္။Using forms to get information movie1.php file ကိုဘဲ နည္းနည္းေလး ထပ္ၿပီး ျပင္ေရးၾကည့္မယ္ေလ။ ျပင္ရင္းျပင္ရင္းေတာ္ေတာ္ေတာင္ မ်ားလာၿပီေနာ္။ ကၽြန္ေတာ္ေျပာခ်င္တာက မ်ားလာၿပီဆုိေတာ႔ Commentေလးေတြ ေသခ်ာေရးဖုိ႔ ပါ။ ေအာက္မွာ ျပထားတဲ႔ Code ေလးေတြကို ေသခ်ာ ေလ႔လာၾကည့္ပါ။ rZÑdr pmay
  38. 38. 38 PHP avScg;xpfrsm;<?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 dont 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 dont have permission to view this page!; exit(); rZÑdr pmay
  39. 39. udkausmf 39 } ?><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 လုပ္ပါ။ Filename ကို 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: rZÑdr pmay
  40. 40. 40 PHP avScg;xpfrsm; <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အလုပ္လုပ္တယ္ေပါ႔ဗ်ာ။ rZÑdr pmay
  41. 41. udkausmf 41အခု 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 ေပးပါတယ္။ rZÑdr pmay
  42. 42. 42 PHP avScg;xpfrsm;(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 rangeof 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; } rZÑdr pmay
  43. 43. udkausmf 43 အခု ကၽြန္ေတာ္တုိ႔ လက္ေတြ႕ေလ႔က်င္႔ဖုိ႔ လုပ္ပါမယ္။ 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 its 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> rZÑdr pmay
  44. 44. 44 PHP avScg;xpfrsm; ကၽြန္ေတာ္ ဒီစာအုပ္ေရးေနတဲ႔ အခ်ိန္က စက္တင္ဘာလ ျဖစ္တဲ႔အတြက္ 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; } ?> rZÑdr pmay
  45. 45. udkausmf 45 အထက္က ပရိုဂရမ္ေလးကို ၾကည့္မယ္ဆုိရင္ $test ဆိုတဲ႔ variable တန္ဖုိးကို 5 လို႔သတ္မွတ္လိုက္တယ္။ ၿပီးေတာ႔ if statement နဲ႔ စစ္ၾကည့္လိုက္တယ္။ စစ္ၾကည့္တယ္ဆိုတာ ကိုယ္output လုပ္ခ်င္တဲ႔ data အတြက္ ျဖစ္ပါတယ္။ $test က 15 ထက္ငယ္တယ္ဆုိရင္ The conditionwas 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 ဆိုတဲ႔ ေနရာမွာအသက္ အမ်ဳိးမ်ဳိးကို ေျပာင္းလဲ ေလ႔က်င္႔ၾကည့္ပါ။ rZÑdr pmay
  46. 46. 46 PHP avScg;xpfrsm;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 မွ ထြက္လာမွာမဟုတ္ပါဘူး။ rZÑdr pmay

×