วันอาทิตย์ที่ 10 ธันวาคม พ.ศ. 2560

POST ข้อมูลไม่มา มาไม่ครบ PHP POST LIMITED SIZE : max_input_vars , post_max_size

สืบเนื่องจาก PHP 7.0 ที่ผมใช้อยู่ เมื่อผมทำการ POST ค่ามาแบบ ARRAY และมีจำนวนตัวแปรและ array มีขนาดใหญ่พอสมควร พอ print_r($_POST); ดูข้อมูลมาแต่มาไม่ครบ ลองตรวจสอบหน้า Form ก็แสดงผล Input ต่างๆ ได้ถูกต้อง จึงได้ลองตรวจสอบ php.ini พบว่ามีการให้ค่า default ค่านึงเอาไว้แค่ 1000 ค่า นั่นก็คือ ตั้งค่าการส่งตัวแปล POST เอาไว้แค่ 1000 ตัวนั่นเอง ผมจึงลองแก้ไขดังนี้

nano /etc/php/7.0/apache2/php.ini

แล้วหาบรรทัดที่เขียนว่า  ;max_input_vars = 1000

ให้เอา ; ที่เป็นการคอมเม้นท์ออก แล้วแก้ จาก 1000 เป็นค่าที่ให้พอเหมาะกับจำนวนที่คุณคิดว่าจะส่งค่าตัวแปรผ่าน form มาแค่ไหน อาจจะเพิ่มมาอีกเท่าตัวเป็น 2000 ก็ตามแต่ความต้องการครับ

หลังแก้ php.ini  แล้วพบว่า print_r($_POST); ได้ข้อมูลครบถ้วนเลยทีเดียว
หากแก้แล้วยังมีปัญหาอยู่ให้ลองดูว่าได้กำหนด post_max_size ไว้เท่าไหร่แล้วลองปรับแก้ดูครับ

ส่วนเรื่องผลเสียนั้นส่วนตัวผมเอง ผมคิดว่าหากระบบที่กำลังพัฒนามีจำนวน User ที่เยอะมากๆ และการการเรียกใช้ Form ลักษณะนี้มาเช่นกัน การตั้งค่านี้ อาจจะกิน Memory ของ Server มากตามไปด้วยลองทดสอบและคำนวนดีๆ นะครับ ระบบจำได้ไม่ล่ม :-) โชคดีครับ....

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

แก้ Active Desktop Recovery

เข้าไปแก้ Value ในไฟล์ DeskHtmlVersion  ให้กลายเป็น 0 ไม่ให้แสดงหน้าต่าง Active Desktop Recovery เข้าไปที่  HKEY_CURRENT_USER/Software/Mi...