2014-02-21 41 views
0

我刚刚开始帮助一个网站,其中有一个管理员部分允许网站所有者输入要显示在网站上的文本。使用撇号添加文本时会出现问题,因为它会打破PHP语句。我已经看过使用mysql_real_escape_string命令,但不确定使用它的最佳方式。原始代码如下。任何建议都会很棒!插入带有撇号的文本到MySQL

<textarea name="descr" cols="76" rows="5" id="descr" tabindex="5" onBlur="this.value=removeMSWordChars(this.value);"> 
    <?php echo $data['descr']; ?> 

    </textarea> 
    <script type="text/javascript"> 
     CKEDITOR.replace('descr'); 
    </script> 
    </td> 

回答

1

阅读Prepared Statements,它们允许你:

  • 让你的代码安全对SQL injection攻击
  • 插入任何字符容易到数据库中,而无需关心逃逸。

你似乎仍使用MySQL扩展(具有mysql_query):请注意,此扩展已被弃用,并且不支持预处理语句。您应该切换到PDOMySQLi,顶部的链接说明如何。

+1

该漫画并没有真正添加任何东西给你的答案,尤其是当与新手打交道时。 – Marty

+0

@Marty你可能是对的,删除它。我认为这有助于理解危险。 – TimWolla

+0

如果是我的,我会收回那个downvote,不幸的是它不是。 – Marty