Friday, December 16, 2005
PHP 4.4 ทำเจ๊ง
ญาติเมล์มาบอกว่า
ฐานข้อมูลครอบครัว Family DB/Tree ที่เคยทำไว้ เข้าไม่ได้ เขาจะมาอัพเดทสักหน่อย
ไปลองไล่ๆดู เออจริงแฮะ PHP มันเพี้ยนๆ
ไล่ไปไล่มา เครื่องนี้ PHP ถูกอัพเป็น 4.4 แล้ว ซึ่งในรุ่นใหม่นี้ตัวแปรของ
GET หรือ POST
ที่เคยมาทาง global variable มันไม่มาแล้ว เช่น
ถ้า URL เป็น http://www../proc.php?xx=2
เดิมเคยเรียกใช้ $xx ใน proc.php ได้เลย
ตอนนี้ต้องแก้โดยเพิ่มในตอนต้นของ proc.php ไฟล์ว่า
$xx = $_GET["xx"];หรือ
$xx = $_REQUEST["xx"];หรือถ้าใช้
POST ก็ต้อง
$xx = $_POST["xx"];Otto บอกว่าถ้าอยากให้มันมีเหมือนเดิม ก็ไปแก้
.htaccess
โดยเพิ่มบรรทัด
php_flag register_globals 1ลองทำดูแล้ว ทีเดียวได้เลย ง่ายดี มันอาจจะมีปัญหาเกี่ยวกับ Security อะไรไม่รู้ ตอนนี้ใช้แบบนี้ไปก่อนก็แล้วกัน
Comments:
Links to this post:
<< Home
ถ้าไม่กำหนด GET/POST อย่างที่บอกมันจะมีปัญหาแบบนี้ครับ
http://www.thaicyberpoint.com/ford/blogprojects/2005/06/get-post-form-method-hack_28.html
http://www.thaicyberpoint.com/ford/blogprojects/2005/06/get-post-form-method-hack_28.html
ใน php.ini มันจะมี set
register global อยู่ครับ
ถ้า on ไว้ มันก็จะมีปัญหาเืรื่อง
security ในกรณีคนเขียนโปรแกรม
หลวมก็เท่านั้นเองครับพี่
register global อยู่ครับ
ถ้า on ไว้ มันก็จะมีปัญหาเืรื่อง
security ในกรณีคนเขียนโปรแกรม
หลวมก็เท่านั้นเองครับพี่
สาเหตุมาจากความปลอดภัย ซึ่ง PHP เค้าแนะนำไม่ให้อ้างถึง HTTP Query String โดยตรงมาตั้งนานแล้ว ราวๆ 2-3 ปี แต่ว่านักพัฒนาบางส่วนไม่ได้ทำตามกัน (มักง่าย) พอ version หลังๆ เค้าก็ปรับค่า default ไม่ใช้ใช้การอ้างถึงค่าจาก Query String ได้โดยตรง (register_globals flag) ก็เลยมีโปรแกรมบางส่วน โดยเฉพาะ PHP Script เก่า ใช้งานไม่ได้
ดังนั้นถึงแม้ว่า เราจะแก้ได้โดยการกำหนดค่า register_globals แต่ใน script ใหม่ๆก็อย่ามักง่ายนักเลย ทำให้ถูกข้อแนะนำจะดีกว่า
Post a Comment
ดังนั้นถึงแม้ว่า เราจะแก้ได้โดยการกำหนดค่า register_globals แต่ใน script ใหม่ๆก็อย่ามักง่ายนักเลย ทำให้ถูกข้อแนะนำจะดีกว่า
Links to this post:
<< Home

