ស្វែងយល់ពី SESSION និង COOKIE នៅក្នុងភាសា PHP

ក្នុងអត្ថបទមុនៗ  Techfree បានបង្ហាញពីការប្រើប្រាស់ COOKIE ក្នុង JavaScript រួចមកហើយ។ យ៉ាងណាមិញ នៅក្នុងភាសា PHP ក៏មានប្រើ COOKIE ផងដែរ រួមទាំង SESSION ទៀតផង។ ការប្រើប្រាស់ SESSION និងCOOKIE មានប្រយោជន៍ទៅតាម ការប្រើប្រាស់ជាក់ស្តែង ក្នុងភាសា PHP ។  ក្នុងអត្ថបទនេះ នឹងបង្ហាញពីភាពខុសគ្នា និងការប្រើប្រាស់ SESSION និង COOKIE នៅក្នុងភាសា PHP ស្របទៅតាមតំរូវ ការនៅក្នុងគំរោង (Project) នានារបស់អ្នកសរសេរកម្មវិធី (Programmer) ។

១. SESSION: ត្រូវបានគេប្រើប្រាស់សំរាប់ជាមធ្យោបាយមួួយ ដើម្បីបង្កើតទិន្នន័យមួយ ដែលអាចទាញយកបានគ្រប់ Page ក្នុងគេហទំព័រទាំងមូល ប៉ុន្តែវានឹងបាត់បង់ទៅវិញផងដែរ ។  ជាដំបូង SESSION បង្កើត File មួយទុកនៅក្នុង Directory បណ្តោះអាសន្ននៅលើម៉ាស៊ីនមេ (Server) ឬតាមរយៈ Database ដើម្បីរក្សាទុក SESSION Variable មួយ និង តំលៃរបស់វា ដែលអាចទាញយកមកប្រើប្រាស់បាន។

ក្រោយពេលមាន SESSION មានហើយនៅក្នុងម៉ាស៊ីនមេ វានឹងបាត់បងទៅវិញ ក្រោយពេលអ្នកប្រើប្រាស់បិទ Browser ឬចាកចេញ (Logout) ពីគេហទំព័រ ។ ម្យ៉ាងវិញទៀត វាអាចនឹងបាត់បង់ ដោយសារអ្នកសរសេរកម្មវិធី (Programmer) ជាអ្នកកំណត់ ក្នុងកំឡុងនៃសកម្មភាពណាមួយ របស់អ្នកប្រើប្រាស់។

ជាជំហានដំបូង ចំពោះការចាប់ផ្តើមប្រើប្រាស់ SESSION នៅក្នុងកូដភាសា PHP ត្រូវប្រើ Function មួយឈ្មោះ session_start() ។ Function នេះ នឹងពិនិត្យមើលថាតើ SESSION អាចចាប់ផ្តើមបានហើយ ឬនៅ ។ Function នេះ គួរតែដាក់នៅបន្ទាត់លើគេក្នុង File PHP ។ Programmer អាចបង្កើត SESSION Variable ដោយប្រើប្រាស់នូវ $_SESSION[] នៅពេលនោះ អាចទាញយកតំលៃ SESSION ដែលបានបង្កើត។

ជាឧទាហរណ៍៖

_session

ផ្អែកលើឧទាហរណ៍ខាងលើ បន្ទាត់ទី១៣ Function unset() ត្រូវបានគេប្រើសំរាប់លុប SESSION variables មួយ ចេញពី Server ។ ចំពោះបន្ទាត់ទី២០ Function session_destroy() គេប្រើសំរាប់លុប SESSION variables ទាំងអស់ ចេញពី Server ។ បញ្ជាក់៖ Function unset() និង session_destroy() ទាំងពីរខាងលើ មិនមែនត្រូវតែប្រើទាំងពីរដូច ឧទាហរណ៍ខាងលើនោះ ពោលគឺប្រើទៅតាម តំរូវការជាក់ស្តែងរបស់ Programmer ។

២. COOKIE : ត្រូវបានប្រើប្រាស់ ជា file តូចមួយ ដែលរក្សាទុកក្នុងម៉ាស៊ីនកូន (Client Computer) ដើម្បីប្រើប្រាស់ ក្នុងករណីណាមួយ ជាពិសេស គឺការបញ្ជាក់ ពីអ្នកប្រើប្រាសម្នាក់ ។ Function setCookie() ត្រូវបានប្រើប្រាស់ ដើម្បី បញ្ជាក់ពី COOKIE មួយ បញ្ជូនទៅកាន់ HTTP Header ។ ដើម្បីទាញតំលៃពី COOKIE  អ្នកសរសេរកម្មវិធី (Programmer) អាចប្រើប្រាស់ $_COOKIE[]  $HTTP_COOKIE_VARS[] ដែលផ្ទុកនូវគ្រប់តំលៃនៃឈ្មោះ COOKIE និង តំលៃ COOKIE ។

setcookie ( $name, $value = “” , $expire = 0 , $path = “” , $domain = “” , $secure = false, $httponly = false )

១. $name : កំណត់ឈ្មោះរបស់ COOKIE ដែលត្រូវការ (Required) ៕

២. $value : កំណត់តំលៃនៃ COOKIE Variable សំរាប់រក្សាទុក ឬទាញតំលៃ ។ ឧទាហរណ៍ថា កំណត់ឈ្មោះ $name ជា ‘cookie_name’ ហើយតំលៃដែលអាចទាញមកវិញ គឺ $_COOKIE[‘cookie_name’] ។

៣. $expire : កំណត់ចំនួននៃពេលវេលាជា វិនាទី (Second) ដែលអាចផុតកំណត់ ដូចជា ១ ថ្ងៃ ( time()+60*60*24)  ឬ ៣០ ថ្ងៃ (time()+60*60*24*30) ។ ជាទូទៅ វានឹងផុតកំណត់ដោយខ្លួនឯងក្នុងរយៈពេល ៣០ ថ្ងៃ ប៉ុន្តែបើកំណត់ តំលៃសូន្យ ឬ មិនកំណត់ទេ វានឹងផុតកំណត់ នៅពេល Browser បិទ ដូច SESSION ។

៤. $path : កំណត់ផ្នែក (path) ដើម្បីរក្សាទុកលើ Server ។ បើសិនជាកំណត់ ‘/’ មានន័យថា កំណត់គ្រប់ Path នៅក្នុង Domain ទាំងមូល ។

៥. $domain : កំណត់ឈ្មោះ Domain សំរាប់គ្រប់ COOKIE ទាំងអស់ ។

៦. $secure : កំណត់តំលៃ true/false1/0 ដើម្បីបញ្ជាក់ពី សុវត្ថិភាព នៃ COOKIE។

៧. $httponly : កំណត់តំលៃ true/false ដើម្បីបញ្ជាក់ថា អាចដំណើរការតែលើ HTTP បើ true ។

ឧទាហរណ៍៖

_cookie

ជាលទ្ធផល COOKIE មួយឈ្មោះ ‘user_name’ នឹងរក្សាទុកតំលៃ ‘user_named_david’ ដែលនឹងផុតកំណត់ ៣០ថ្ងៃបន្ទាប់ ហើយស្ថិតនៅក្នុង localhost

_cookie_result_1

ដើម្បីកំណត់សុវត្ថិភាពនៃការប្រើប្រាស COOKIE សាកល្បងបន្ថែមកូដដូចខាងក្រោម៖

setcookie($cookie_name, $cookie_value, time() + (60*60*24* 30), ‘/’, ”, true, true);

នោះនឹងទទួលបានលទ្ធដូចខាងក្រោម៖

_cookie_result_2