สอน codeigniter วิธีใช้งาน session ใน Codeigniter

php-codeigniter-framework
php-codeigniter-framework

สอน codeigniter วิธีใช้งาน session ใน Codeigniter

Session หรือ เว็บเซสชั่น (Web Session) คือตัวแปรที่ไคลเอนต์ (Client) สร้างขึ้นมาเมื่อเปิดเว็บบราวเซอร์
ไฟล์ session จะถูกเก็บไว้ที่ฝั่งเซิร์ฟเวอร์ โดยที่เราสามารถกำหนด path สำหรับเก็บไฟล์ได้เอง สำหรับ ci
เราสามารถระบุ session path ได้ที่ไฟล์ application/config/config.php ที่ตัวแปร sess_save_path
ซึ่ง session path จะไม่ไช่ url ของเว็บ แต่จะต้องเป็น Absolute Hosting Path

$config['sess_save_path'] = '/home/user/domains/domaian.com/public_html/temp


ตัวแปรแบบ session มักถูกนำไปใช้กับระบบหลัก ๆ ดังนี้

  • – ระบบสมาชิก เก็บข้อมูลการเข้าสู่ระบบของสมาชิก ตรวจสอบการ Login สำหรับบางหน้าเพจ
  • – ระบบตระกร้าสินค้า จดจำข้อมูลการเลือกสินค้า ก่อนจะบันทึกลงฐานข้อมูล เพื่อลดปริมาณข้อมูลซ้ำซ้อนกัน
  • – นำไปใช้เพื่อจดจำค่าต่าง ๆ ภายในเว็บเมื่อเกิดการใช้งาน เช่น ระบบ autocomplete เมื่อสมาชิกกรอกข้อมูลแล้วเปลี่ยนหน้าเพจไป กลับมาหน้าเดิม ข้อมูลที่เคยกรอกจะ fill in ให้อัตโนมัติ


เริ่มต้นใช้งาน session ใน codeigniter

  • เปิดการใช้งานแบบ autoload
    เปิดไฟล์ application/config/autoload.php เพิ่มการ autoload session library

    $autoload['libraries'] = array('session');
  • เปิดการใช้งานแบบโหลดเข้าไปใน Controller
    เปิดไฟล์ application/controllers/controller_name.php ทำการโหลด session library เข้ามาใช้งาน

    $this->load->library('session');


วิธีกำหนดค่าให้ตัวแปรแบบ session

ใน php codeigniter ใช้คำสั่งในการกำหนดค่าให้กับตัวแปรแบบ session ได้ด้วยคำสั่ง set_userdata
กำหนดค่าให้ตัวแปร 1 ตัว

$this->session->set_userdata("member_id",45);

และถ้าเราต้องการกำหนดค่าให้ตัวแปรหลาย ๆ ตัวก็จะได้โค๊ดในลักษณะดังนี้
กำหนดค่าให้ตัวแปรหลาย ๆ ตัวพร้อมกันใช้ array

$userdata = array(
	'member_id'     => 45,
	'name'     => 'my name',
	'position'     => 1,
	'status'     => 1
	);
$this->session->set_userdata($userdata);


วิธีกำลบตัวแปรแบบ session

ลบที่ละตัวแปร

$this->session->unset_userdata('member_id');

หรือแบบนี้

unset($_SESSION['member_id']);

ลบพร้อมกันหลายตัวแปร

$userdata = array('member_id', 'name');
$this->session->unset_userdata($userdata);

หรือแบบนี้ก็ได้

unset(
        $_SESSION['member_id'],
        $_SESSION['name']
);


วิธีนำตัวแปรแบบ session ไปใช้งาน

เมื่อเราทำการโหลด session library เข้ามาใช้งานแล้วเราจะสามารถเรียกใช้งานตัวแปรแบบ session ได้
ทั้งใน Controller และ View ได้ ด้วยโค๊ดประมาณนี้

$member_id = $this->session->userdata("member_id");
echo $member_id;

member_id คือชื่อของตัวแปรที่เรากำหนดค่าให้ก่อนหน้านี้

session เป็นอีกหนึ่งความสามารถของการเขียนโปรแกรมภาษา php ที่มีประโยชน์เป็นอย่างมาก
เราสามารถนำตัวแปรแบบ session ไปประยุกต์ใช้งานได้ในอีกหลาย ๆ รูปแบบ ซึ่งก็ขึ้นอยู่กับงานหรือโปรเจคนั้น
ว่ามีความจำเป็นหรือเหมาะสมที่จะนำตัวแปรแบบ session ไปใช้งานหรือไม่