หากต้องการเก็บค่าตัวแปรที่เป็น array ลงใน Database หรือ ส่งค่าไปยังหน้าอื่นโดยผ่าน cookie หรือ session by

23
Feb
0

หากว่าเราเก็บข้อมูลจากหลายอย่างของ user เอาไว้ เช่น user เลือกซื้อของอะไร จำนวนกี่ชิ้น สีอะไร เราก็อาจจะใช้ array เข้ามาช่วยในการเก็บ แล้วถ้าเราต้องการส่งค่าข้ามไปอีกหน้าล่ะ จะทำอย่างไร คำตอบก็คือ เขียนใส่ cookie, session ตามแต่สะดวก
ถ้าตัวอย่างเรามีข้อมูลดังนี้
$shop = array(
’1′ => array(‘type’=>’n1′, ‘color’ => ‘red’, ‘quantity’ => ’3′),
’2′ => array(‘type’ =>’n2′, ‘color’ => ‘blue’, ‘quantity’ => ’4′)
);
เป็น array 2 มิติ แบบนี้ เรา แล้วจะเก็บอย่างไรให้ง่าย และไม่งง หลายคนคงบอกว่า ก็เก็บ cookie แบบ array ไง แล้ว วน loop เขียน และ วน loop อ่านขึ้นมา หรือกระทั่ง session ก็ตาม loop เขียนลงไปตามชื่อตัวแปรที่เราสร้างขึ้นมา 10 ชนิด ก็ได้ cookie 10 ชุดเลย อีกทั้ง เราจะรู้ได้อย่างไรว่า type ของ ตัวแปรที่เก็บลงไป แล้วอ่านขึ้นมา จะยังคงเหมือนเดิม เพราะว่าถ้า วน loop ตามปกติ เราก็ต้องคอยมาดักว่าเป็น quantity หรือเปล่า ถ้าใช่ก็กำหนดให้เป็น int คงเสียเวลามากเลย
แต่จะง่ายกว่ามั้ย หากว่าเราเปลี่ยนมาใช้วิธีง่าย แค่ function เดียว เก็บค่า และยังอ่านออกมาได้โดยคงสภาพข้อมูลที่เหมือนเดิม
นั่นคือ serialize()
วิธีการใช้ก็ง่ายมาก
$shop = serialize($shop);
เสร็จแล้ว แล้วเราก็เอา $shop ไปเก็บใน cookie หรือ session ได้เลย แค่นี้เองครับ เพราะว่าหลังจากที่ผ่านการ serialize มาแล้ว เราจะได้เพียง plain text หรือตัวหนังสือธรรมดา 1 ชุดเท่านั้นเอง
และเมื่อเราจะอ่านค่าและแปลงกลับมาใช้อีกครั้งหนึ่ง เราก็แค่ใช้
$shop = unserialize($shop);
เท่าที่ $shop เราก็จะกลับมามีหน้าตาเหมือนเดิมเปี้ยบเลย
แต่ทั้งนี้อาจจะต้องระวังการเอาไปเก็บใน cookie เพราะว่าการเก็บเป็น plain text แบบนี้จะทำให้ สามารถ แก้ไขได้ง่ายมาก อีกทั้งหลังจากการ serialize แล้วจะทำให้มี header ที่มากขึ้นด้วย แนะนำให้เก็บเป็น session หรือ database จะดีกว่าครับ

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน