คุณเคยสงสัยหรือไม่ว่า Magic Quotes GPC คืออะไร? แก้ไขตรงไหน? จำเป็นหรือไม่?
Magic Quotes GPC มีไว้เผื่อช่วยให้เราสามารถนำข้อมูล หลังจากที่เรา submit form ไป query ใส่ database ได้โดยไม่ error
ซึ่งการรับข้อมูลจาก form ต่างๆ มีโอกาสที่ user จะกรอก Single quote (') หรือ Double quote (") เข้ามาในช่อง input box ของเราได้
ดังนั้นถ้าเรานำข้อมูลไปใช้โดยตรงทำให้มีโอกาส query error ได้
ถ้าหาก Magic Quotes GPC = On
จะมีการเติม \ เข้าไปที่หน้า Single quote หรือ Double quote ให้อัตโนมัต ทำให้สามารถนำค่าไป query ได้ทันที
ดังนั้นการ query เราจึงต้องเช็คดังนี้
01 | if (get_magic_quotes_gpc()) { |
02 | $name = stripslashes($_POST[ 'name' ]); |
05 | $name= $_POST[ 'name' ]; |
08 | $name= mysql_real_escape_string($name); |
10 | $sql = "INSERT INTO table_name (name) VALUES ('$name')" ; |
แต่ถ้าหากนำไปแสดงผลในส่วนที่ชนกับ Single quote หรือ Double quote ของ syntax บน html ล่ะ?
แน่นอนว่าการแสดงผลเช่นนี้ผิด syntax ของ html ดังนั้นเราจึงอาจใช้ function htmlspecialchars ของ php มาช่วยก่อนที่จะแสดงผลบนค่าของ value จะทำให้สามารถแสดงผลออกมาได้ถูกต้อง
การแก้ไข Magic Quotes GPC
สามารถแก้ไข Magic Quotes GPC ได้ที่ file php.ini
1 | # php.ini seting to trun On/Off |
หรือสามารถแก้ที่ file .htaccess ได้ดังนี้
1 | # .htaccess seting to trun On/Off |
2 | php_flag magic_quotes_gpc off |
ดังนั้นการ set magic_quotes_gpc จะจำเป็นหรือไม่ขึ้นอยู่กับ code ของเราเองว่าได้ครอบ mysql_real_escape_string ไว้หรือไม่เพื่อลองรับข้อมูลจาก user ที่กรอก Single quote หรือ Double quote เข้ามา
Email This
BlogThis!
Share to Facebook
0 comments:
Post a Comment