如何使用PHP将HTML保存到mysql?

问题描述 投票:0回答:3

我正在尝试通过表单将一些 html 发布到 php 页面,然后尝试将该 html 保存到数据库中 我面临的问题是,当我将其保存到数据库时,它包含许多 html 实体

例如我原来的html代码是

<div class="flexslider">
 <ul class="slides">
<li class="slide slide--text" data-text="Great Plans And Pricing To Help You Get Started With Your E-Commerce Business">
  <div class="overdiv" style="position: absolute;">
           <form method="post" action="https://www.marclick.com/customer/account/create/">
              <div>
                 <input required type="email" name="email" value="" style="border-radius:10px;" class="form-control" placeholder="Your Email">
                 <div class="text-left"></div>
                 <input type="submit" value="Get Your Online Shop Now!" class="btn btn-warning btn--decorated">
              </div>
           </form>
           <p class="text-left">No Credit Card Required</p>
 </div>
  <img src="img/home_slider/1.jpg" alt="">
</li>
</ul>

但是当我将其保存到数据库时,它就变成了

    <p>&lt;!-- Flex full width slider --&gt;<br />
&lt;div class=&quot;flexslider&quot;&gt;<br />
&nbsp;&nbsp;<br />
&nbsp; &lt;ul class=&quot;slides&quot;&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&lt;li class=&quot;slide slide--text&quot; data-text=&quot;Great Plans And Pricing To Help You Get Started With Your E-Commerce Business&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;div class=&quot;overdiv&quot; style=&quot;position: absolute;&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;h2&gt;Get a &lt;span style=&quot;color:#E92803;-webkit-text-stroke-width: 1px;-webkit-text-stroke-color: black&quot;&gt;FREE&lt;/span&gt; Gorgeous Shop in Minutes and Sell Anywhere.&lt;/h2&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;form method=&quot;post&quot; action=&quot;https://www.marclick.com/customer/account/create/&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;input required type=&quot;email&quot; name=&quot;email&quot; value=&quot;&quot; style=&quot;border-radius:10px;&quot; class=&quot;form-control&quot; placeholder=&quot;Your Email&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;div class=&quot;text-left&quot;&gt;&lt;/div&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;input type=&quot;submit&quot; value=&quot;Get Your Online Shop Now!&quot; class=&quot;btn btn-warning btn--decorated&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/form&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;p class=&quot;text-left&quot;&gt;No Credit Card Required&lt;/p&gt;<br />
&nbsp; &nbsp; &nbsp;&lt;/div&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;img src=&quot;img/home_slider/1.jpg&quot; alt=&quot;&quot;&gt;<br />
&nbsp; &nbsp; &lt;/li&gt;</p>

我应该如何保存html原样并在需要时将其作为html代码回显

这是我的 PHP 代码

    $content=$_POST['editor1']; //html
    $seo=addslashes($_POST['keywords']);
    $category=addslashes($_POST['category']);
    $query="INSERT INTO `pages`(`name`,`link`,`seo`,`content`, `category`)
     VALUES 
     ('$title','$permalink','$seo','$content','$category')";
    $result=mysqli_query($link, $query);
php html mysql
3个回答
9
投票

社区警告:以下答案具有误导性。 HTML 在存储在 MySQL 数据库中时不需要任何特殊处理,这样的编码/解码将是毫无意义的甚至是有害的。 HTML 代码必须像任何其他数据一样使用准备好的语句进行处理。虽然任何问题都必须具体调查,例如开篇文章中的一些其他代码,与 MySQL 完全无关,添加了这些&nbsp; s.


您可以将
htmlspecialchars

htmlspecialchars_decodehtmlEntitieshtml_entity_decode 结合使用

htmlspecialchars — 将特殊字符转换为 HTML 实体


请参阅此处的文档

http://php.net/htmlspecialchars

htmlspecialchars_decode — 将特殊 HTML 实体转换回字符

请参阅此处的文档http://php.net/manual/en/function.htmlspecialchars-decode.php
$htmlcode = htmlentities(htmlspecialchars(thehmldata)); echo $htmlcode; echo html_entity_decode(htmlspecialchars_decode($htmlcode));



0
投票
htmlspecialchars()

htmlentities() 在数据库中保存 html 标记时会出错,因此请使用 base64_encode() 或解码 base64_decode()。请参阅附加链接以获得相同的信息

https://stackoverflow.com/a/59916834/12489279


-1
投票

$content=htmlentities($_POST['editor1']);

插入之前。
并使用“echo”在页面上直接打印它。 

© www.soinside.com 2019 - 2024. All rights reserved.