php - 添加到数据库时<li>变成<li>

标签 php html mysql

我有一个脚本,可以将一个新项目写入我的数据库。 在此脚本中,我有一个名为“omschrijving”的文本区域元素。 在此文本区域中,用户可以指定我使用 css 设置样式的 < li> 元素。

问题是,当我输入:

  • hello
  • 时,在我的数据库中变成:
  • hello
  • 我使用mediumtext类型列来存储文本区域的值。

    我的表单代码:

    <form action="nieuwproject.php?action=toevoegen" method="post">
    
                                <fieldset class=""> <!-- Set class to "column-left" or "column-right" on fieldsets to divide the form into columns -->
    
    
    
                                    <p>
                                        <label>Naam</label>
                                        <input class="text-input medium-input datepicker" type="text" id="medium-input" name="naam" />
                                    </p>
    
                                    <p>
                                        <label>Categorie</label>
                                        <select name="categorie" class="text-input medium-input">
                                           <?php $oObj->getCategorieDropdown(); ?> 
                                        </select>
                                    </p>
    
                                    <p>
                                        <label>Opdrachtgever</label>
                                        <input class="text-input medium-input datepicker" type="text" id="medium-input" name="opdrachtgever" />
                                    </p>
    
                                    <p>
                                        <label>Omschrijving</label>
                                        <textarea class="text-input textarea wysiwyg" id="textarea" name="omschrijving" cols="79" rows="15"></textarea>
                                    </p>
    
                                    <p>
                                        <label>Werkzaamheden</label>
                                        <textarea class="text-input textarea wysiwyg" id="textarea" name="werkzaamheden" cols="79" rows="15"></textarea>
                                    </p>
    
                                    <p>
                                        <input class="button" type="submit" value="Submit" />
                                    </p>
    
                                </fieldset>
    
                                <div class="clear"></div><!-- End .clear -->
    
                            </form>
    

    我的插入脚本的代码:

    function addProject() {
        $this->sQuery = "INSERT INTO projecten (naam,opdrachtgever,omschrijving,werkzaamheden,categorie) 
            VALUES ('" . $_POST['naam'] . "','" . $_POST['opdrachtgever'] . "','" . $_POST['omschrijving'] . "','" . $_POST['werkzaamheden'] . "','" . $_POST['categorie'] . "')";
        $this->rResult = mysql_query($this->sQuery);
    }
    

    有人知道如何解决这个问题吗? 我知道这个脚本对黑客来说是甜头,所以没有必要指出这一点。

    谨致问候,

    迈克尔

    最佳答案

    当然。
    只需在代码中找到对用于数据库的数据执行 htmlspecialchars/htmlentities 的位置并将其删除即可。

    我可以向您保证,数据库绝不会自愿添加任何符号。
    更改/添加到数据中的每个符号都是某些 PHP 代码的结果。

    请注意,您的查询格式不正确。
    您必须对其进行格式化,要么单独格式化每个文字,要么使用准备好的语句。
    它与您的 li> 问题无关,但与您的应用程序错误和漏洞相关

    关于php - 添加到数据库时<li>变成<li>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026510/

    相关文章:

    php - 如何使用多个表检查是否未使用特定日期时间?

    javascript - 在 PHP 中调用自定义 JS 警报

    javascript - 手上下视差效果

    mysql - 上周同比数据

    php - WooCommerce 在另一个页面上丢失了密码表单

    php - 在页面之间重定向时在 URL 末尾的奇怪#

    html - 用响应图像填充 div 背景

    java - 尝试使用java填写网站表单,但表单标签嵌入在iframe标签中

    mysql - 我是否需要在 MYSQL 上手动重建具有大量删除的 innodb 表?

    mysql - Perl 将空时间戳打印到 csv 文件