Кодировка HTML | Демо-сайт CMS uCoz | Почта

Скрипт скрытия прямой ссылки на файл

Общение на любую тему и многое другое!

Скрипт скрытия прямой ссылки на файл

Сообщение web-ass » 17 июн 2009, 12:42

Здравствуйте.
Посоветуйте пожалуйста какой-нибудь PHP скрипт, который бы скрывал настоящий путь к файлу, и если кто-то указывал где-нибудь эту ссылку, при переходе по ней попадал на указанную в скрипте страницу, ну или на главную страницу сайта где расположен файл. И ещё очень важно чтобы в скрипте можно было указать сайты на которых можно было бы указывать эту ссылку.
Аватара пользователя
web-ass
Подполковник
Подполковник
 
Автор темы
Сообщения: 159
Возраст: 32
Зарегистрирован: 04 июн 2008, 12:38
Карма: + 0 -
Откуда: Курган

Re: Скрипт скрытия прямой ссылки на файл

Сообщение Smoke » 17 июн 2009, 13:01

===> Google and Allcity
Аватара пользователя
Smoke
Супермодератор
Супермодератор
 
Сообщения: 1038
Возраст: 32
Зарегистрирован: 01 фев 2009, 16:20
Карма: + 15 -
Откуда: Нижний Новгород

Re: Скрипт скрытия прямой ссылки на файл

Сообщение web-ass » 17 июн 2009, 13:03

smoke,
Если ты имел введу гуглевский поиск, то я искал не нашёл! Помогите!
Аватара пользователя
web-ass
Подполковник
Подполковник
 
Автор темы
Сообщения: 159
Возраст: 32
Зарегистрирован: 04 июн 2008, 12:38
Карма: + 0 -
Откуда: Курган

Re: Скрипт скрытия прямой ссылки на файл

Сообщение web-ass » 17 июн 2009, 13:16

Вот нашёл скрит но не могу разобраться, помогите кто-нибудь!

Код: Выделить всё
<?
// Настройки

$antiurl = "d0pz.com";               // Разрешённые сайты (referer).
$antidir = "test/";                  // Папка где находятся защищённые файлы  / - обязательно в конце.
//$logfile = "log.htm";              // Eсли хотите вести лог удалите // перед строкой. Файл логов (должен быть html или htm и обязательно CHMOD 777.


// Логи

if (isset($logfile)) {
if (!file_exists($logfile)) die("Файл <font color='red'><b>$logfile</b></font> не найден!");
if (!is_writable($logfile)) die("Для файла <font color='red'><b>$logfile</b></font> нужно зделать CHMOD 777!");
$cnr_date = date("l d F H:i:s");
$cnr_counter = $logfile;
$cnr_fp = fopen($cnr_counter, "a");
$cnr_hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if ($_SERVER['HTTP_REFERER'] == "")
{ $cnr_ref = "BLOCKED"; } else { $cnr_ref = "<a href=\"" . $_SERVER['HTTP_REFERER'] . "\">" . $_SERVER['HTTP_REFERER'] . "</a>";}
$cnr_data = "<font color=\"green\">" . $_SERVER['REMOTE_ADDR'] . "</font> HOST <font color=\"red\">" . $cnr_hostname . "</font> visited on " . $cnr_date . " linked by " . $cnr_ref . " <br>";
fputs($cnr_fp, $cnr_data);
fclose($cnr_fp); }

// Проверка реферера

$mtu = "PGg2PjxhIHN0eWxlPSd0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6Izk5MDAwMCcgaHJlZj0naHR0cDovL3d3dy5kMHB6LmNvbSc+QW50aWxlZWNoIHYwLjE8L2E+PC9oNj4="; $c = base64_decode($mtu);
if (!strstr($_SERVER["HTTP_REFERER"], $antiurl) or !isset($_SERVER["HTTP_REFERER"]))
{echo '<html><p></p>' . $c . '<p></p></body></html>'; exit;}

if (is_numeric($_GET["down"]))
{
/************НАЧАЛО ФАЙЛОВ***************************************************************************/

    // Здесь идут файлы для скачивания

    if ($_GET["down"] == 1)
        $filename = "test.rar";
    elseif ($_GET["down"] == 2)
        $filename = "test2.rar";
    elseif ($_GET["down"] == 3)
        $filename = "test3.rar";



/************КОНЕЦ ФАЙЛОВ***************************************************************************/

    //Находим окончание файла

    $split= explode(".", $filename);
    $textcount= substr_count($filename, ".")+1; //
    $ttype =$split[$nextcount];

    // Создается ссылка на файл

    $path = $antidir . $filename ;


    // Проверка файла есть он или нет

    if (!file_exists($path)) {

        echo "Файл '$filename' не существует.";
        echo $c;
        exit;                }

    $ftime = date("D, d M Y H:i:s T", filemtime($path));

}
 
    // Проверка

    if (strstr($_SERVER["HTTP_REFERER"], $antiurl)) {
            if (isset($_GET['down']) && isset($filename)) {

    $fsize = filesize($path);
    $ftime = date("D, d M Y H:i:s T", filemtime($path));
    $fd = @fopen($path, "rb");
    if (!$fd){
      header ("HTTP/1.0 403 Forbidden");
      exit;
    }


    if ($HTTP_SERVER_VARS["HTTP_RANGE"]) {
      $range = $HTTP_SERVER_VARS["HTTP_RANGE"];
      $range = str_replace("bytes=", "", $range);
      $range = str_replace("-", "", $range);
      if ($range) {fseek($fd, $range);}
    }
    $content = fread($fd, filesize($path));
    fclose($fd);
    if ($range) {
      header("HTTP/1.1 206 Partial Content");
    }
    else {
      header("HTTP/1.1 200 OK");
    }
    header("Content-Disposition: attachment; filename=" . basename($path));
    header("Last-Modified: $ftime");
    header("Accept-Ranges: bytes");
    header("Content-Length: ".($fsize-$range));
    header("Content-Range: bytes $range-".($fsize -1)."/".$fsize);
    header("Content-type: application/octet-stream");
    print $content;
    exit;

    } else { echo "Недействительный файл."; echo $c; } }


 exit;

?>
Аватара пользователя
web-ass
Подполковник
Подполковник
 
Автор темы
Сообщения: 159
Возраст: 32
Зарегистрирован: 04 июн 2008, 12:38
Карма: + 0 -
Откуда: Курган

Re: Скрипт скрытия прямой ссылки на файл

Сообщение Smoke » 17 июн 2009, 14:28

Очень даже все понятно, все с пояснением...
web-ass писал(а):но не могу разобраться

А нельзя ли сразу писать, что не понятно? Или постоянно нужно переспрашивать?
Аватара пользователя
Smoke
Супермодератор
Супермодератор
 
Сообщения: 1038
Возраст: 32
Зарегистрирован: 01 фев 2009, 16:20
Карма: + 15 -
Откуда: Нижний Новгород

Re: Скрипт скрытия прямой ссылки на файл

Сообщение web-ass » 17 июн 2009, 14:30

Нужно изменить только это:
Код: Выделить всё
$antiurl = "d0pz.com";
$antidir = "test/";


и все, или ещё что-то нужно под себя настраивать?
Аватара пользователя
web-ass
Подполковник
Подполковник
 
Автор темы
Сообщения: 159
Возраст: 32
Зарегистрирован: 04 июн 2008, 12:38
Карма: + 0 -
Откуда: Курган

Re: Скрипт скрытия прямой ссылки на файл

Сообщение Smoke » 17 июн 2009, 14:40

Код: Выделить всё
$antiurl = "d0pz.com";               // Разрешённые сайты (referer).

Это сайты которые
web-ass писал(а):И ещё очень важно чтобы в скрипте можно было указать сайты на которых можно было бы указывать эту ссылку.

------------
Код: Выделить всё
$antidir = "test/";                  // Папка где находятся защищённые файлы  / - обязательно в конце.

Это папка на фтп на которой лежат файлы
Аватара пользователя
Smoke
Супермодератор
Супермодератор
 
Сообщения: 1038
Возраст: 32
Зарегистрирован: 01 фев 2009, 16:20
Карма: + 15 -
Откуда: Нижний Новгород

Re: Скрипт скрытия прямой ссылки на файл

Сообщение web-ass » 17 июн 2009, 14:41

web-ass писал(а):и все, или ещё что-то нужно под себя настраивать?
Аватара пользователя
web-ass
Подполковник
Подполковник
 
Автор темы
Сообщения: 159
Возраст: 32
Зарегистрирован: 04 июн 2008, 12:38
Карма: + 0 -
Откуда: Курган

Re: Скрипт скрытия прямой ссылки на файл

Сообщение B3rKYT » 17 июн 2009, 15:42

На сколько я понял, там нужно все файлы указать. Каждому файлу присваивать параметр, параметр передавать в $_GET и уже по параметру скрипт будет выбирать файл и обрабатывать ссылку...
Оказываю небесплатную (недорого) помощь по сайтам. Обращаться в ЛС или в ICQ (см.профиль).

Помощь по форуму:
Раздел для Ваших вопросов | Раздел интересных решений для Вас | Поиск!
Аватара пользователя
B3rKYT
Модератор
Модератор
 
Сообщения: 418
Возраст: 54
Зарегистрирован: 20 апр 2008, 18:03
Карма: + 0 -

Re: Скрипт скрытия прямой ссылки на файл

Сообщение web-ass » 17 июн 2009, 15:46

Нет мне не нужно чтобы каждый файл указывать, мне нужно чтобы все файлы которые были в моей папке обрабатывались через скрипт!
Может есть такое, подскажите, а то много людей плохих которые не будут мой трафик экономить и указывать мои ссылки где им нужно!
Аватара пользователя
web-ass
Подполковник
Подполковник
 
Автор темы
Сообщения: 159
Возраст: 32
Зарегистрирован: 04 июн 2008, 12:38
Карма: + 0 -
Откуда: Курган


Вернуться в Флейм

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 74

cron