繁体   English   中英

在保存到mysql的php脚本中转义引号的最佳方法是什么?

[英]What's the best way of escaping quotes in a php script that saves to mysql?

我要来回处理这个问题,所以我想在这里问。 我希望有一种适用于所有输入字段(文本,选择,文本区域)的技术。

  1. 首先,我们使用php脚本处理用户输入。 可能会有一些验证错误,因此可能需要使用用户输入的值重新显示表单。 htmlspecialchars($fieldValue, ENT_QUOTES)在这里不起作用,因为如果出现验证错误并重新显示表单,则用户输入的所有引号都将转换为\\“。至少在文本区域中。

  2. 表单成功验证后,我们需要将输入发送到数据库。 列值必须“安全”,因此需要进行一些转换。 我了解从数据库读取数据时可能也需要进行某种形式的转换,尽管我希望这是错误的。

寻找不涉及太多代码的良好实践。

===

只是作为更新。 在Domino形式中,没有任何形式的转义,并且不需要特殊处理。 Notes会自动做到这一点。 在使用JPA的Java应用程序中,所有这些“安全性”也可以自动处理。 我了解php可能没有等效的功能,但这是一个常见的问题,我选择相信自己缺少一些非常简单的解决方案。

只需使用mysql_real_escape_string()过滤需要进入数据库的输入!

快速解决\\"问题,请关闭magic_quotes无论如何都不应该使用它

对于其他问题,请使用支持预准备语句驱动程序,如果您不希望使用等效的JPA, 使用ORM

要验证表单中的用户输入,请使用表单库 ,该将处理这些平凡的任务。

您可以使用像Doctrine这样的ORM自动执行很多工作。 您确实应该使用PDO进行数据库访问,这将允许您执行“绑定”而不是“转义”。 仅使用转义会出现UTF8字符和编码问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM