เรื่องการ 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 1,257

เกิดจากการ 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 ขนาดไฟล์ไม่เกิน 1024
^