สอน 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 ไปใช้งานหรือไม่