我让我的用户输入文本,然后将它们带到服务器端php并处理它们,如果一切正常,我只需用jquery附加文本,而不必重新加载页面。
这是程序:
$post_text = htmlspecialchars(mysql_real_escape_string($_POST['post_text']));
某些逻辑...
一切都好!
stripslashes(str_replace("\\n", "", $post_text))
然后我发送所有nesseary数据witj json
echo json_encode($return);
在客户端,我附加了从服务器端保存在变量中的html块。
这似乎适用于localhost,它会删除所有斜杠等等,但是在线它只是删除斜线,并且它们不断出现,当我点击刷新它们消失时因为它的一个
stripslashes($comment['statusmsg_text'])
用p直接从数据库写出来。是json增加了一些额外的东西吗?我不明白因为它在localhost上完美运行。
最好的问候, 亚历山大
答案 0 :(得分:3)
额外的斜杠可能是magic quotes。您shouldn’t rely on them和disable them。
此外,mysql_real_escape_string
仅应用于准备要放入MySQL语句中的字符串上下文的字符串。类似地适用于htmlspecialchars
,{{1}}仅应用于清理要放入HTML上下文的数据。
答案 1 :(得分:1)
在没有stripslashes
的情况下尝试,json_encode
应该处理它。您需要做的就是在字符串触及数据库之前使用mysql_real_escape
一次。
答案 2 :(得分:1)
可能是,在您的服务器和本地主机上,magic_quotes_gpc指令的设置方式不同,因此您的字符串在服务器端进行了双重编码。