ไม่ต้องแก้ register_globals = On ก็เรียกใช้ตัวแปรแบบเดิมๆได้

ปกติแล้วเวลาทำการติดตั้ง php ค่า default ของ register_globals จะเป็น Off แต่บางครั้งเราก็มีความจำเป็นที่เราจะต้องการใช้งาน ในแบบที่ register_globals=On เช่น ไม่อยากไปแก้ code โปรแกรมเดิมที่เขียนไว้ตั้งนานแล้วบ้างล่ะ แต่จะทำยังไง ถ้าหากว่า server ที่เราจำเป็นต้องใช้งานเค้ากำหนด register_globals มาให้เป็น Off ล่ะจะทำยังไง

เคยประสบปัญหาเวลาจะทำการย้าย server หรือมีการ upgrade version ของ php เป็น version ใหม่ แล้วทาง admin เค้าไม่ได้กำหนดให้ register_globals = On กันบ้างไหม เราจะแก้ปัญหากันยังไง แก้ code ในโปรแกรมของเรา หรือว่าจะแจ้ง admin ให้เค้าแก้ php.ini ให้ ????

โดยปกติแล้วเวลาทำการติดตั้ง php ค่า default ของ register_globals จะเป็น Off แต่บางครั้งเราก็มีความจำเป็นที่เราจะต้องการใช้งาน ในแบบที่ register_globals=On เช่น ไม่อยากไปแก้ code โปรแกรมเดิมที่เขียนไว้ตั้งนานแล้วบ้างล่ะ แต่จะทำยังไง ถ้าหากว่า server ที่เราจำเป็นต้องใช้งานเค้ากำหนด register_globals มาให้เป็น Off

วันนี้ผมมี script ที่จะช่วย convert ค่าตัวแปรที่อยู่ใน $_GET, $_POST, $_FILES ให้เป็นชื่อ ตัวแปร แบบที่ถูกกำหนดใน php.ini ให้ register_globals=On จะง่ายดายเพียงใด เชิญชม..

 

 

// Convert Variable Array To Variable
 
while(list($xVarName, $xVarvalue) = each($_GET)) {
     ${$xVarName} = $xVarvalue;
}
 
 
while(list($xVarName, $xVarvalue) = each($_POST)) {
     ${$xVarName} = $xVarvalue;
}
 
while(list($xVarName, $xVarvalue) = each($_FILES)) {
     ${$xVarName."_name"} = $xVarvalue['name'];
     ${$xVarName."_type"} = $xVarvalue['type'];
     ${$xVarName."_size"} = $xVarvalue['size'];
     ${$xVarName."_error"} = $xVarvalue['error'];
     ${$xVarName} = $xVarvalue['tmp_name'];
}

จากนั้นก็เพียงแค่นำ code นี้ไปใส่ไว้ที่บรรทัดแรกสุดของโปรแกรมที่เราเขียน หรือว่าจะเอาไปใส่ไว้ใน file include ก็ได้นะครับ ตัวอย่างจาก Source Code เราจะได้ชื่อตัวแปรใหม่ดังนี้ ซึ่งจะตรงกับชื่อตัวแปรที่ถูกกำหนดจาก register_globals=On

 

$_GET["get_var1"] //ไปเป็น $get_var1
 
$_POST["post_var1"] //ไปเป็น $post_var1
 
$_FILES["file1"] //ไปเป็น $file1, $file1_name, $file1_type, $file1_size

 

ข้อแนะนำ : ถ้าเป็นไปได้ควรเขียนโปรแกรมรับค่าจาก form ต่างๆ โดยใช้ตัวแปร $_GET, $_POST,$_FILES นะครับ

ขอบคุณที่มา: unzeen.com

Was this answer helpful?

 Print this Article

Also Read

วิธีการสร้างและแก้ไข MySQL บน DirectAdmin

    วิธีการสร้าง และแก้ไข Mysql Account บน DirectAdminขั้นตอนแรกLogin เข้าสู่...

วิธี flush DNS

วิธีการอับเดต DNS Reset Rounter แล้ว ทำการ flus DNS เพื่อ update DNS 1. เข้าไปที่ Start >...

วิธีกำหนด permission ไฟล์และโฟรเดอร์ ข้อมูล

login to your DirecAdmin manage your hosting access to File Manager > public_html > choose...

การกำหนดค่า SpamAssassin Setup

เมื่อเข้าสู่ระบบจัดการโฮสติ้ง (http://yourdomain.com:2222) หากต้องการกำหนดค่า SpamAssassin Setup...

รหัสผ่านสำหรับการจัดการ Hosting / DirectAdmin Control Panel

รหัสผ่านสำหรับการจัดการ Hosting / DirectAdmin Control Panel ใช้สำหรับเข้าไปจัดการ Hosting ผ่าน...