Mysql 用PHP清理撇号

Mysql 用PHP清理撇号,mysql,php,str-replace,apostrophe,Mysql,Php,Str Replace,Apostrophe,我在我设置的评分系统中遇到了撇号导致错误的问题。当客户提交包含撇号的论文时,我将用PHP替换所有撇号,如下所示: //Now remove Apostrophes $essay = str_replace("'","", $essay) ; 问题是,这并不适用于所有类型的撇号。例如: 此撇号'与此撇号'不同。我猜解决方案是将$those变量更新为标准撇号类型,然后使用str\u replace删除所有撇号 在此问题上的任何帮助都将不胜感激 你为什么要消毒它 提交到数据库 是否将其返回到get请

我在我设置的评分系统中遇到了撇号导致错误的问题。当客户提交包含撇号的论文时,我将用PHP替换所有撇号,如下所示:

//Now remove Apostrophes
$essay = str_replace("'","", $essay) ;
问题是,这并不适用于所有类型的撇号。例如:

此撇号'与此撇号'不同。我猜解决方案是将
$those
变量更新为标准撇号类型,然后使用
str\u replace
删除所有撇号


在此问题上的任何帮助都将不胜感激

你为什么要消毒它

提交到数据库

是否将其返回到get请求的URL


您对其进行消毒的具体原因有助于我们找到最好的方法

你为什么要消毒它

提交到数据库

是否将其返回到get请求的URL


您对其进行消毒的具体原因有助于我们找到最好的方法

不要担心为插入数据库而尝试对数据进行sanatize(即-现在您正试图删除撇号…)。这是一个已解决的问题

最好的解决方案是使用数据库连接器插入带有准备好的查询的数据

根本不需要对插入进行验证/分析-当您允许时,您的数据库将正确存储所有数据

如果您仍在使用
mysql.*
函数,请不要。它们非常古老,很快就会被弃用,如果不小心使用,就会在应用程序中出现许许多多的编程错误和漏洞利用


这是一个关于如何使用PDO的不错的教程。记住,如果你在准备好的语句中正确地使用它,你就不需要担心sanatizing!你不必担心任何形式的撇号!PDO连接器将为您完成此任务

不要担心为插入数据库而尝试对数据进行sanatize(即-现在您正试图删除撇号…)。这是一个已解决的问题

最好的解决方案是使用数据库连接器插入带有准备好的查询的数据

根本不需要对插入进行验证/分析-当您允许时,您的数据库将正确存储所有数据

如果您仍在使用
mysql.*
函数,请不要。它们非常古老,很快就会被弃用,如果不小心使用,就会在应用程序中出现许许多多的编程错误和漏洞利用


这是一个关于如何使用PDO的不错的教程。记住,如果你在准备好的语句中正确地使用它,你就不需要担心sanatizing!你不必担心任何形式的撇号!PDO连接器将为您完成此任务

虽然我不同意你反对正确排版的危险仇恨,但我可以告诉你,你需要一个
str_replace()
来替换不同类型的撇号字符。只要用你想要删除的每一种撇号做一堆
str_replace()
s


我仍然认为你试图通过避免而不是解决问题来解决问题。撇号完全可以放入mysql数据库,它可能只需要具有不同的字符集或排序规则。

虽然我不同意您对正确排版的危险仇视,但我可以告诉您,对于存在的每种不同类型的撇号式字符,您都需要一个
stru replace()
。只要用你想要删除的每一种撇号做一堆
str_replace()
s

我仍然认为你试图通过避免而不是解决问题来解决问题。撇号完全可以放在mysql数据库中,它可能只需要具有不同的字符集或排序规则。

如果要防止XSS攻击,请尝试

$essay=filter_var($essay, FILTER_SANITIZE_STRING);
如果要防止sql注入,请查找参数化查询。

如果要防止XSS攻击,请尝试

$essay=filter_var($essay, FILTER_SANITIZE_STRING);

如果您试图防止sql注入,请查找参数化查询。

您能告诉我们错误是什么吗?你为什么认为撇号和它有关?您是否遇到了错误?您应该修复错误,而不是限制/更改输入。我想知道错误是什么,而不是您认为如何解决它。为什么撇号会给您带来麻烦?将撇号(或任何其他特殊字符)存储在MySQL表中是完全可能的。您能告诉我们错误是什么吗?你为什么认为撇号和它有关?您是否遇到了错误?您应该修复错误,而不是限制/更改输入。我想知道错误是什么,而不是您认为如何解决它。为什么撇号会给您带来麻烦?将撇号(或任何其他特殊字符)存储在MySQL表中是完全可能的。当我尝试将其存储在数据库中时,我要删除所有撇号。但是撇号似乎有很多不同的类型。如何将所有撇号转换为1样式,然后将它们从$THORSE变量中删除?@WolfmanJoe,因为我根本不希望它们存储在数据库中。我知道你可能不同意这一点,但这与我正在努力实现的目标是一致的。有没有办法做到这一点?@Three3告诉我们更多关于您为什么希望通过不存储撇号来解决问题的信息。如果您不与我们分享更多信息,我们认为您有或没有注意到。我们无法在没有背景的情况下帮助你实现目标“去掉撇号”太模糊了。当我试图将其存储在数据库中时,我希望删除所有撇号。但是撇号似乎有很多不同的类型。如何将所有撇号转换为1样式和