โดย mindphp » 15/05/2008 12:39 am
ยินดีด้วยครับ
ทางแก้ ปัญหา คน ปั่น Javascript ลงใน form ทำได้ สอง แบบ ครับ แบบ แรก คือ
การ fielter ข้อมูล ที่ input เข้ามา
อย่างที่ สอง คือ fielter ข้อมูลที่จะเอาออกไปแสดงผล
ยกตัวอย่างเว็บ บอร์ด SMF จะใช้ ทั้ง สอง วิธี
จะใช้ วิธี กรอง ข้อมูล ก่อนที่จะเก็บ ลง ฐาน
// Removes special entities from strings. Compatibility...
function un_htmlspecialchars($string)
{
return strtr($string, array_flip(get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES)) + array(''' => '\'', ' ' => ' '));
}
หรือ โดยส่วนตัวผล ถ้ามีปัญหา กับการแสดง ผล ก็จะใช้
htmlspecialchars()
เพื่องแปลง tag ที่มีผลกระทบกับ browser เป็น เครื่องหมาย พิเศษ ก็ไม่ต้องกังวลเรื่องการ ถูกยัด Javascript เข้ามาใน form
ยกตัวอย่าง $var
ธรรมดา echo $var
ก็ใช้ echo htmlspecialchars($var) แทน
ยินดีด้วยครับ
ทางแก้ ปัญหา คน ปั่น Javascript ลงใน form ทำได้ สอง แบบ ครับ แบบ แรก คือ
การ fielter ข้อมูล ที่ input เข้ามา
อย่างที่ สอง คือ fielter ข้อมูลที่จะเอาออกไปแสดงผล
ยกตัวอย่างเว็บ บอร์ด SMF จะใช้ ทั้ง สอง วิธี
จะใช้ วิธี กรอง ข้อมูล ก่อนที่จะเก็บ ลง ฐาน
// Removes special entities from strings. Compatibility...
function un_htmlspecialchars($string)
{
return strtr($string, array_flip(get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES)) + array(''' => '\'', ' ' => ' '));
}
หรือ โดยส่วนตัวผล ถ้ามีปัญหา กับการแสดง ผล ก็จะใช้
htmlspecialchars()
เพื่องแปลง tag ที่มีผลกระทบกับ browser เป็น เครื่องหมาย พิเศษ ก็ไม่ต้องกังวลเรื่องการ ถูกยัด Javascript เข้ามาใน form
ยกตัวอย่าง $var
ธรรมดา echo $var
ก็ใช้ echo htmlspecialchars($var) แทน