10.2 ຄຸກກີ້(cookie).
ຕົວຢ່າງ5: ສ້າງ 3 ໜ້າເວັບເພຈດັ່ງຄຳສັ່ງຕໍ່ໄປນີ້ cookiemake.php,showcookie.php ແລະ delcookie.php ຕາມລຳດັບ:
ສ້າງ Cookiemake.php
<?php
setcookie("user","nga",time()+60);
setcookie("pwd","12345",time()+60);
echo "<a href='showcookie.php'> show cookie</a>";
?>
Showcookie.php
<?php
echo "test value of cookie<br>";
echo $user." ".$pwd."<br>";
echo "<a href='delcookie.php'> delete cookie</a>";
?>
ສ້າງ Delcookie.php
<?php
echo "This page delete cookie";
setcookie("user");
setcookie("pwd");
echo "<a href='showcookie.php'> show cookie again</a>";
?>
ຄຸກກີ້
ແມ່ນຂໍ້ມູນທີ່ເຮົາສົ່ງໄປເກັບໄວ້ໃນເຄື່ອງຜູ້ໃຊ້
ເພື່ອປະໂຫຍດໃນການກວດສອບ ແລະ ຕິດຕາມການເຮັດວຽກຂອງຜູ້ໃຊ້
ໂດຍບຣາວເຊີຈະສົ່ງຂໍ້ມູນຂອງຜູ້ໃຊ້ມາຍັງເຊີບເວີ ແລະ
ນຳເອົາຄຸກກີ້ດັ່ງກ່າວມາເກັບໄວ້ໃນຕົວປ່ຽນເຮັດໃຫ້ສາມາດກວດສອບ
ຄ່າຕ່າງໆຂອງຜູ້ໃຊ້ໄດ້. ໂດຍມີຟັງຊັນທີ່ກ່ຽວຂ້ອງດັ່ງນີ້:
10.2.1 ຟັງຊັນ setcookie()
ຟັງຊັນນີ້ ໃຊ້ສຳລັບສ້າງ ແລະ ທຳລາຍຕົວປ່ຽນ ຄຸກກີ້ ມີຮູບແບບການຂຽນດັ່ງນີ້:
Setcookie(“ຊື່ຂອງຄຸກກີ້”,“ຄ່າຂອງຄຸກກີ້”,“ເວລາໝົດອາຍຸ”);
ການສ້າງຕົວປ່ຽນຄຸກກີ້ໂດຍມີການກຳນົດອາຍຸ ເມື່ອໝົດເວລາທີ່ກຳນົດແລ້ວຕົວປ່ຽນຄຸກກີ້ຈະບໍ່ເກັບຄ່າໃດໆໄວ້.
ການສ້າງຕົວປ່ຽນຄຸກກີ້ໂດຍບໍ່ກຳນົດອາຍຸເຮັດໄດ້ດັ່ງນີ້:
Setcookie(“ຊື່ຂອງຄຸກກີ້”,“ຄ່າຂອງຄຸກກີ້”);
ການທຳລາຍຕົວປ່ຽນຄຸກກີ້ ເມື່ອຕົວປ່ຽນໃດຖືກທຳລາຍກໍ່ຈະບໍ່ເກັບຄ່າໃດໆໄວ້.
Setcookie(“ຊື່ຂອງຕົວປ່ຽນ”);
Setcookie(“ຊື່ຂອງຄຸກກີ້”,“ຄ່າຂອງຄຸກກີ້”,“ເວລາໝົດອາຍຸ”);
ການສ້າງຕົວປ່ຽນຄຸກກີ້ໂດຍມີການກຳນົດອາຍຸ ເມື່ອໝົດເວລາທີ່ກຳນົດແລ້ວຕົວປ່ຽນຄຸກກີ້ຈະບໍ່ເກັບຄ່າໃດໆໄວ້.
ການສ້າງຕົວປ່ຽນຄຸກກີ້ໂດຍບໍ່ກຳນົດອາຍຸເຮັດໄດ້ດັ່ງນີ້:
Setcookie(“ຊື່ຂອງຄຸກກີ້”,“ຄ່າຂອງຄຸກກີ້”);
ການທຳລາຍຕົວປ່ຽນຄຸກກີ້ ເມື່ອຕົວປ່ຽນໃດຖືກທຳລາຍກໍ່ຈະບໍ່ເກັບຄ່າໃດໆໄວ້.
Setcookie(“ຊື່ຂອງຕົວປ່ຽນ”);
ຕົວຢ່າງ5: ສ້າງ 3 ໜ້າເວັບເພຈດັ່ງຄຳສັ່ງຕໍ່ໄປນີ້ cookiemake.php,showcookie.php ແລະ delcookie.php ຕາມລຳດັບ:
ສ້າງ Cookiemake.php
<?php
setcookie("user","nga",time()+60);
setcookie("pwd","12345",time()+60);
echo "<a href='showcookie.php'> show cookie</a>";
?>
Showcookie.php
<?php
echo "test value of cookie<br>";
echo $user." ".$pwd."<br>";
echo "<a href='delcookie.php'> delete cookie</a>";
?>
ສ້າງ Delcookie.php
<?php
echo "This page delete cookie";
setcookie("user");
setcookie("pwd");
echo "<a href='showcookie.php'> show cookie again</a>";
?>
10.2.2 ຟັງຊັນ ob_start() ແລະ ob_end_flush()
ຂໍ້ຈຳກັດຂອງຟັງຊັນ setcookie()
ກໍ່ຄືຫ້າມໃຊ້ຟັງຊັນ setcookie() ຢູ່ຫລັງຟັງຊັນ ຫລື
ຄຳສັ່ງຕ່າງໆຂອງ PHP ບໍ່ດັ່ງນັ້ນຈະເກີດ error
ທົດສອບຂໍ້ຜິດພາດດັ່ງກ່າວໂດຍແກ້ໄຂໂປຣແກຣມ cookiemake.php
ແລ້ວບັນທຶກເປັນ cookiemake2.php ດັ່ງລຸ່ມນີ້:
<?php
echo "make \$user and \$pwd<br>";
setcookie("user","nga",time()+60);
setcookie("pwd","12345",time()+60);
echo "<a href='showcookie.php'> show cookie</a>";
?>
ຜົນໄດ້ຮັບ
<?php
echo "make \$user and \$pwd<br>";
setcookie("user","nga",time()+60);
setcookie("pwd","12345",time()+60);
echo "<a href='showcookie.php'> show cookie</a>";
?>
ຜົນໄດ້ຮັບ
ການເກີດ error ແບບນີ້ຍ້ອນວ່າ ການຮັບ-ສົ່ງຂໍ້ມູນລະຫວ່າງ
ເຊີບເວີ ແລະ ບຣາວເຊີ ເປັນຂໍ້ມູນໃນສ່ວນຂອງ header
ບໍ່ສາມາດປ່ຽນແປງແກ້ໄຂ ດັ່ງນັ້ນວິທີແກ້ໄຂກໍ່ຄື
ຈັດເກັບຂໍ້ມູນໄວ້ໃນໜ່ວຍຄວາມຈຳຊົ່ວຄາວ(buffer)ກ່ອນ
ແລ້ວຈິ່ງສົ່ງໄປໃນຕອນທ້າຍຂອງໂປຣແກຣມ PHP ໂດຍຈະກຳນົດຟັງຊັນ
ob_start() ເພື່ອເປີດນຳໃຊ້ໜ່ວຍຄວາມຈຳຊົ່ວຄາວ ແລະ ຟັງຊັນ
ob_end_flush() ເພື່ອປິດການໃຊ້ໜ່ວຍຄວາມສຳຊົ່ວຄາວ
ດັ່ງຕົວຢ່າງຄຳສັ່ງລຸ່ມນີ້:
<?php
ob_start();
echo "make \$user and \$pwd<br>";
setcookie("user","nga",time()+60);
setcookie("pwd","12345",time()+60);
echo "<a href='showcookie.php'> show cookie</a>";
ob_end_flush();
?>
<?php
ob_start();
echo "make \$user and \$pwd<br>";
setcookie("user","nga",time()+60);
setcookie("pwd","12345",time()+60);
echo "<a href='showcookie.php'> show cookie</a>";
ob_end_flush();
?>