遇到特殊字符时,获取tinymce内容会停止

时间:2013-07-07 13:27:03

标签: php tinymce

我无法弄清楚为什么我的php处理脚本在遇到tinymce textarea中的特殊字符时会停止。 例如,如果我键入foo并提交,很好......没有问题但是如果我键入foo<<<<<<<<<<<<<< 编辑器正在创建html实体并通过ajax发送它们

获取内容

var c = tinyMCE.get('content').getContent();

并发送内容

ajax.send("action=edit_content&c="+c+"&id="+id);

我可以在firebug中看到字符串正在传递

action=edit_content&c=<p>foo &lt;&lt;&lt;</p>&id=8

并且php实际上没什么特别的,只需将该帖子设置为var

即可

可能是因为&amp;在&lt;?也许它认为这实际上是另一个帖子参数?

当涉及到ajax时,我仍然会弄湿我的脚。如果我的假设是正确的,我该如何解决?

1 个答案:

答案 0 :(得分:3)

你有正确的想法。 &符号正在破坏URL字符串。

为了修复中断字符,您必须escape字符串。

试试这个:

ajax.send("action=edit_content&c="+escape(c)+"&id="+id);

您可能不必(因为Apache会为您执行此操作),但如有必要,您还可以使用urldecode在PHP端转换字符串:

<?php echo urldecode($_GET['c']); ?>