0

我在这里做了一些搜索,并希望让用户发布的链接确实显示在我的网站上,以增加一层安全性。我在这里找到了一些代码并对其进行了修改,但它似乎没有拾取我数组中设置的单词。

<?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[comment]; 获取评论。然后更改它,以便如果他们发布 html 标签,它不会与页面的布局混淆。然后我们这样做,这样 $comment 就不会造成任何 mysql 损坏。

接下来是我遇到问题的地方。$bannedwords 基本上应该设置数组中每个单词的不区分大小写的混合,在这种情况下是 .exe .eXe .Exe 等等。

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

4

0 回答 0