โดยที่ php.ini ใน php 5.3.9 นั้น ได้เพิ่ม max_input_vars เข้ามา โดยค่า Default ของมันจะตั้งไว้่ที่ 1000 หมายความว่า ถ้า Web hosting ไหนที่ใช้ตามค่ามาตรฐาน Form ที่เราสร้างไม่สามารถ กำหนด ตัวแปล หรือ input object ได้เกิน 1,000 ค่าเท่านั้น ไม่ว่าจะส่งแบบ POST หรือ แบบ GET รวมทั้ง COOKIES ด้วย
เรามาทำให้ PHP รับค่าจากฟอร์มใหญ่ๆ ได้มาจาก 1000 ค่ากันครับ
วิธีทำได้โดย แก้ไข
php.ini ในเครื่อง Server
เพิ่ม
max_input_vars = xxx
ลงไป เมื่อ xxx คือตัวเลขกำหนดค่าสูงสุดที่จะกำหนด input object ลงไปใน form ได้
ตัวอย่าง ผมตั้งไว้ที่ 4000 ให้กำหนดใน php.ini ดังนี้
max_input_vars = 4000
เสร็จแล้ว save และ restart apache เท่านี้ เครื่อง Server เราก็พร้อมสำหรับ ฟอร์มใหญ่ๆ แล้วครับ
ปล. สำหรับการใช้งานจริงบน Hosting ที่เค้าไม่อนุญาตให้เราแก้ไข ไฟล์ php.ini ได้เองนั้น เรากำหนดค่า max_input_vars ได้ด้วย .htaccess
ด้วยกำหนดค่าดังนี้
php_value max_input_vars 6000
เท่านี้เว็บเราก็สามารถสร้างฟอร์ม ขนาดใหญ่ๆ ได้แล้ว ปล. ใส่ input object มากๆ อย่าลืมต้องคำนึงถึง post_max_size ด้วยนะครับ