2

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

获取内容

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

并发送内容

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

我可以在萤火虫中看到正在传递字符串

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

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

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

当谈到 ajax 时,我的脚仍然湿透了。如果我的假设是正确的,我该如何解决?

4

1 回答 1

3

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

为了修复破坏字符,您必须escape使用字符串。

尝试这个:

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

您可能不必这样做(因为 Apache 会为您完成),但如有必要,您也可以使用以下命令在 PHP 端取消转义字符串urldecode

<?php echo urldecode($_GET['c']); ?>
于 2013-07-07T13:30:43.547 回答