现在我在我的网站上制作简单的系统,这是它的代码
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这样做系统
答案 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
}