PHP กับปัญหา register global


PHP รุ่นใหม่ๆ ออกมา มีการกำหนดให้ register_globals มีค่า default เป็น Off รวมทั้ง Hosting หลายๆ แห่ง ก็ใช้ค่า default ตาม PHP ทำให้หลายคนมีปัญหานี้เช่นกัน นอกจากนี้ php scripts เก่า(มากๆ) บางส่วนก็ยังใช้งานไม่ได้

เป็นเวลาหลายปีแล้วที่ 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

คำสำคัญ (Tags): #php
หมายเลขบันทึก: 41752เขียนเมื่อ 31 กรกฎาคม 2006 08:13 น. ()แก้ไขเมื่อ 11 กุมภาพันธ์ 2012 15:29 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (0)

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

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท