代码之家  ›  专栏  ›  技术社区  ›  Dan Hanly

php mysql输入html标签

  •  1
  • Dan Hanly  · 技术社区  · 14 年前

    我有一个php-mysql数据库,我将把所有信息存储在其中。我在HTML页面上有一个文本字段,用户可以在该页面上添加数据,然后在提交MySQL查询时将这些信息插入数据库。相当标准的东西。

    但是,我现在可以将tinymce或fckeditor附加到文本字段(现在是文本区域)上。我的问题是:考虑到这些标签会影响MySQL查询,现在如何将这些信息导入数据库,而去掉任何标签都会影响所述信息在另一个页面上的显示?

    我知道strip_标签和类似的php特性,但我的问题不在于php,而在于mysql的数据库输入,任何“或”或;会破坏查询并删除这些标签,然后输入会删除用户所做的任何格式增强。

    我还假设,如果我使用mysql_real_escape_字符串,我需要在显示数据之前去掉斜线-这也会将所有斜线从结束标记中去掉:,
    等。

    2 回复  |  直到 14 年前
        1
  •  1
  •   reko_t    14 年前

    在将该值插入SQL语句之前,需要对其进行转义。如果使用mysql扩展,则使用 mysql_real_escape_string 这样做:

    $text = mysql_real_escape_string($_POST['text']);
    

    它会转义引号之类的字符,因此您可以安全地在数据库中插入值。

        2
  •  0
  •   Naveed    14 年前

    看看这个:

    http://php.net/manual/en/function.mysql-real-escape-string.php

    // Query
    $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
                mysql_real_escape_string($user),
                mysql_real_escape_string($password));