ckeditor在保存时弄乱了代码
Posted
技术标签:
【中文标题】ckeditor在保存时弄乱了代码【英文标题】:ckeditor messing up the code when saving 【发布时间】:2013-11-12 14:02:40 【问题描述】:我正在为某些人构建一个可编辑的网站,我正在使用 ckeditor 让他们能够在线使用 WYSIWYG,但是当我使用 post 方法保存数据时,代码变得混乱.. .
这就是我使用 ckeditor 保存选项卡和所有可编辑网站的方式:
<html>
<head>
<title>CKEditor Sample</title>
<script src="ckeditor/ckeditor.js"></script>
</head>
<body>
<form action="login/updateText.php" method="post">
<p>
File being modified: <textarea name="name" id="name">about.php</textarea>
<textarea name="editor1" id="editor1">
<?php echo file_get_contents('about.php');?>
</textarea>
<script>
CKEDITOR.replace( 'editor1' );
</script>
</p>
<p>
<input type="submit">
</p>
</form>
</body>
</html>
但在编辑后:
<div class="menuslct">
<table border="0" style="text-align:center; width:980px">
<tbody>
<tr>
<td><a href="/en/aboutus"><img src="/common/img/icons/aboutus.png" style="height:80px; width:80px" /></a></td>
<td><a href="/en/aboutus/ourteam"><img src="/common/img/icons/12 our team.jpg" style="height:78px; width:78px" /></a></td>
<td><a href="/en/aboutus/howtohelp"><img src="/common/img/icons/11 help.jpg" style="height:78px; width:78px" /></a></td>
</tr>
<tr>
<td>About Us</td>
<td>Our Team</td>
<td>How to help</td>
</tr>
</tbody>
</table>
</div>
保存的 html 代码如下所示:
<div class="\"menuslct\"">
<table border="\"0\"" style="\"height:80px">
<tbody>
<tr>
<td>About Us</td>
<td>Our Team</td>
<td>How to help</td>
</tr>
</tbody>
</table>
</div>
<p><a href="\"><img src="\" style="\"height:78px" /></a><a href="\"> <img src="\" style="\"height:78px" /></a></p>
这里是updateText.php:
<?php
$filename = $_POST['name'];
$str = $_POST['editor1'];
$fh = fopen($filename, "w");
fwrite($fh, $str);
fclose($fh);
header("Location: modify.php");
?>
所以我不知道我在搞砸什么......
【问题讨论】:
请说明您是如何保存 html (updateText.php) 编辑添加 updateText.php (对不起,我忘了:P) 关闭魔术引号.. 【参考方案1】:看起来magic quotes 弄乱了你的 $_POST 变量。
在你的 php.ini 文件中禁用它:
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off
Disabling Magic Quotes
【讨论】:
我把你给我的那行放在 /etc/php5/apache2/php.ini 文件的末尾,但还是一样... 这样就解决了!!if (get_magic_quotes_gpc()) function stripslashes_gpc(&$value) $value = stripslashes($value); array_walk_recursive($_GET, 'stripslashes_gpc'); array_walk_recursive($_POST, 'stripslashes_gpc'); array_walk_recursive($_COOKIE, 'stripslashes_gpc'); array_walk_recursive($_REQUEST, 'stripslashes_gpc');
好的。。但如果你在编辑 php.ini 后重启了服务器,它应该可以工作了。。【参考方案2】:
如果您想使用 CKEditor 添加 HTML 代码,您必须首先确保您已按下“Source”按钮,否则它将对输入进行编码,您将遇到上述问题。
【讨论】:
无论我在点击发布按钮之前是否按下源,它的结果都完全相同......以上是关于ckeditor在保存时弄乱了代码的主要内容,如果未能解决你的问题,请参考以下文章
在 div 标签中显示保存在数据库中的 ckeditor 数据