คุงโฮปกะคุง KRTINetwork พูดถึงเรื่องการรับค่าด้วย $_GET และ $_POST ไปแล้ว
ผมขอพูดต่อแระกันในการรับค่าแบบ $_REQUEST
$_REQUEST คือตัวแปรที่ผสมระหว่างทั้ง $_GET , $_POST และ $COOKIE (GPC) นั่นคือ เราสามารถเข้าถึงค่าโดยไม่ต้องระบุว่าเรารับมาแบบ $_GET หรือ $_POST หรือ $_COOKIE
ตัวอย่างเช่นเรารับค่าแบบ $_GETex. $_GET['YuckFu'] เราสามารถเรียกได้อีกแบบด้วย $_REQUEST['YuckFu']
เรารับค่าแบบ $_POSTex. $_POST['YuckFu'] เราสามารถเรียกได้อีกแบบด้วย $_REQUEST['YuckFu']
เรารับค่าแบบ $_COOKIE (อันนี้ถ้าใครยังไม่รู้จักก็อย่าเพิ่งใส่ใจมากนะ เหมือนจะยังไม่มีคนสอน)
ex. $_COOKIE['YuckFu'] เราสามารถเรียกได้อีกแบบด้วย $_REQUEST['YuckFu']
จะเห็นว่า ไม่ว่าจะเป้นทั้ง $_GET , $_POST หรือ $_COOKIE สามารถเข้าถึงได้ด้วย $_REQUEST ได้ทั้ง 3 แบบ
ถึงตรงนี้หลายคนที่พอเข้าใจแล้วอาจจะเกิดคำถามต่อมาว่า
แล้วถ้าเกิดบังเอิญมีการรับมาซ้อนกันล่ะ ?อย่าง
$_GET['action'] // ค่าคือ 'profile'
$_POST['action'] // ค่าคือ 'what-da-hell'
2 อันนี้เกิดมาพร้อมกันในหน้าเดียว ค่าของ $_REQUEST['action'] จะเป็นอันไหน
คำตอบก็คือ
$_REQUEST['action'] จะเท่ากับ
'what-da-hell'เหตผลก็คือ
ตัวแปร $_REQUEST จะรับค่าตามลำดับจากซ้ายไปขวา หรือ GET -> POST -> COOKIE หรือ GPC นั่นเอง อันไหนมาก่อนจะถูกอันหลังทับ (อันหลังจะมีความสำคัญมากกว่า) เพราะฉะนั้นค่าของ $_REQUEST['action'] จึงเท่ากับ 'what-da-hell' ซึ่งเป็นค่าของ $_POST['action'] นั่นเอง
ทั้งนี้ ลำดับความสำคัญของการรับเข้าตัวแปร $_REQUEST สามารถตั้งได้ใน php.ini แต่ผมขอจบเท่านี้ครับบบบ
ปล. นิสนึง จิงอยู่ที่ตัวแปรแบบนี้มีประโยชน์ตรงที่เราไม่ต้องจำอะไรมาก รับแบบ $_REQUEST แบบเดียวก็ได้ แต่มันก็ความ
เสี่ยงต่อความปลอดภัยเหมือนกันน ทางที่ดีใช้ $_GET , $_POST และ $_COOKIE ก็ดีอยู่แล้วครับ ผมบอกเพื่อให้รู้ว่ารับค่าแบบนี้ก้ได้นะ ถ้าสคิรปท์ไม่มีไรมากจะใช้ $_REQUEST ก็คงไม่ผิดเท่าไรห่ครับ แหะๆ
เพิ่มเิติม [eng]
http://th2.php.net/manual/en/reserved.variables.request.php 