Php 限制textarea中的字符-转义引号和双引号在MySQL中占用2个字符

Php 限制textarea中的字符-转义引号和双引号在MySQL中占用2个字符,php,javascript,mysql,html,escaping,Php,Javascript,Mysql,Html,Escaping,我想将textarea限制为一定数量的字符,并编写了一个JavaScript函数来通知用户剩余的字符数。此限制与MySQL中为该特定字段设置的限制相匹配 但是,当使用PHP和mysql_real_escape_string()保存内容时,它会使用反斜杠保存引号和双引号(我可以想象反斜杠和所有其他转义内容),这样这些字符实际上会占用2个空格,从而使JS函数不准确。你有没有想过如何避开这个问题 编辑:根据deceze的建议,我检查了magic quotes是否打开,并且他们正在使用get_magic

我想将textarea限制为一定数量的字符,并编写了一个JavaScript函数来通知用户剩余的字符数。此限制与MySQL中为该特定字段设置的限制相匹配

但是,当使用PHP和mysql_real_escape_string()保存内容时,它会使用反斜杠保存引号和双引号(我可以想象反斜杠和所有其他转义内容),这样这些字符实际上会占用2个空格,从而使JS函数不准确。你有没有想过如何避开这个问题

编辑:根据deceze的建议,我检查了magic quotes是否打开,并且他们正在使用get_magic_quotes_gpc()检查

但我也检查了目录的.htaccess文件,发现了以下标志:

php_value magic_quotes_gpc                0

很明显,这并没有关闭神奇的报价。知道为什么吗?

如果它保存的是无关的斜杠,那么它实际上并没有保存要保存的文本。

听起来你已经启用了。禁用它们。

据我所知,没有启用魔法引号。如果我很迟钝,请原谅,但是使用mysql\u real\u escape\u string()对包含引号的字符串进行转义不会在转义字符前面添加反斜杠吗?然后将其插入MySQL中保留反斜杠?在我看来,它最终会将1个字符(一个引号)保存为2。@ZDYN使用
mysql\u real\u escape\u string进行转义
只会转义将文本插入数据库的查询中断的字符。额外的斜杠不会保存在数据库中。简化示例:
“这些是\“引号\”
表示字符串是
这些是“引号”。
斜杠不是字符串的一部分,它们仅在编写字符串文字时用于有效语法。既然你已经接受了这个答案,我想它解决了你的问题?它是这个特定问题的正确答案,但现在我有一个更大的问题,那就是为什么我不能禁用魔法引号。是否存在可以覆盖本地.htaccess文件的内容?@ZDYN如果无法在php.ini中禁用它,则只能有条件地取消应用程序中的值。请看,我没有对php.ini的写入权限,我已确认它处于打开状态。那真令人失望。感谢您的帮助,非常感谢!