我设法让它在编辑器中加载正确的页面,但现在我无法弄清楚为什么TinyMCE不会保存。
我很确定它与此有关:
$this_page = $_SERVER["PHP_SELF"];
$query_string = $_SERVER["QUERY_STRING"];
echo("<form method=\"post\" action=\"$this_page?$query_string\">\n");
echo("<textarea id=\"page\" name=\"page\" rows=20 cols=60>\n");
echo(htmlspecialchars($text));
echo("</textarea>\n");
echo("<input type=\"submit\" value=\"Save\">\n");
echo("</form>\n");
这是我的新脚本的完整版本:
<?php
// Get the page name from the query string
$page = $_GET["p"] . ".htm";
if (!$_GET["p"]) {
echo("<p>Select a page to work with to begin.\n");
exit;
}
if ($_POST["p"]) {
$handle = fopen("../includes/$page", "w");
fwrite($handle, $_POST["p"]);
fclose($handle);
echo($_POST["p"]); // OR include("../includes/$page");
exit;
}
if (file_exists("../includes/$page")) {
$FILE = fopen("../includes/$page", "rt");
while (!feof($FILE)) {
$text .= fgets($FILE);
}
fclose($FILE);
} else {
echo("<h1>New Page: $page</h1>\n");
$text = "<p></p>";
}
echo <<< EOM
<script language="javascript" type="text/javascript"
src="/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_path_location : "bottom"
});
</script>
EOM;
$this_page = $_SERVER["PHP_SELF"];
$query_string = $_SERVER["QUERY_STRING"];
echo("<form method=\"post\" action=\"$this_page?$query_string\">\n");
echo("<textarea id=\"page\" name=\"page\" rows=20 cols=60>\n");
echo(htmlspecialchars($text));
echo("</textarea>\n");
echo("<input type=\"submit\" value=\"Save\">\n");
echo("</form>\n");
?>
编辑:我的文件权限错误,但现在它们是正确的,脚本仍然无法正常工作。任何想法都错了吗?
-------------------------这条线下面很重要但很旧--------------- ----------
我正在开发我的第一个非常简单的CMS,仅用于编辑文本。它不会添加页面,允许上传或类似的东西。它只允许用户通过后端编辑页面。
我有这个脚本工作,但是去修改它很多,现在我遇到了问题。
链接基本上设置如下:<a href="index.php?p=home">Edit the home page</a>
当您点击它时,它应将../includes/home.htm
定义为活动页面(或../includes/contact.htm
,如果链接为index.php?p=contact
等),则将TinyMCE加载到{{ 1}}部分,将活动页面作为正在编辑的内容。
我是PHP的新手,所以这对我来说非常困惑。我跟着a tutorial进行了初步设置,现在我正试图让它按照我想要的方式工作。
问题基本上是我不知道在PHP中要改变什么来正确地加载。
答案 0 :(得分:1)
我明白了!本节:
if ($_POST["p"]) {
$handle = fopen("../includes/$page", "w");
fwrite($handle, $_POST["p"]);
fclose($handle);
echo($_POST["p"]); // OR include("../includes/$page");
exit;
}
if (file_exists("../includes/$page")) {
$FILE = fopen("../includes/$page", "rt");
while (!feof($FILE)) {
$text .= fgets($FILE);
}
fclose($FILE);
} else {
echo("<h1>New Page: $page</h1>\n");
$text = "<p></p>";
}
需要if ($_POST["page"])
代替["p"]
。当我去改变页面命名的方式时,我没有意识到表单也有“页面”的名称。
答案 1 :(得分:-1)
更改
if ($_POST['page']) {
到
if ($_GET['page']) {