使用TinyMCE保存问题

时间:2011-08-27 15:42:00

标签: php tinymce

我设法让它在编辑器中加载正确的页面,但现在我无法弄清楚为什么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中要改变什么来正确地加载。

2 个答案:

答案 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']) {