【发布时间】:2011-01-31 15:42:01
【问题描述】:
我已经搜索和搜索了 2 天,但似乎找不到解决问题的方法。
因此,在我的 CMS 中,将内容加载和保存到 TinyMCE 的正常操作工作正常,但是当我为联系表单或任何相关内容添加 textarea 时,一切都进入了 Lucifer 的世界。代码如下:
获取已发布的数据以保存:
//get page info
$pnfo = $dbase->getPage("page_a_link", $page2edit);
if($_POST['pageedit']!='') {
//to be success message
$sHeader = '<span style="text-align: center;"><h3><span style="color:green;">'
.ucfirst($page2edit).' has Been Succesfully Updated</span></h3></span>';
//content to be injected into page
$sContent = "<? ";
// add access level
if ( $pnfo['page_level'] !== GUEST_LEVEL ) {
if ( $pnfo['page_level'] == MEMBER_LEVEL ) {
$sContent .=" \$access_level='members';";
} else {
$sContent .=" \$access_level=".$pnfo['page_level'].";";
}
$sContent .=" include('../inc/pageauth.inc.php'); ";
}
$sContent .=" ?> ";
//add posted content
$sContent .= stripslashes($_POST['pageedit']);
// inject article module
if ( $pnfo['isblog'] == "1" ) {
$sContent .="<? \$page='".$pnfo['page_bread']."'; include('../inc/modules.inc/articles.mod/inject.articles.mod.php'); ?>";
}
//add content to page
file_put_contents("../../../content/page/tpl/".$page2edit,$sContent);
// echo success message
echo $sHeader;
}
以及在 TINYMCE 中渲染它的代码
$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';
ob_start();
error_reporting(0);
include('../../../content/page/tpl/'.$page2edit);
$render_pages .= ob_get_clean();
$render_pages .= '</textarea>';
还有一个重要的展示部分(你会读到为什么是 INA MIN) 我的提交按钮:
$render_pages .= '<input type="image" onclick="javascript: window.open(\'pages\',\'_self\')"';
请记住,无需添加<TEXTAREA>,一切都会完美运行
好的,所以当我添加一个 textarea 时会发生什么是它保存时,它说它保存但不是页面本身,而是“页面”,这是我发布到的内容(我的提交按钮)。
我了解应该如何呈现文本区域,这是我尝试过的所有失败的解决方案:
1:
$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';
ob_start();
error_reporting(0);
$src = include '../../../content/page/tpl/'.$page2edit;
$render_pages .= htmlspecialchars($src); (also with ENT_NOQUOTES)
$render_pages .= ob_get_clean();
$render_pages .= '</textarea>';
2:
$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';
ob_start();
error_reporting(0);
htmlspecialchars(include('../../../content/page/tpl/'.$page2edit));
$render_pages .= ob_get_clean();
$render_pages .= '</textarea>';
3:
$sContent .= stripslashes(htmlspecialchars($_POST['pageedit']));
4:
$file = file_get_contents('../../../content/page/tpl/'.$page2edit, true);
$file = str_replace('</textarea>', htmlspecialchars('</textarea>'), $file);
$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';
$render_pages .= $file;
$render_pages .= '</textarea>';
5:
$file = file_get_contents('../../../content/page/tpl/'.$page2edit, true);
$file = str_replace('</textarea>', htmlspecialchars('</textarea>'), $file);
$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';
ob_start();
$render_pages .= $file;
$render_pages .= ob_get_clean();
$render_pages .= '</textarea>';
(我也在所有解决方案中尝试了 htmlentities)
没有任何效果,所有解决方案都会以 1 或 2 种方式破坏页面:
1.
在回显成功标题时中断,但使用“pages”作为页面名称而不是要保存的实际页面名称(请记住,“pages”是我在我的图像提交按钮中发布的链接 - 它调用了一个简单的提交表单的 java 代码 - 我相信你们中的大多数人都知道),它会阻止页面的其余部分显示
2.
与第一个相同,但不会破坏页面的其余部分。
-.- 我对此感到很困惑。 >.
帮助,也许? o.O
PS:我试图正确格式化这篇文章,但我想还是继续搞砸。
【问题讨论】:
-
感谢三十为我编辑
标签: html forms tinymce textarea