Sunday, June 12, 2011

PHP හැදින්වීම - පලමු කොටස

මගේ විනෝදාංශය PIC ගැන ලියපු ලිපියට බලාපොරොත්තු උනාටත් වඩා ලොකු ප්‍රතිචාර ලැබුන. ඒ හැමෝටම ස්තූතියි. ඒ නිසාම මට හිතුන ඒ ගැන දිගටම ලියන්න. ඒ වගේම අපේ batch එකේ කීප දෙනෙක්ගෙ ඉල්ලීම මත PHP ගැනත් ලියන්න බලාපොරොත්තු වෙනව. ඒක නිසා අද PHP ගැන ටිකක් ලියන්න හිතුන.PHP කියන දේ මම ඉගන ගත්තෙ මීට අවුරුද්දකට කලින් අපේ Project එක කරනකොට. මම තාමත් PHP වලට අළුත්. මට වඩා හොදින් මේ විශය දන්න අය ගොඩක් ඉන්නව. ඒ නිසා මේක කියවන අයගෙන් ඉල්ලා සිටිනව මගෙන් වැරැද්දක් හෝ අඩුපාඩුවක් වෙලා තියනව නම් ඒක නිවරදි කරන්න කියල.

ඈත්තටම මොකක්ද මේ PHP කියන්නෙ. ගොඩක් දෙනෙක් දන්නව PHP පාවිච්චි කරන්නෙ මොකටද කියලත්. සරලවම කියනවනම් මේක Server Side Programing Language එකක්. මුලින්ම අපි බලමු මේ Client side and Server Side කියන්නෙ මොකක්ද කියල. උදාහරනයක් විදියට හිතන්නකො Website එකක් තියනව ඉස්කෝලෙක ලමයි register කරගන්න. එතකොට ඒකෙ Interface එකක් තියනව Web browser එකක් හරහා ඒක භාවිතා කරන්න පුළුවන්. දැන් මෙන්න මේ Interface එක යොදාගෙන කෙනෙක්ට පුළුවන් තමන්ගෙ ලමයගෙ විස්තර ඈතුලත් කරල website එකේ register වෙන්න. ඔන්න ඔය Web Browser එක තුලින් User පේන ටික තමයි Clint Side එක කියන්නෙ. පොඩ්ඩක් හිතන්න බලන්න මේ Client Side එක හදන්න යොදාගන්න භාෂා මොනවද කියල. මූලිකම දේ තමයි HTML. ඒ වගේම formatting කරන්න CSS. JavaScript අයිති වෙන්නෙත් මේ ගොඩටම තමයි. ඒ ඈයි කියල මම තව ටිකකින් කියන්නම්.

දැන් බලමු මේ Server Side එක කියන්නෙ මොකක්ද කියල. කලින් උදාහරණයම ගත්තොත් User Registration Details Web Form එකේ දුන්නාම ඒව DataBase එකක save වෙන්න ඕනෙ. එහෙමත් නැත්නම් User කවුරු හරි ලමයෙක් ගැන විස්තර ඈහුවාම ඒව Database එකෙන් අරගෙන userට පෙන්න්න ඕනෙ. ඔන්න ඔතනදි වෙන්න ඕන දේවල් වෙන්නෙ Server Side එකේදි තමයි. අපි ඒ දේවල් ලියන්න ඕනෙ Server Side Script එකක. ඔන්න ඕකට තමයි PHP පාචිච්චි කරන්නෙ. ඊට අමතරව ASPත් යොදාගන්නව. මේ User පෙන්නෙ නැති පැත්ත (නමුත් වැදගත්ම වැඩ කොටස වෙන්නෙ මෙතන තමයි නේද??) අපි හදුන්වන්නෙ Server Side එක, එහෙමත් නැත්නම් Back End එක කියල.

දැන් ආපහු එමු JavaScrip වලට. අපි javaScript යොදාගන්නෙ Web Page එක Dynamic කරන්න. උදාහරනයක් විදියට අපි හිතමු user ID number එක විදියට අංක 10ට අඩු නම්බර් එකක් දුන්නොත් අපිට පුළුවන් JavaScrip එකකින් ඒක check කරල පොඩි Error Message එකක් දෙන්න. ඒ දේ කරන්න Request එක Server Side එකට යනකන් ඉන්න ඕනෙ නෑ නේද? අන්න ඒක නිසයි මම කිවුවෙ JavaScript කියන්නෙ Client Side භාෂාවක් කියල. මුලින්ම අපිට පුළුවන් වෙන්න ඕනෙ අපි ලියන Web Page එකේ Client Side Action මොනවද Server Side Action මොනවද කියල වෙන්කරල හදුන ගන්න. මොකද Server Side එකේ කරන්න ඔන ඒව Client Side එකේ වත්... Client Side එකේ කරන්න ඔන ඒව Server Side ඒකෙවත් කවදාවත්ම කරන්න එපා. (ඈත්තම කිවුවොත් මම අපේ 2nd Year Project එකේදිනම් මේක හොදට පටලව ගත්ත. මගේ වාසනාවට හෝ අවාසනාවට - මම හිතන්නෙ අවාසනාවට අපේ Lecturesල කාටවත් ඒකක අහුවුනේ නෑ). ඒ කියන්නෙ කවදාවත්ම JavaScript වලින් කරන්න ඕන දේ PHP වලින් කරන්න යන්න එපා.. ( හි හි එත් මමනම් කරා.. ස් ස් ස් කාටවත් කියන්න එපා හොදේ..)

මම හිතනව මේක කියවන හැමොම වගේ HTML ටිකක් හරි දන්නව ඈකි කියල. අඩුම තරමින් එකම එක HTML File එකක්වත් ලියල ඈති තියල. ඒක ලියන්න මොනවද ඕන වුනු දේවල්. පොඩ්ඩක් හිතන්න.... text editor එකක් විතරයි නේද? Web Browser එකේ HTML file එකට අදාල output එක නිකන්ම පෙන්නුව නේද? එතකොට CSS එකත් එහෙම නේද? JavaScript එකත් එහෙම තමයි. අපිට ඔන කරන්නෙ Web Browser එකක් විතරයි. ඈයි ඒ.... මොකද ඒ ඔක්කොම Client Side නිසා. Web Browser එක තමයි Clint Side එකේ තියෙන්නෙ. එතකොට PHP ලියන්න Web Browser එක විතරක් මදිද???

උත්තරය ඔව් web browser එක විතරක් මදි.. PHP Server Side නෙ. එහෙනම් අපිට Server එකක් තියෙන්​න ඕනෙ. අපි PHP ලියල run කරන්නෙ මේ server එක ඈතුලෙ. හෝවු හොවු පොඩ්ඩක් ඉන්න.. ඔය දුවන්න හදන්නෙ server එකක් හොයන්නද??

එකට විසදුම තමයි Virtual Server එකක් Use කරන එක. ඒ කියන්නෙ අපේ Computer එක ඈතුලෙම server එකක් හැදෙනව. මේකට යොදාගන්න පුළුවන් Servers ගොඩක් තියනව. පහසුම හා මම යොදගන්නෙ WAMP Server එක. W - Windows A - Apache M - MySQL P - PHP . මේ කෙන් අපේ Computer එකේ අපාචි සර්වර් එකක් වගේම MySQL server එකකුත් හදනව. ඒක නිසා data base එක්ක වැඩ කරන්න උනත් හරිම ලේසියි. මෙන්න මෙතනින් ඒක අරගෙන Install කරගන්නකො.. මොකද මම ඉස්සරහට ලිපි වලදි යොදාගන්න ඉන්නෙ මේක තමයි. මේක Install කරන්නත් හරිම ලේසියි. install කරන්න කලින් කියන්න වැදගත් දෙයක් තියනව. ඔයාලගෙ PC එකේ දැනටමත් MySQL තියනවනම් ඒක Uninstall කරල ඉවර වෙලා WAMP install කරන්න. මොකද නැත්නම් WAMP වල MySQL එක්ක ඔයාගෙ දැනටම තියන MySQL රන්ඩු වෙන්න පුළුවන් (පුළුවන් නෙමේ රන්ඩු වෙනව!!)

දැන් start WAMP Server හරහා මේක run කරන්න. task bar එකේ එන WAMP icon කොල පාට වෙනකන් ටිකක් ඉන්න. ඒක කොල පාට උනාම එක Click කරල එන මෙනු එකේ උඩම තියන LocalHost කියන එක click කරන්න. එතකොට පහල තියන විදියෙ window එකක් ඔයාලගෙ Web Browser එකේ Open වේවි.
ඉහල Address bar එකේ http://localhost/ කියල තියෙන්නෙ අපේ server එක තියන තැන තමයි. දැන් බලමු අපි PHP File එකක් Web Browser එකේ run කරල බලන්නෙ කොහොමද කියල. මුලින්ම මෙන්න මේ PHP Script එක Text editor එකක Type කරල ( මම නම් Use කරන්නෙ Notepad++) welcome.php කියල save කරන්න.


ඊට පස්සෙ ඔයා WAMP install කරපු තැනට ගිහිලිල ( බොහෝ විට C:\WAMP ) එතන තියන WWW කියන folder එකට අර ලියපු welcome.php එක copy කරල paste කරන්න. මේන්න මේ WWW කියල folder එක තමයි අපේ server එකේ script save කරගන්න තැන විදියට ක්‍රියා කරන්නෙ. දැන් Web Browser එක Open කරල Adders Bar එකේ http://localhost/welcome.php කියල type කරන්න. එතකොට බලාගන්න පුළුවන් අපි ලියපු Script එක run වෙලා Output එක print වෙලා තියනව.

එහෙනම් අදට නවතින්නම්. පුළුවන් තරම් ඉක්මනින් මීලග ලිපිය ලියන්න බලා පොරොත්තු වෙනව. ඊට කලින් මේ ගැන ඔයාල හැමෝගෙම අදහස් මට කියන්නකො. නැවත වරක් මතක් කරන්න කැමතියි.. වැරුද්දක් තියනව නම් සමාවෙලා ඒක පෙන්නල දෙන්න. මොකද මම මේ විෂය සම්බන්දව නවකයෙක්. එහෙනම් හැමෝටම බුදු සරණයි.

19 comments:

  1. හොඳ ලිපියක්. එකම වැරැද්දකට පේන්නේ Apache ව්ලට virtual server එකක් කියපු එක. බහුතරයක් Net එකේ website දුවන්නේ ඔය server එකෙන් තමයි. අපේ machine එක ඇතුලෙ දිව්වා කියලා ඒකට virtual කියන එක ටිකක් හරි මදි

    ReplyDelete
  2. අයියේ මේ වැඩෙ නම් නියමයි දිගටම මෙ වගෙ පිලිවෙලට ලියන්න PHP ගැන දන්න ඔක්කොම

    ReplyDelete
  3. හොඳ ලිපියක්, සරලව ලියල තියෙනවා....
    දිගටම කරගෙන යන්න මචෝ...
    (Isuru Senanayake)

    ReplyDelete
  4. කස්ටියට ඩ්‍රිම් විවර් සල්ලි දීල ගන්න පුලුවන් නම් මම කියා දෙන්නම කෙලින්ම් mysql data base එකෙ table අමු අමුවේම access කරල php නාමයක් නොදැන ලොගින් හදල ෆුල් ඩයිනමික් වෙබ් ඇප්ලිකේශන් එකක්ම ගොඩ දාන විදිහ..

    හිනා වෙන්න එපා බොල..ප්‍රොජෙක්ට් එක කට ලගට ඇවිත් හිර වෙලා සතියක් විතර තීයෙද්දි මම තනියෙම php ඉගෙන ගන්නද නැතුව.බලමු පොජෙක් රිපිට් වෙලා තිබ්බොත් නෙක්ස්ට් ටයිම් ඩ්‍රිම් විවර් ගන්න සල්ලි ඉතුරු කර ගන්න.

    හැබැයි හොර කොපි වල වැඩ දාන්න උගන්නල පවු පුරොගන්න නම් මට බැ :k

    ReplyDelete
  5. මම හිතන්නේ WAMP ගෙනයි Virtual Server එකක් කියලා හදුනවලා තියෙනේ.
    තව දෙයක් කියන ඕනේ Client Side හා Server Side හි භාවිතාවන දේවල් හදුනාගෙන ඒ අනුව කේතන ඉතාම වැදගත්. නමුත් පොඩි නිවැරදි කිරීමක් ක්අරන්න ඕනේ. Data validation කරන්න ඕනේ Client Side වල විතරක් කියලා හිතන්න එපා ඒක Server Side එකේත් කිරීම අනිවාර්යයි. සාමාන්‍යයෙන් Client Side එකේ කරන්නේ Server එකට එන load එක අඩු කර ගන්න. ගන්න්න. නැතිනම් ආරක්ෂාව පිලිබද ප්‍රශ්න එන්න පුලුවන්. මොකද browser එක නොමග යවලා වැරදි දත්ත එවන්න පුලුවන්.

    ReplyDelete
  6. ඉක්මනට ඊළග කොටස ලියන්න.අපි බලාගෙන ඉන්නවා.

    ReplyDelete
  7. @Replier හම්... නමුත් අපේ PC එකේ ඈත්තටම Apache server එකක් නෑනෙ. ඒක WAMP වලින් හදන එකක් නිසයි මම Virtual කියල කිවුවෙ.

    @Udaya Sri Sri Kariyawasam (උදය ශ්‍රී) වෙලාව තියන විදියට දිගටම ලියනව.

    @Isuru ස්තූතියි මචං. අනිව දිගටම ලියනව.

    @පැන්ඩා Dreamweaver වලින් කරන එක නම් ලේසියි තමයි පැන්ඩො. ඒත් ඉගන ගන්න ප්‍රමානය අඩු වෙනව නේද? මට එතකොට නිකන් හිතෙනව මම ඒක හැදුවෙ නෑ වගේ... :e

    @bckurera ඔව් ඒක ඈත්ත. Data Validation Server Side එකේදිත් කරන්න වෙනව. නමුත් DataBase එකෙවත් සම්බන්දයක් නැතිවන validate කරන්න පුළුවන් දේවල් Client Side එකේදි කරාම ලේසියි නේද?

    @නදීර සඳරුවන් ලියනගේ වෙලාව ලැබුන ගමන් අනිව ලියනව මචෝ...

    ReplyDelete
  8. @keshan "හිනා වෙන්න එපා බොල..ප්‍රොජෙක්ට් එක කට ලගට ඇවිත් හිර වෙලා සතියක් විතර තීයෙද්දි මම තනියෙම php ඉගෙන ගන්නද නැතුව.බලමු පොජෙක් රිපිට් වෙලා තිබ්බොත් නෙක්ස්ට් ටයිම් ඩ්‍රිම් විවර් ගන්න සල්ලි ඉතුරු කර ගන්න."

    එක තමයි බං ඒත් මට වෙන කරන්න දෙයක් තිබ්බෙ නැ..datz y i alsways say ur projects is greater than mine kiyala..

    ReplyDelete
  9. @keshan ela machan digatama liyapan. ela
    @panda ane me uba okkoma software use karanne salli dila aragena nemeine....

    ReplyDelete
  10. ඉගෙන ගන්න ආස මාතෘකාවක්.දිගටම ලියන්න අපි බලන් ඉන්නවා.

    ReplyDelete
  11. ela machannnnnnn
    dana okoma liyannaaaaaa

    ReplyDelete
  12. එළ මචෝ... php වල අ සිට z දක්වාම ඉගෙනගන්න ලියන්න ලැබේවා කියල පතනවා... :b

    ReplyDelete
  13. නියම ලිපිපෙළක ආරම්භය. දිගටම ලියන්න

    ReplyDelete
  14. මගේ ඉස්සෙල්ලා කමේන්ට් එක ටිකක් පැහැදිලි කරන්න හිතුවා.
    මෙන්න මේකයි කතන්දරේ.
    අපි Client Side එකේ validate කරන හැම දෙයක්ම නැවත Server side එකේ validate කිරිම අනිවාර්යයයි. අපි Client Side එකේ validate කරන්නේ user ගෙන් වෙන්න පුලුවන් වැරදීම් පෙන්නන්න. ඒ වගේම බොහෝ වෙලාවට attack වලින් බේරෙන්න Server side දත්ත validate කිරීම ඉතාම වැදගත්.
    තේරුනේ නැද්ද ඔන්න මේ නිදසුන බලන්න.
    වෙබ් මුනතේ ඇතුල් කරන්න තියෙනවා ජාතික හැදුනුම්පත් අංකය ඉතින් මෙය validate කරන්න අපි යොදාගන්නවා Client Side එක. දැන් Client Side එකේ data validate කල නිසා Server side එකේ validate කරන්න ඕනේ නෑ කියලා අතඇරියොත් සාමාන්‍ය තත්ව මත ප්‍රශ්නයක් වෙන්නෑ. ඒත් browser එක භාවෙනස් කොට හෝ වැඩ සටහනකින් වැරදි දත්තයක් server එක වෙත ලබාදුනහොත් server එක තුල data validate නොවන නිසා වැරදි දත්ත පද්ධතියට ඇතුලු වනවා.මෙන්න මේ නිසයි server side data validation අත්‍යාවශය වන්නේ.

    ReplyDelete
  15. patta digtama liyanna, godak watinawa..................

    ReplyDelete
  16. Good work දිගටම කරන්න අපි ඔයාගෙන් තවත් බලාපොරොත්තු වෙන්වා මෙක මෙක ඈත්තටම නියම වෑඩක් මත් දෑන් ටික දවසකට කලින් හිතුවා PHP ගෑන බ්ලොග් එකක් හදන්න උබ මට කලින් හෑදුවා මන් ඈත්තටම එක අගය කරනවා මචෝ දිගටම ලිපි කියන්න

    ReplyDelete
  17. හොඳ ලිපි පෙලක ආරම්ඹයනේ..සුබ පතනව..දිගටම ලියන්න..පුන්චි නිවරදි කිරීම කරන්නත් ඕනා කියලා හිතුනා අපි දෑන් සයිබර් අවකාෂයේ මිතුරන් නිසා :)..
    Static web pages:-කියන්නේ user ගේ interactions වලට බොහම මෝඩ විදියට ප්‍රතිචාර දක්වන web පිටු.සරලව කියුවොත් ඒවට බෑහෑ එක එක user ගේ behavior අනුව ඒ ඒ කෙනාට අදාල ප්‍රථිපල පෙන්වන්න උදාහරණයක් හෑතියත facebook එකේ home page එක static web page එකක් වුනා නම් අපි හෑමොටම එන්නේ එකම එක home page eka.එහෙම නොවෙන්න නම් හෑමෝටම එක එක home page හද්න්න වෙනවා.
    Dynamic web pages කියන්නේ ඒකේ අනිත් පෑත්ත.ඒවා user ගේ behavior අනුව දෙන ප්‍රථිචාර වෙනස් කරමින් බොහෝම දියුනු විදියට හෑසිරෙනවා ඒ නිසා අපි කාටත් එන login page එක එකම් වුනාට උනාට log Vunata පස්සේ ලෑබෙන home page එක පිරිලා තියෙන්නේ අපිට අදාල දේ වලින් ඒ තමා dynamic වෙබ් පිටු..PHP,JSP,ASP,PSP..JSF වගේ server side scripting languages වලින් පුලුවන් dynamic web pages හදන්න. ඒ වගේ පාඩමක් තමා මේ අපේ කේශාන් සහෝ කියලා දෙන්න හදන්නේ. :)

    ReplyDelete
  18. ඇත්තටම Apache server එකක් තියෙනවා

    ඕකෙ wamp කියන්නෙ Apache, MySQL, PHP ඔක්කොම එකට install වෙන විදියට අපිට පහසුවට හදපු පැකේජ් එකක් විතරයි.

    වෙන වෙනම දාන්න කරදර නිසයි එහෙම කරලා තියෙන්නෙ

    ඕකෙ දුවන්නෙ අමුතු Apache server එකක් නෙමෙයි.

    ReplyDelete

ටිකක් ඡනප්‍රිය ඒව