สอน 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
1 |
$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 library1$autoload['libraries'] = array('session'); - เปิดการใช้งานแบบโหลดเข้าไปใน Controller
เปิดไฟล์ application/controllers/controller_name.php ทำการโหลด session library เข้ามาใช้งาน1$this->load->library('session');
วิธีกำหนดค่าให้ตัวแปรแบบ session
ใน php codeigniter ใช้คำสั่งในการกำหนดค่าให้กับตัวแปรแบบ session ได้ด้วยคำสั่ง set_userdata
กำหนดค่าให้ตัวแปร 1 ตัว
1 |
$this->session->set_userdata("member_id",45); |
และถ้าเราต้องการกำหนดค่าให้ตัวแปรหลาย ๆ ตัวก็จะได้โค๊ดในลักษณะดังนี้
กำหนดค่าให้ตัวแปรหลาย ๆ ตัวพร้อมกันใช้ array
1 2 3 4 5 6 7 |
$userdata = array( 'member_id' => 45, 'name' => 'my name', 'position' => 1, 'status' => 1 ); $this->session->set_userdata($userdata); |
วิธีกำลบตัวแปรแบบ session
ลบที่ละตัวแปร
1 |
$this->session->unset_userdata('member_id'); |
หรือแบบนี้
1 |
unset($_SESSION['member_id']); |
ลบพร้อมกันหลายตัวแปร
1 2 |
$userdata = array('member_id', 'name'); $this->session->unset_userdata($userdata); |
หรือแบบนี้ก็ได้
1 2 3 4 |
unset( $_SESSION['member_id'], $_SESSION['name'] ); |
วิธีนำตัวแปรแบบ session ไปใช้งาน
เมื่อเราทำการโหลด session library เข้ามาใช้งานแล้วเราจะสามารถเรียกใช้งานตัวแปรแบบ session ได้
ทั้งใน Controller และ View ได้ ด้วยโค๊ดประมาณนี้
1 2 |
$member_id = $this->session->userdata("member_id"); echo $member_id; |
member_id คือชื่อของตัวแปรที่เรากำหนดค่าให้ก่อนหน้านี้
session เป็นอีกหนึ่งความสามารถของการเขียนโปรแกรมภาษา php ที่มีประโยชน์เป็นอย่างมาก
เราสามารถนำตัวแปรแบบ session ไปประยุกต์ใช้งานได้ในอีกหลาย ๆ รูปแบบ ซึ่งก็ขึ้นอยู่กับงานหรือโปรเจคนั้น
ว่ามีความจำเป็นหรือเหมาะสมที่จะนำตัวแปรแบบ session ไปใช้งานหรือไม่