GORAGOD.com

GORAGOD.com

freelance, web developer, web designer, hosting, domain name

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

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



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



เช่นข้อความนี้

i don't think i love you



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

i don\'t think i love you





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





มีวิธีแก้ยังไงบ้างอ่ะครับอาจารย์ :D
23 ม.ค. 2554 2 2,425

เกิดจากการ 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
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 64M
^