【问题标题】:Edit a page with content editable and save it using php编辑内容可编辑的页面并使用 php 保存
【发布时间】:2016-01-16 10:29:27
【问题描述】:

我正试图围绕一个我想从事的项目来尝试更熟悉 PHP 编程。

我想创建一个无需完整 CMS 即可轻松更新的网站。我正在考虑使用 HTML5 contenteditable 小部件。

我的设想如下:

  1. 用户登录并启动一个会话,该会话将允许 php 回显内容可编辑标签,以便它仅在用户通过身份验证时可见。
  2. 登录后,用户可以对文件进行更改并单击保存按钮,文件将被更新。这是我需要帮助的地方

是否可以更新您当前所在的 php 文件?如果是,它是否涉及 ajax 或仅涉及纯 php? 如何传递 contenteditable 小部件中的内容以保存在服务器上? 我不想使用 FTP,所以我假设我必须学习如何使用 AJAX 来做到这一点?我不想问,但如果你有示例代码会很棒!

最后,这是一个超级重大的安全风险吗?

提前致谢!

亚特兰蒂

【问题讨论】:

  • 是的,可以,但您的问题过于宽泛且没有重点。请先尝试一下。当您遇到困难/无法工作时,请回到这里解决具体问题,我们可以为您提供帮助。
  • 亚特兰特,你还在吗?请来这里澄清其他人。我只是尝试这样做。您的问题似乎无法正确传达给这里的某些人。
  • @MagnusEriksson,谢谢,但起点是我想去的地方。我理解这个问题的“广泛性”,但我显然不知道从哪里开始。不过感谢您的意见。
  • @PraveenKumar,是的,摆脱表格是理想的。我只想学习如何在没有表单的情况下提交 contenteditable div。我相信它必须用 Javascript 来完成,因为它本质上是一个 JS 小部件。由于这是一个非常不受欢迎的问题,如果我无法找到起点,我将把它记下来。感谢您的帮助,非常感谢!
  • @AtlanteAvila 你看到答案了吗。你不需要把它取下来。挺好的。

标签: javascript php jquery ajax html


【解决方案1】:

我刚刚做了类似的事情。考虑到您已经构建了一个具有文本框和提交按钮的 <form>

<form action="update.php" method="post">
  <div><label for="textArea">Your Message</label></div>
  <div><textarea name="textArea" id="textArea"></textarea></div>
  <div><input type="submit" value="Save" /></div>
</form>

现在你只需要做一件事。删除&lt;form&gt; 并将&lt;textarea&gt; 替换为contentEditable &lt;div&gt;,如下所示:

<strong>Your Message</strong>
<div contenteditable id="textArea"></div>
<input type="button" value="Save" id="saveBtn" />

如您所知,上面的内容也可以作为富文本编辑器,现在您只需要做一件事。使用 jQuery,使用 AJAX 发布表单并做一些事情:

$(function () {
  $("#saveBtn").click(function () {
    var text = $("#textArea").html();
    var url = "update.php";
    $.post(url, {textArea: text}, function () {
      $("#textArea").css("background", "#ccc").prop("contenteditable", false);
      alert("Thanks for your message!");
    });
  });
});

要回答您关于安全性的问题,您必须拥有一个完美修补的服务器并使用 HTTPS。这只能由服务器端处理。现代浏览器确实足够安全。

【讨论】:

  • Ahah Kumar,投票否决我的答案以登上页面顶部显示了您的伟大心态!另外,提供完整的代码不会对 Atlante 有太大帮助,他来这里是为了进步,而不是为了获得完整的解决方案。 GG。
  • @sAyVII OP 显然希望摆脱使用contenteditable 的形式。请理解问题。
  • @sAyVII 在这种情况下,如果您这么认为,我将删除反对票。现在开心?你的答案是错误。说真的,与 OP 的要求没有任何关系。
  • 表格还不错。绝对没有理由摆脱它们。如果 OP 不想要表格,那可能是因为他并没有真正理解这个概念。我要做的是创建一个表单,设置一些隐藏的 CSRF 令牌(安全),添加一个隐藏的“内容”输入并在提交时,将可编辑元素的内容复制到隐藏的内容输入并使用 Ajax 发布。
  • @MagnusEriksson 是的,这也是个好主意。 OP 的当前请求,所以必须是那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 2022-08-15
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
相关资源
最近更新 更多