ບົດທີ 10 Session ແລະ Cookie

Session ​ແລະ Cookie ​​​ເປັນ​ຄຸນສົມ​ບັດ​ໜຶ່ງ​ທີ່​ສຳຄັນ​ຂອງ​ໂປຣ​ແກຣມພາສາ PHP ສຳລັບ​ຕິດຕາມ ​ແລະ ກວດ​ສອບ​ຜູ້​ໃຊ້ ​ເຊັ່ນ: ການ​ສ້າງ​ຟອມ​ເພື່ອ​ໃຫ້​ສະມາຊິກ ຫລື ຜູ້​ດູ​​ແລ​ລະບົບ​ລອກ​ອິນ​ເຊິ່ງ​ເຮົາ​ຈະ​ຕ້ອງ​ຂຽນ​ໂປຣ​ແກຣມກວດ​ສອບ​ວ່າ​ ຊື່​ຜູ້​ໃຊ້ ​ແລະ ລະຫັດ​ຜ່ານ ຖືກຕ້ອງ​ຫລື​ບໍ່ ຖ້າ​ຖືກຕ້ອງ​ຈະ​ໃຫ້​ຜູ້​ໃຊ້​ສາມາດ​ເຮັດ​ຫຍັງ​ໄດ້​​ແດ່​ໃນ​ລະບົບ ​ເປັນ​ແບບ​ນີ້​ຈະ​ເຮັດ​ໃຫ້​ລະບົບ​ລອກ​ອິນ​ມີ​ຊ່ອງ​ວ່າງ​ ​ເນື່ອງ​ຈາກ​ຜູ້​ໃຊ້​ສາມາດ​ຈົດ​ເອົາ URL ຂອງ​ໜ້າ​ທີ່ຢູ່​ໃນ​ລະບົບ ​ແລະ ກໍ່ສາມາດ​ເຂົ້າ​ເຖິງ​ໜ້າ​ນັ້ນ​ໄດ້​ໂດຍ​ບໍ່​ຕ້ອງ​ຜ່ານ​ໜ້າ ລອກ​ອິນ​ເລີຍ ​ແຕ່​ຖ້າ​ມີ​ການ​ໃຊ້ session ​ແລະ cookie ​ເຮົາ​ກໍ່​ສາມາດ​ແກ້​ໄຂ​ບັນຫາ​ນີ້​ໄດ້.
10.1 ເຊັສ​ເຊີນ(Session).
​      Session ມີ​ຄຸນສົມບັດ​ໃຊ້​ສົ່ງ​ຄ່າ​ຕົວ​ປ່ຽນ​ທີ່​ສ້າງ​ຂຶ້ນ​ຈາກ​ເວັ​ບ​ເພ​ຈໜຶ່ງ​ໄປສະ ​ແດງ​ອີກ​ເວັບ​ເພ​ຈໜຶ່ງ ເຮັ​ດ​ໃຫ້​ເຮົາ​ສາມາດ​ຕິດຕາມ ​ແລະ ກວດ​ສອບ​ຜູ້​ໃຊ້​ໄດ້,​ໃນ​ການ​ໃຊ້​ເຊັສ​ເຊິ​ນ​ ​ພາສາ PHP ​ປະກອບ​ມີ​ຟັງ​ຊັນ​ຫລາຍ​ຟັງ​ຊັນທີ່​ຈຳ​ເປັນ​ດັ່ງ​ນີ້:
  1. Session_start() ກຳນົດ​ໃຫ້​ຂໍ້​ມູນ​ຂອງ session ​ເລີ່​ມຕົ້ນ​ເຮັດ​ວຽກ.
  2. Session_register() ​ໃຊ້​ສຳລັບ​ລົງ​ຖະບຽນ​ຕົວ​ປ່ຽນ​ ​ໃຫ້​ມີ​ຄຸນ​ສົມບັດ​ດປັນ​ຕົວ​ປ່ຽນ session
  3. Session_unregister() ​ໃຊ້​ສຳລັບ​ຍົກ​ເລີ​ກການ​ລົງ​ຖະບຽນ​ຕົວ​ປ່ຽນ session
  4. Session_destroy() ​ໃຊ້​ສຳລັບ​ທຳລາຍ​ຂໍ້​ມູນ​ທັງ​ໝົດ​ຂອງ session

    10.1.1 ຟັງ​ຊັນ session_start()
ຟັງ​ຊັນ​ນີ້​ໃຊ້​ກຳນົດ​ໃຫ້​ຂໍ້​ມູນ​ຂອງ session ​ເລີ່​ມຕົ້ນ ຕົວຢ່າງ​ຕໍ່​ໄປ​ນີ້​ເຮົາ​ຈະ​ໃຊ້ session_start() ​ເພື່ອ​ກຳນົດ​ໃຫ້​ໂປຣ​ແກຣມ​ເລີ່​ມຕົ້ນ​ຄ່າ​ຂອງ​ຕົວ​ປ່ຽນ​ເຊັສ​ເຊິ​ນຢູ່​ເວັບ ​ເພ​ຈຊື່ page1.php ຫລັງ​ຈາກ​ນັ້ນກໍ່​ຈະ​ເອີ້ນ​ໃຫ້​ເວັບ​ເພ​ຈໜ້າ​ທີ່​ຊື່ page2.php ສະ​ແດງ​ຄ່າ​ຕົວ​ປ່ຽນ​ຂອງ​ເຊັສ​ເຊິ​ນ.
ຕົວຢ່າງ1: ສ້າງ​ໜ້າ page1.php
<?php
session_start();
echo "welcome to page1<br>";
$_SESSION['name']= ‘nga’;
$_SESSION['amimal']='cat';
$_SESSION['time']=time();
echo "<br><a href='page2.php'>go to page2</a>";
?>

ຈາກ​ຕົວຢ່າງ​ຂ້າງ​ເທິງ​ນີ້ ​ເຮົາ​ປະກາດ <?php session_start(); ?> ກ່ອນ​ຄຳ​ສັ່ງ HTML ຈາກ​ນັ້ນ ​ເຮົາ​ມາ​ກຳນົດຄ່າ​ເລີ່​ມຕົ້ນ​ໃຫ້​ຕົວ​ປ່ຽນ session​ 3 ຕົວ​ໃນ​ວ່າງ <body> ​ເຊັ່ນ:
$_SESSION['name']= ‘nga’;
$_SESSION['amimal']='cat';
$_SESSION['time']=time();

​ເວລາ​ເຮົາ​ທົດ​ສ​ອບ​ເບິ່ງ​ເວັບ​ເພ​ຈດັ່ງ​ຕົວຢ່າງ​ຈະ​ປະກົດ​ແຕ່​ຂໍ້ຄວາມ​ວ່າ ​welcome to page1 ​​ແລະ ລິງ​ຂໍ້ຄວາມ go to page2 ​​ໃນ​ທີ່​ນີ້​ເພື່ອ​ໃຫ້ການ​ທົດ​ລອງ​ຊັດ​ເຈນ​ຕື່ມ​ເຮົາ​ມາ​ສ້າງ​ໜ້າ​ page2.php ດັ່ງ​ລຸ່ມ​ນີ້:
<?php
session_start();
echo "welcome to page2<br>";
echo $_SESSION['name']."<br>";
echo $_SESSION['amimal']."<br>";
echo date('Y m d H:i:s', $_SESSION['time']);
echo "<br><a href='page1.php'>go to page1</a>";
?>

ຜົນ​ໄດ້​ຮັບ

     10.1.2 ຟັງຊັ້ນ session_register()
​      ຟັງ​ຊັ້ນ​ນີ້​ໃຊ້​ສຳລັບ​ລົງ​ຖະບຽນ​ໃຫ້​ກັບ​ຕົວ​ປ່ຽນ​ ​ເຮັດ​ໃຫ້​ຕົວ​ປ່ຽນ​ມີ​ຄຸນສົມບັດ​ເປັນ​ຕົວ​ປ່ຽນ session ​ເຊິ່ງມີ​ຮູບ​ແບບ​ການ​ຂຽນ​ດັ່ງ​ນີ້
Session_register(“ຊື່​ຕົວ​ປ່ຽນ​ທີ່1”, “ຊື່​ຕົວ​ປ່ຽນ​ທີ2”);

ຕົວຢ່າງ2: ສ້າງໜ້າ session_r1.php
<?php
session_start();
echo "page1 register \$name ,\$surname<br>";
$name="ngaviseth";
$surname="phomvongsa";
session_register("name","surname");
echo "<a href='session_r2.php'>go to page2</a>";
?>
          ສ້າງ session_r2.php ດັ່ງ​ລຸ່ມ​ນີ້:
<?php
session_start();
echo "welcone to page2<br>";
echo " $name<br>";
echo " $surname <br>";
echo "<a href='session_r1.php'>go to page1</a>";
?>

ຜົນ​ໄດ້​ຮັບ

     10.1.3 ຟັງຊັນ session_unregister()
ຟັງຊັນນີ້ໃຊ້ສຳລັບການຍົກເລີກການລົງຖະບຽນຕົວປ່ຽນເຊັສເຊິນທີ່ໄດ້ລົງຖະບຽນໄວ້ ເຮັດໃຫ້ ຕົວປ່ຽນທີ່ຖືກຍົກເລີກນັ້ນບໍ່ສາມາດເກັບຄ່າໃດໆ ເຊິ່ງການຍົກເລີກການລົງຖະບຽນເຮົາຈະເຮັດໃຫ້ຟັງຊັນ ລະໜຶ່ງຕົວປ່ຽນເທົ່ານັ້ນ ມີຮູບແບບການຂຽນດັ່ງນີ້:
Session_unregister(“ຊື່ຕົວປ່ຽນ”);
ຕົວຢ່າງ3: ສ້າງ session_r3.php

<?php
session_start();
echo "<a href='session_r1.php'>go to page1</a><br>";
echo "Unregister \$name";
session_unregister("name");
echo "<br>$name<br>" ;
echo "<a href='session_r2.php'>go to page2</a>";
?>
      10.1.4 ຟັງ​ຊັນ session_destroy()
ຟັງ​ຊັນ​ນີ້​ໃຊ້​ສຳລັບ​ທຳລາຍ​ຂໍ້​ມູນ​ທັງ​ໝົດ​ຂອງ session ຕ່າງ​ຈາກ session_unregister() ທີ່​ຕ້ອງ​ໄດ້​ບອກ​ຊື່​ຕົວ​ປ່ຽນ​ທີ່​ຈະ​ຍົກ​ເລີກ​ການ​ລົງ​ຖະບຽນ ​ຖ້າ​ຕົວ​ປ່ຽນ​ໃດ​ບໍ່​ຖືກ​ຍົກ​ເລີກ​ກໍ່​ຈະ​ເກັບ​ຂໍ້​ມູນ​ໄວ້​ຄື​​ເກົ່າ.

ຕົວຢ່າງ4: ສ້າງ session_r4.php
<?php
session_start();
session_destroy();
echo "<a href='session_r2.php'>go to page2</a>";
?>