У меня большая проблема в 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 ответ
strpos может вернуть 0.... 0, как в позиции, где может быть игла (в первой позиции в стоге сена первая позиция в строке равна 0).
strpos () возвращает false, если игла не найдена.
0 и false одинаковы в операторах if...
$ test = 0; if (! $ test) echo "0 is false";
$ test2 = false; 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
}