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);
}

誰かが私のサイトからリンクを入力した場合、そのダウンロードは直接OKであり、他のサイトからページを開いた場合、現在はうまく機能していますが、inernetダウンロードマネージャーなどのダウンローダーをインストールした場合、最初にページに移動せずにリンクを直接作成しますHTTP_REFERER を null にするので、rapidshare.com のようなシステムを実行するにはどうすればよいか考えてみてください。

4

1 に答える 1

1

strposは、針の場合と同様に0 .... 0を返すことができます(干し草の山の最初の位置では、文字列の最初の位置は0です)。

針が見つからなかった場合、strpos()はfalseを返します。

0とfalseはどちらもifステートメントで同じです...

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

$ test2 = false; if(!$ test2)echo"これもfalse..";

あなたはそれが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 に答える