我在HTTP_REFERER中遇到了很大的问题

时间:2010-03-23 09:44:39

标签: php http-referer

现在我在我的网站上制作简单的系统,这是它的代码

if(stc($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])){
//download directly
}else{
//open page first
}
function stc($haystack, $needle, $offset=0) {
    return strpos(strtoupper($haystack), strtoupper($needle), $offset);
}

如果有人从我的网站输入链接,则直接下载确定 如果从任何其他网站打开一个页面 现在它的工作很棒 但是如果有人安装了任何下载程序,如inernet下载管理器 它使链接直接不首先进入页面我认为因为它使HTTP_REFERER为空 现在我怎么能像rapidshare.com这样做系统

1 个答案:

答案 0 :(得分:1)

strpos可以返回0 .... 0,因为在一个针可以是pos(在大海捞针的第一个位置,字符串中的第一个位置是0)。

如果未找到针,则strpos()返回false。

0& if语句中的false都是相同的......

$ test = 0; if(!$ test)echo“0就像false”;

$ test2 = false; if(!$ test2)echo“这个也是假的......”;

你必须确保它是假的或0,你可以这样做:===

if (strpos() === false)  echo "It's not found for sure!";

所以你的代码变成了:

if(stc($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) !== false){
//download directly
}else{
//open page first
}