ไม่ต้องแก้ 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

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

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

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

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

วิธี flush DNS

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

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

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

Backup Website Email Database

แนะนำการสำรองข้อมูลเว็บไซต์ของท่าน(วิธีที่ 1)  Backup ผ่านระบบจัดการ...