阻止某些扩展通过表单发布到MySQL? preg_match_all?

时间:2012-06-29 23:29:23

标签: php

我在这里做了一些搜索,并希望让用户发布链接,这些链接会在我的网站上显示,以获得额外的安全保障。我在这里发现了一些代码并对其进行了修改,但它似乎没有拿起我的数组中设置的单词。

<?php
session_start();
include 'mysql-connection.php';
    $comment = $_POST[comment];
    $comment = htmlentities($comment);
    $comment = mysql_real_escape_string($comment);
    $bannedwords = array(".exe",".zip");
    $matches = array();
    $matchFound = preg_match_all(
                    "/\b(" . implode($bannedwords,"|") . ")\b/i", 
                    $comment, 
                    $matches
                  );

    if ($matchFound) {
        header("Location: http://mydomain/index.php");
    }
else
{
    mysql_query("INSERT INTO posts (postid, post_content, username)
    VALUES ('', '$comment', '$username')");
    header("Location: http://mydomain.org/index.php");
}
mysql_close($con);
?>

我用$ _POST [评论]抓住评论;然后改变它,如果他们发布html标签它不会弄乱页面的布局。然后我们这样做,$ comment不会导致任何mysql损坏。

接下来是我遇到问题的地方。在这种情况下,$ bannedwords基本上应该设置数组中每个单词的非案例敏感混合.exe .eXe .Exe等等。

我被卡住了,因为它仍然可以发布,而不是刷新页面。

0 个答案:

没有答案