PDA

Просмотр полной версии : Скрипт антилича на Php


SSB1981
07.01.2008, 23:12
Здравствуйте!
Помогите пожалуйста написать скрипт, который бы позволял скачивать файлы, но скрывал бы реальный адрес файла!
Главное без MySQL!!!

NOmeR1
07.01.2008, 23:18
<?
header('Content-Type: application/x-rar-compressed;');
$file = 'http://site.ru/archive.rar';
readfile($file);
?>
Ты это имеешь ввиду?

Piflit
07.01.2008, 23:18
который бы позволял скачивать файлы, но скрывал бы реальный адрес файла!
перефразируй

SSB1981
07.01.2008, 23:19
Ну да только как быть с заголовками, если файлы не только rar ?

NOmeR1
07.01.2008, 23:23
Content-Type: application/x-octetstream

n3m0
07.01.2008, 23:23
http://www.somehost.com/files/fileid=12

нажимая на ссылку выше, начинается загрузка файла, который находится ,например здесь: http://www.somehost.com/uploads/file.rar
Т.е ты скрываеш путь к файлу

Этот случай?

SSB1981
07.01.2008, 23:24
Пишу Download центр

SSB1981
07.01.2008, 23:25
ДА!

n3m0
07.01.2008, 23:33
No Direct Links!
Класс на ПХП, не использующий базы данных.
Ссылка для загрузки :
http://phpclasses.segmenta.ru/browse/package/1134.html

В архиве несколько примеров.
Для скачивания зарегистрируйся на том сайте

NOmeR1
07.01.2008, 23:36
Можно просто сделать типо этого:
<?
header('Content-Type: application/x-octetstream');
$a = array( 1 => 'http://site.ru/archive.rar', 2 => 'http://site.ru/archive2.rar' );
readfile($a[$_GET['file']]);
?>
Тогда ссылка будет вида script.php?file=2. Скачка идёт от сервера, где находится этот скрипт, а не где расположен файл.

SSB1981
07.01.2008, 23:44
Не работает!

SSB1981
07.01.2008, 23:59
последний пример не работает! появляется окно закачки самого скрипта!!!!

NOmeR1
08.01.2008, 00:03
последний пример не работает! появляется окно закачки самого скрипта!!!!
А ты как хотел? Незаметно?

SSB1981
08.01.2008, 00:05
Нет качает не файл а исходник Php!!!

NOmeR1
08.01.2008, 00:07
Нет качает не файл а исходник Php!!!
<?
$a = array( 1 => 'http://antichat.ru/index.php', 2 => 'http://forum.antichat.ru/index.php' );
$file = $a[$_GET['file']];
header('Content-Disposition: attachment; filename="'.end(explode('/',$file)).'";');
readfile($file);
?>
тогда так вроде))))

SSB1981
08.01.2008, 00:13
Большое спасибо!!! Теперь всё работает!!!!!!!!!!!

SSB1981
08.01.2008, 00:25
а можно ли чтобы на странице ещё и текст отображался?

NOmeR1
08.01.2008, 00:37
<?
if($_GET['download'] == 'true')
{
$a = array( 1 => 'http://antichat.ru/index.php', 2 => 'http://forum.antichat.ru/index.php' );
$file = $a[$_GET['file']];
header('Content-Disposition: attachment; filename="'.end(explode('/',$file)).'";');
readfile($file);
}
else
{
header("Refresh: 0; URL=".$_SERVER['REQUEST_URI']."&download=true");
echo('Сейчас начнётся скачка');
}
?>
Вот так проще всего. Доступ к файлу такой же. Но не будет срабатывать, когда не будет никакого запроса к файлу (т.е. если не будет ?file=...)

SSB1981
08.01.2008, 00:41
как составить запрос на эту тему в поисковике?

SSB1981
08.01.2008, 00:50
А какие ещё варианты есть?
Хотябы направление подскажите куда рыть!

SSB1981
08.01.2008, 17:15
Кто-нибудь подскажите все возможные значения функции
header("Content...")
Я имею ввиду что можно вставить вместо "..."

NOmeR1
08.01.2008, 17:21
Вообще вариантов масса. Посмотри здесь - http://en.wikipedia.org/wiki/MIME.

iddqd
08.01.2008, 17:40
Попробуй вот это
http://qiq.ru/06/01/2008/programs/46961/antileech_public_v41.html

SSB1981
08.01.2008, 22:09
Вот вроде нашёл. Тока не работает :confused: : выдаёт что файл не найден. Проверте кто может. Плз :

<?
// Настройки
var_dump($_GET);
$antiurl=""; # адересс сайта: ssb1981.ru
$antidir=""; # Папка с файлами

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

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

if ($_GET["down"]==1)
{
$filename="test2.php";
}
elseif ($_GET["down"]==2)
{
$filename="cursor.png";
}
elseif ($_GET["down"]==3)
{
$filename="cursor.png";
}




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

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

$path=$antidir.$filename;

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

if (file_exists($path)==0)
{
echo "Файл ".$filename." не существует.";
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 "Недействительный файл.";
}
}
?>

mister
13.01.2008, 01:32
$antidir - папку обязательно с / в конце.

SSB1981
13.01.2008, 12:43
Он, что у тебя работает?
У меня всё время пишет: файл бла-бла-бла не найден!