【问题标题】:i have big problem in HTTP_REFERER我在 HTTP_REFERER 中有大问题
【发布时间】:2010-03-23 09:44:39
【问题描述】:

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

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

【问题讨论】:

    标签: php http-referer


    【解决方案1】:

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

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

    0 & false 在 if 语句中都是一样的...

    $test = 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
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多