เป็นเวลาหลายปีแล้วที่ PHP แนะนำให้ใช้ $_GET, $_POST, $_REQUEST ในการอ้างอิงตัวแปร ที่ส่งผ่านมากับ HTTP GET, POST
แต่ผู้ใช้ส่วนใหญ่ ไม่ได้ให้ความสนใจกับมัน....
จน PHP รุ่นใหม่ๆ ออกมา มีการกำหนดให้ register_globals มีค่า default เป็น Off รวมทั้ง Hosting หลายๆ แห่ง ก็ใช้ค่า default ตาม PHP ทำให้หลายคนมีปัญหานี้เช่นกัน นอกจากนี้ php scripts เก่า(มากๆ) บางส่วนก็ยังใช้งานไม่ได้
วิธีแก้ปัญหา register_globals
ถ้า PHP ไม่ได้เป็น safe mode คุณสามารถกำหนด register_globals ได้โดยการ
ini_set("register_globals","On");
ตัวอย่าง test.php?var1=hello&var2=world
ถ้าขี้เกียจอ้างอิงถึง ตัวแปรต่างๆ ก็ใช้
extract($_POST);
extract($_GET);
extract($_REQUEST);
ก็จะได้ตัวแปรก $var1, var2
หรือจะใช้
import_request_variables("GP", "rvar_");
G คือ GET
P คือ POST
rvar_ คือ prefix
ดังนั้น เราจะได้ ตัวแปร rvar_var1, rvar_var2
ไม่มีความเห็น