0

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

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 这样的系统

4

1 回答 1

1

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

如果没有找到针,strpos() 返回 false。

if 语句中的 0 和 false 都相同...

$测试 = 0; if (!$test) echo "0 is like false";

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

你必须确保它是 false 或 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
}
于 2010-03-23T10:54:42.107 回答