วันศุกร์ที่ 1 มิถุนายน พ.ศ. 2555

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>
ผลลัพธ์ที่ได้:

Pageviews=1
มาดูตัวอย่างกันอีกแบบ เราจะสร้าง 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();
?>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น