如何将内容从wysisyg内联编辑器保存到.php文件

时间:2014-06-04 17:47:11

标签: javascript php html5 editor inline

我找到了一个' HTML5 WYSISYG Inline Editor',我在我的localhost(Ubuntu 14.04)上工作。

目的是将其嵌入我的网站,并将其用作我网站的主要书写工具。我需要能够选择文件名或者在文件名的空白处添加-

这是我在其上写的用于保存其内容的代码

CodePen from original author: HTML5 WYSISYG Inline Editor

inline.php

  <form action="effe.php" method="post">

      <input type="text" name="author" value="" placeholder="Author">
      <input type="text" name="header" value="" placeholder="header">
      <input type="datetime" name="datetime" value="" placeholder="datetime">

    <div id='editor' contenteditable contextmenu="mymenu" name='editor'>
      <p>This is just some example text to start us off</p>
    </div>


    <div class="tags">

      <input type="text" name="" value="" placeholder="tag">
      <input type="text" name="" value="" placeholder="tag">
      <input type="text" name="" value="" placeholder="tag">

    </div>


    <input type="submit" value="Submit">
  </form>

save.php

<?php

if (!empty($_POST))
{
    foreach ( $_POST as $key => $value )
    {
        if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) )
            continue;

?>

        <?php echo htmlspecialchars( (string)$key ); ?>

<div class="article-meta">
   <a class="author" rel="author" title="author" href="/about" target="_blank"><?php echo "$author";?></a> 

   <time datetime="<?php echo "$datetime";?>" title="<?php echo "$datetime";?>"><?php echo "$datetime";?></time>

</div> 

<h1><?php echo "$header"; ?></h1>

<?php echo "$editor"; ?>

    <div class="tags">

      <span> <?php echo "$tag1"; ?> </span>
      <span> <?php echo "$tag2"; ?> </span>
      <span> <?php echo "$tag3"; ?> </span>

    </div>

    <?php
    }
}
?>

结果:

result

我一直在这里度过了美好的一天,我只是没有看到做错了什么。请注意我的php知识非常基础。

我知道使用db是一种选择,但在我的头脑中,我在过去的一两年里只撰写了类似20+的文章。当我点击100篇文章时,我会考虑切换到数据库。

1 个答案:

答案 0 :(得分:0)

我不是100%确定你是什么;重新努力完成。我是你提到的那篇文章的作者,我很乐意提供帮助。

我不确定你的方法;重新尝试使用是实用的。这里最好的选择是建立一个数据库并在那里写内容。

使用php非常简单,我建议看一下PDO,即数据库抽象层。还有一些其他的,但是这个对你有一些与注射攻击有关的工作,所以这是一个很好的起点。

听起来你需要一个相当简单的数据库表,很可能是这样的:

create table articles (
  article_id INT NOT NULL AUTO INCREMENT,
  title VARCHAR(100) NOT NULL,
  content TEXT NOT NULL,
  article_date DATE
  PRIMARY KEY (tutorial_id)
);

当您从编辑表单中回发数据时,您可以执行以下操作:

$dbh = new PDO('mysql:host=localhost;dbname=articles', 'user', 'pwd');
$sth = $dbh->prepare('INSERT INTO articles (title, content, article_date) values (:title, :content, NOW())');
$sth->bindParam(':title', $_POST['title']);
$sth->bindParam(':content', $_POST['content']);
$sth->execute();

要回想起数据库,请使用以下内容:     $ dbh = new PDO(&#39; mysql:host = localhost; dbname = articles&#39;,&#39; user&#39;,&#39; pwd&#39;);     $ sth = $ dbh-&gt;查询(&#39; SELECT * FROM articles&#39;);

除此之外还有更多内容,例如,您希望添加try / catch块以避免错误,并且您可能想要选择特定的文章(即SELECT * FROM文章,其中article_id = 45)但我希望这能指出你正确的方向。

我认为试图避免使用数据库会导致很多额外的工作,一旦你开始使用类似MySQL的东西,你就可以立即启动并运行!