Показать сообщение отдельно

  #3  
Старый 26.04.2010, 20:27
ZnikiR
Участник форума
Регистрация: 14.01.2009
Сообщений: 194
С нами: 9116574

Репутация: 44
По умолчанию

1)как много это будет хавать ресурсов?
2)Пример можно в студию (а то у меня опыта работы с htaccess вообще нет)
вот я нашел тут скрипт,но он печает содержимое страницы.
а как сделать чтобы он давал на сохранение?
PHP код:
<?php



// Настройки

$antiurl = "sup.local";               // Разрешённые сайты (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); }

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



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

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

    
if ($_GET["down"] == 1)
        
$filename = "test.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 (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;

?>

Последний раз редактировалось ZnikiR; 26.04.2010 в 20:33..
 
Ответить с цитированием