Просмотр полной версии : Скрипт антилича на Php
Здравствуйте!
Помогите пожалуйста написать скрипт, который бы позволял скачивать файлы, но скрывал бы реальный адрес файла!
Главное без MySQL!!!
<?
header('Content-Type: application/x-rar-compressed;');
$file = 'http://site.ru/archive.rar';
readfile($file);
?>
Ты это имеешь ввиду?
который бы позволял скачивать файлы, но скрывал бы реальный адрес файла!
перефразируй
Ну да только как быть с заголовками, если файлы не только rar ?
Content-Type: application/x-octetstream
http://www.somehost.com/files/fileid=12
нажимая на ссылку выше, начинается загрузка файла, который находится ,например здесь: http://www.somehost.com/uploads/file.rar
Т.е ты скрываеш путь к файлу
Этот случай?
No Direct Links!
Класс на ПХП, не использующий базы данных.
Ссылка для загрузки :
http://phpclasses.segmenta.ru/browse/package/1134.html
В архиве несколько примеров.
Для скачивания зарегистрируйся на том сайте
Можно просто сделать типо этого:
<?
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. Скачка идёт от сервера, где находится этот скрипт, а не где расположен файл.
последний пример не работает! появляется окно закачки самого скрипта!!!!
последний пример не работает! появляется окно закачки самого скрипта!!!!
А ты как хотел? Незаметно?
Нет качает не файл а исходник Php!!!
Нет качает не файл а исходник 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);
?>
тогда так вроде))))
Большое спасибо!!! Теперь всё работает!!!!!!!!!!!
а можно ли чтобы на странице ещё и текст отображался?
<?
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=...)
как составить запрос на эту тему в поисковике?
А какие ещё варианты есть?
Хотябы направление подскажите куда рыть!
Кто-нибудь подскажите все возможные значения функции
header("Content...")
Я имею ввиду что можно вставить вместо "..."
Вообще вариантов масса. Посмотри здесь - http://en.wikipedia.org/wiki/MIME.
Попробуй вот это
http://qiq.ru/06/01/2008/programs/46961/antileech_public_v41.html
Вот вроде нашёл. Тока не работает :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 "Недействительный файл.";
}
}
?>
$antidir - папку обязательно с / в конце.
Он, что у тебя работает?
У меня всё время пишет: файл бла-бла-бла не найден!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot