A-AA+then

เรื่องการ INTO ข้อมูลลงในฐานข้อมูล แล้ว จะมี "\" (back

1,233
เรื่องการ INTO ข้อมูลลงในฐานข้อมูล แล้ว จะมี "\" (backslash) ติดเข้าไปด้วย

ตามหัวข้ออ่ะครับ คือ หลังจากที่ ข้อมูลบันทึกเข้าไปใน ฐานข้อมูลเรียบร้อยแล้ว

เช่นข้อความนี้
i don't think i love you

ผลที่ได้จากแสดงผลเป็นแบบนี้ครับ (มี "\" backslash ติดมาด้วย)
i don\'t think i love you


บางอันขึ้น backslash เยอะเลย เช่น i don\\\\\\\\\\\\\\'t th.........


มีวิธีแก้ยังไงบ้างอ่ะครับอาจารย์ :D

2 ความคิดเห็น

เกิดจากการ addslashes() กับ magic_quotes ทำงานร่วมกันครับ วิธีแก้ที่แนะนำ (best practice) ก็คือปิด magic_quotes_gpc แล้วให้แน่ใจว่าเรา Escape String ก่อนนำเข้าฐานข้อมูลทุกครั้งครับ ผมเคยเห็นใน StackOverflow มีคนทำฟังก์ชั่น Shorthand ไว้ชุดนึง

function u($x) { return urlencode($x); }
function h($x) { return htmlspecialchars(x); }
function s($x) { return mysql_real_escape_string($x); }

- ทีนี้เวลาใส่ข้อมูลใส่ฐานข้อมูล พวก Field ต่างๆ ให้ใส่ s() ครอบทุกครั้ง
- เวลาแสดงผลในหน้าเว็บ ให้ใส่ h() ครอบทุกครั้ง
- เวลาใส่ใน URL ให้ใช้ u() ครอบทุกครั้งครับ

ทีนี้เราก็จะไม่มีปัญหาเรื่องพวกการจัดการข้อมูลอีกเลยครับ
1

*0* ขอบคุณครับ :D

เดี๋ยวจะลองดูครับ :D

ท่านเทพ @dtinth นี่นา *0*
2
^