នៅក្នុងភាសា 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 ដែលបានបង្កើត។
នៅក្នងថ្ងៃនេះយើងសូមលើកយកប្រធានបទមួយដែលទាក់ទងទៅនឹងជំនាញនៃការសរសេរកូដ ដើម្បីបង្កើតវេបសាយ រឺក៏ប្រពន្ធគ្រប់គ្រង ហើយផ្នែកដែលយើងចង់ធ្វើការពិភាក្សានោះគឺ PHP Sessions។
បើយើងនិយាយអំពី session វាគឺជាវិធីសាស្រ្តមួយដែលយើងអាចរក្សាទុកពត៏មាន នៅខាងក្នុងអញ្ញាតដើម្បីយកវាទៅប្រើប្រាស់នៅលើទំព័រផ្សេងទៀតនៅក្នុងវេបសាយ។
តើអ្វីគឺជា PHP Session?
នៅពេលដែលអ្នកធ្វើការជាមួយ application អ្នកបើកវា ហើយធ្វើការផ្លាស់ប្តូរទិន្នន័យមួយចំនួន បន្ទាប់មកអ្នកធ្វើការបិទកម្មវិធីវិញ។ ចំនុចទាំងនោះគឺដូចគ្នាជាមួយនឹង session។Computer ដឹងថាអ្នកគឺជានរណា ហើយថែមទាំងដឹងថានៅពេលណាដែលអ្នកចាប់ផ្តើមដំណើរការកម្មវិធី នឹងពេលណាដែលអ្នកបញ្ចប់ដំណើរការកម្មវិធី។ ប៉ុន្តែនៅលើ Internet គឺមានបញ្ហាមួយគឺ Web Server មិនបានដឹងទេថាអ្នកគឺជានរណា បានធ្វើអ្វីខ្លះ មូលហេតុគឺដោយសារ HTTP Address មិនអាចរក្សានៅពត៏មានទាំងអស់នោះ។ ជាដំណោះស្រាយ អ្នកជំនាញផ្នែកបច្ចេកវិទ្យាបានបង្កើតដំណោះស្រាយមួយគឺ SESSIONS។ អញ្ញាតរបស់ sessions ដោះស្រាយបញ្ហាទាំងនោះដោយរក្សារទុកនៅពត៏មានរបស់អ្នកប្រើប្រាស់ ដែលអនុញ្ញាតអោយ Developer យកវាទៅប្រើប្រាស់បាននៅលើទំព័រផ្សេងៗបានយ៉ាងងាយស្រួល។
ដើម្បីចាប់ផ្តើម PHP Session
យើងត្រូវប្រើរូបមន្ត session_start() ដើម្បីចាប់ផ្តើមដំណើរការនៃ session។
ឧទាហរណ៏៖ អ្នកអាចធ្វើការបង្កើត php file មួយនៅក្នុង local server របស់អ្នក ដែលមានឈ្មោះថា index.php ហើយ ចម្លងកូដនៅខាងក្រោមដាក់ចូលទៅក្នុង file នោះ។
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION[“firstname”] = “zour”;
$_SESSION[“lastname”] = “bong”;
echo “Session variables are set.”;
?>
</body>
</html>
ដើម្បីចាប់តម្លៃរបស់ PHP Session
ចំណុចបន្ទាប់គឺជារបៀបដែលអ្នកចង់ធ្វើការចាប់តម្លៃនៃ session ដែលអ្នកបានបង្កើតនៅក្នុងឧទាហរណ៏ខាងលើ យកមកប្រើប្រាស់នៅលើ page ផ្សេងទៀត។
ចំណាំ៖ នៅក្នុង file ផ្សេងទៀតប្រសិនបើអ្នកចង់ប្រើ session ដែលអ្នកបានបង្កើតរួចហើយចាំបាច់ត្រូវតែមាន session_start() function នៅពីខាងលើ HTML tag ជាមុនសិន
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// echo session variables that were set on index.php page
echo “Firstname is ” . $_SESSION[“firstname”] . “.<br>”;
echo “Lastname is ” . $_SESSION[“lastname”] . “.”;
?>
</body>
</html>
- ដើម្បីផ្លាសប់ប្តូរតម្លៃរបស់ PHP Session អ្នកគ្រាន់តែធ្វើការសរសេរផ្តល់តម្លៃអោយ session variable ម្តងទៀតជាការស្រេច។
- ដើម្បីលុបតម្លៃរបស់ PHP Session
ប្រសិនបើអ្នកចង់ធ្វើការលុបចោលនៅ session ដែលអ្នកបានធ្វើការផ្តល់តម្លៃអោយហើយចោលវិញ អ្នកអាចប្រើប្រាស់ Build-in function ពីរគឺ session_unset() & session_destroy()។
ឧទាហរណ៏៖ អ្នកអាចធ្វើការបង្កើត file ផ្សេងទៀតដែលមានឈ្មោះថា delete_session.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
</body>
</html>
ជាឧទាហរណ៍៖
ផ្អែកលើឧទាហរណ៍ខាងលើ បន្ទាត់ទី១៣ 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/false ឬ 1/0 ដើម្បីបញ្ជាក់ពី សុវត្ថិភាព នៃ COOKIE។
៧. $httponly : កំណត់តំលៃ true/false ដើម្បីបញ្ជាក់ថា អាចដំណើរការតែលើ HTTP បើ true ។
ឧទាហរណ៍៖
ជាលទ្ធផល COOKIE មួយឈ្មោះ ‘user_name’ នឹងរក្សាទុកតំលៃ ‘user_named_david’ ដែលនឹងផុតកំណត់ ៣០ថ្ងៃបន្ទាប់ ហើយស្ថិតនៅក្នុង localhost ។
ដើម្បីកំណត់សុវត្ថិភាពនៃការប្រើប្រាស COOKIE សាកល្បងបន្ថែមកូដដូចខាងក្រោម៖
setcookie($cookie_name, $cookie_value, time() + (60*60*24* 30), ‘/’, ”, true, true);
នោះនឹងទទួលបានលទ្ធដូចខាងក្រោម៖
អរគុណសម្រាប់ការស្វែងយល់។ ប្រសិនបើមានចំងល់អាច comment សួរបាន។