Php 在将HTML标记放入数据库之前将其剥离

Php 在将HTML标记放入数据库之前将其剥离,php,html,Php,Html,我有一个发布系统,但我不希望人们在发布时能够使用HTML标记,下面是数据库查询的代码 if (!empty($post1) && !empty($title)) { strip_tags($post1); // Only set the picture column if there is a new picture $query = "INSERT INTO kaoscraft_posts (`username`, `rank`, `gender`, `pictu

我有一个发布系统,但我不希望人们在发布时能够使用HTML标记,下面是数据库查询的代码

 if (!empty($post1) && !empty($title)) {
  strip_tags($post1);
    // Only set the picture column if there is a new picture
$query = "INSERT INTO kaoscraft_posts (`username`, `rank`, `gender`, `picture`, `post_date`, `title`, `post`, `category`) VALUES ('$username', '$rank', '$gender', '$picture', NOW(), '$title', '$post1', '$category')";
    mysqli_query($dbc, $query);
这是表格

  <form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MM_MAXFILESIZE; ?>" />
    <fieldset>
      <legend>Post Here:</legend>
        <label type="hidden" for="title">Title:</label><br />
        <input type="text" name="title"><br /><br />
      <select id="category" name="category">
        <option value="G" <?php if (!empty($category) && $category == 'G') echo 'selected = "selected"'; ?>>General</option>
        <option value="Srv" <?php if (!empty($category) && $category == 'G') echo 'selected = "selected"'; ?>>Server</option>
        <option value="C" <?php if (!empty($category) && $category == 'G') echo 'selected = "selected"'; ?>>Clan</option>
        <option value="SA" <?php if (!empty($category) && $category == 'G') echo 'selected = "selected"'; ?>>Staff App</option>
        <option value="V" <?php if (!empty($category) && $category == 'G') echo 'selected = "selected"'; ?>>Videos</option>
      </select><br /><br />
      <label type="hidden" for="post1">Post Content:</label><br />
      <textarea rows="4"  name="post1" id="post1" cols="50"></textarea><br />
    </fieldset>
    <input type="submit" value="Save Post" name="submit" />     
  </form>

PHP有一个内置函数用于此目的:strip_标记。他们网站上的例子如下:

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>


因此,您只需添加strip_标记($post1);在将其添加到数据库之前(或在添加过程中)。

在调用
strip\u标签后,需要重新分配
$post1

$post1 = strip_tags($post1);

另外,除非您在其他地方有可靠的SQL转义代码,否则我强烈建议您研究如何从SQL注入中保护代码。如果您直接将用户输入放入SQL查询,他们可能会输入恶意SQL语句。

您的PHP易受SQL-injection攻击。可能存在重复的