PHP Sessions

|
ตัวแปร sessions
ตัวแปร sessions ถูกใช้สำหรับเก็บข้อมูลของหนึ่งผู้ใช้ และจะคงอยู่ทุกหน้าเว็ปเพจที่เราใช้
session มันเหมือนกับคุณใช้ application ตัวหนึ่งอยู่คุณเปิด แก้ไข และปิด แต่เพราะว่าเว็ปเซิร์ปเวอร์ในอินเตอร์เน็ตไม่เหมือนกับคอมพิวเตอร์ที่จะรู้ว่าคุณกำลังทำอะไรอยู่
ดังนั้นคุณจึงต้องสร้างตัวแปร sessions ขึ้นมาแก้ไขปัญหานี้
อย่างไรก็ตาม ข้อมูลในตัวแปร sessions มีระยะเวลาชั่วคราวเท่านั้น และจะถูกลบทิ้งหลังจากเราออกจากเว็ปไซต์
ถ้าคุณต้องการเก็บข้อมูลเพื่อใช้ต่อไป คุณอาจต้องเก็บในฐานข้อมูล เช่น mysql
Sessions จะทำงานโดยการสร้าง unique id (UID) สำหรับแต่ละผู้ใช้ และเก็บข้อมูลไว้ใน UID นี้
|
|
การเริ่มใช้ sessions
ก่อนที่คุณจะใช้ตัวแปร sessions ได้นั้น คุณต้องใส่ฟังก์ชั่น session_start() ไว้ก่อนแท็ก HTML
<?php session_start(); ?>
<html>
<body>
</body>
</html> |
|
|
การเก็บค่าตัวแปร sessions
คุณสามารถเก็บและเรียกข้อมูลของตัวแปร sessions มาใช้ได้ดังตัวอย่าง:
<?php
session_start();
// การเก็บข้อมูล session
$_SESSION['views']=1;
?>
<html>
<body>
<?php
// การเรียกข้อมูล session
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html> |
|
ผลลัพธ์ที่ได้:
|
มาดูตัวอย่างกันอีกแบบ เราจะสร้าง counter เรียกจำนวนหน้าของผู้ใช้นั้น ฟังก์ชั่น isset() จะตรวจสอบว่าตัวแปร views มีการถูกเซ็ทแล้วหรือยัง
ถ้าถูกเซ็ทแล้วจะทำการเพิ่ม counter ขึ้นมาหนึ่ง แต่ถ้าตัวแปรยังไม่คงอยู่ก็จะเซ็ทใหม่และตั้งค่าไว้ที่ 1
<?php
session_start();
if(isset($_SESSION['views']))
$_SESSION['views']=$_SESSION['views']+1;
else $_SESSION['views']=1;
echo "Views=". $_SESSION['views']; ?> |
|
|
การทำลายตัวแปร sessions
ถ้าคุณอยากทำลายข้อมูลตัวแปร sessions คุณอาจจะใช้ฟังก์ชั่น unset() หรือ session_destroy() ก็ได้
ฟังก์ชั่น unset() ถูกใช้ลบตัวแปร sessions บางตัวเท่านั้น
<?php unset($_SESSION['views']);
?> |
|
ถ้าคุณต้องการทำลายตัวแปร sessions ทั้งหมดทุกตัวไม่เหลือเลยให้ใช้ฟังก์ชั่น session_destroy() ข้อมูลทั้งหมดจะสูญหายทันที
<?php session_destroy();
?> |
|
|
 |