Session ແລະ Cookie
ເປັນຄຸນສົມບັດໜຶ່ງທີ່ສຳຄັນຂອງໂປຣແກຣມພາສາ PHP ສຳລັບຕິດຕາມ
ແລະ ກວດສອບຜູ້ໃຊ້ ເຊັ່ນ: ການສ້າງຟອມເພື່ອໃຫ້ສະມາຊິກ ຫລື
ຜູ້ດູແລລະບົບລອກອິນເຊິ່ງເຮົາຈະຕ້ອງຂຽນໂປຣແກຣມກວດສອບວ່າ
ຊື່ຜູ້ໃຊ້ ແລະ ລະຫັດຜ່ານ ຖືກຕ້ອງຫລືບໍ່
ຖ້າຖືກຕ້ອງຈະໃຫ້ຜູ້ໃຊ້ສາມາດເຮັດຫຍັງໄດ້ແດ່ໃນລະບົບ
ເປັນແບບນີ້ຈະເຮັດໃຫ້ລະບົບລອກອິນມີຊ່ອງວ່າງ
ເນື່ອງຈາກຜູ້ໃຊ້ສາມາດຈົດເອົາ URL ຂອງໜ້າທີ່ຢູ່ໃນລະບົບ ແລະ
ກໍ່ສາມາດເຂົ້າເຖິງໜ້ານັ້ນໄດ້ໂດຍບໍ່ຕ້ອງຜ່ານໜ້າ ລອກອິນເລີຍ
ແຕ່ຖ້າມີການໃຊ້ session ແລະ cookie
ເຮົາກໍ່ສາມາດແກ້ໄຂບັນຫານີ້ໄດ້.
10.1 ເຊັສເຊີນ(Session).
Session
ມີຄຸນສົມບັດໃຊ້ສົ່ງຄ່າຕົວປ່ຽນທີ່ສ້າງຂຶ້ນຈາກເວັບເພຈໜຶ່ງໄປສະ
ແດງອີກເວັບເພຈໜຶ່ງ ເຮັດໃຫ້ເຮົາສາມາດຕິດຕາມ ແລະ
ກວດສອບຜູ້ໃຊ້ໄດ້,ໃນການໃຊ້ເຊັສເຊິນ ພາສາ PHP
ປະກອບມີຟັງຊັນຫລາຍຟັງຊັນທີ່ຈຳເປັນດັ່ງນີ້:
- Session_start() ກຳນົດໃຫ້ຂໍ້ມູນຂອງ session ເລີ່ມຕົ້ນເຮັດວຽກ.
- Session_register() ໃຊ້ສຳລັບລົງຖະບຽນຕົວປ່ຽນ ໃຫ້ມີຄຸນສົມບັດດປັນຕົວປ່ຽນ session
- Session_unregister() ໃຊ້ສຳລັບຍົກເລີກການລົງຖະບຽນຕົວປ່ຽນ session
- 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>";
?>
<?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”);
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_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>";
?>
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
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>";
?>