我想禁止某些前缀

时间:2012-02-20 02:13:40

标签: php

如果我输入了访问者应输入自己网址的文字

<form name="frm" method="post" action="addlink.php">
url : <input type="text" name="url" id="url">
<button type="submit" class="options green">add</button>
</form>

和addlink.php这样的代码

$url = $_POST['url']; 
$sql = "INSERT INTO $table_urls (url) VALUES ('$url')";
mysql_query($sql, $conn) or die(mysql_error());

我想禁止例如www.something.com/anything所以如果访问者输入任何网址,请访问www.something.com/else - www.something.com/elsething ..etc

它检测到something.com并给出错误,如

<?PHP if(XXXXXXXX){
echo "somthing.com is not allowed";
}else{
$sql = "INSERT INTO $table_urls (url) VALUES ('$url')";
mysql_query($sql, $conn) or die(mysql_error());
}

如果是的话!我想说如果$url有任何something.com然后给予不允许!

3 个答案:

答案 0 :(得分:1)

我想要同样的事情。我是用VB做的,但请检查一下这是否有帮助 Extract words from a string and verify whether or not they exist in a database in VB

只需在空格处分割单词并验证数据库中是否存在该值。如果是,则替换为****或您想要的任何内容,并在过滤单词时使用StringBuilder,只有当单词包含禁用值时才附加每个单词,它将附加****并返回原始字符串

答案 1 :(得分:1)

您可以使用PHP的函数preg_match()来查找完全匹配:

if (preg_match('/something.com/i', $url) > 0) {
    // Your error message here
}

有关使用该功能的更多信息,您可以在此处查看:http://php.net/manual/en/function.preg-match.php

答案 2 :(得分:0)

$parsed_url=parse_url($url);    
if (strtolower($parsed_url['host']) == 'www.something.com' || strtolower($parsed_url['host']) == 'something.com')
{
   $error=true;
}