Файл хостинг

sorRy

Registered
Как се прави това. Значи имам да кажем файл хостинг, и искам за да се изтегли нещо да се въведе код и тогава да може да свали. Да обаче, той после знае къде са файловете и така ще може да заобиколи това с кода. Дайте идея как ще стане че да не може да го свали без да е валидна дадена сесия например.
Не искам кодове, а идеята как става това нещо.

ПП: сори за заглавието
 
Код:
<?php
session_start();
if ( !(isset($_SESSION['code'])) || ($_SESSION['code']!=$_POST['code']) ) die('error');

    $file="directory/filename.txt";
    header("Content-type: application/force-download");
    header("Content-Transfer-Encoding: Binary");
    header("Content-length: ".filesize($file));
    header("Content-disposition: attachment; filename=\"".basename($file)."\"");
    readfile("$file");

?>

От тук може да направиш да подходиш по два начина. Първият да задаваш уникални имена на файловете при качване (например $file="directory/".md5(microtime()) ). Тогава ще трябва да запазиш оригиналното име на файла в базата данни и да сложиш оригиналното име тук - header("Content-disposition: attachment; filename=\"".$original_filename."\"");

Друг начин е в директорията където са файловете да създадеш .htaccess със следното съдържание:
Код:
order deny, allow
deny from all

Може и комбинация от двете.
 
Човека иска като се сваля файл да има капча, по моя начин ще стане, само трябва да си напише формата и файла за капчата.
 
Не, не искам капча, искам всеки файл да си има своя парола и само с нея да се сваля до тук ок, обаче аз намирам паролата (дава ми човека качил файла за да го сваля) за файла драган.exe и го свалям и виждам пътя до файла, и после става съвсем елементарно да се направи бот който да намери и другите или пък да даде пътя до тях. Та затова искам някакъф начин където само ако е написана паролата в сесията ще има ип и име и тога да може само да се свали. Дано съм бил ясен
едит: крис преди да изтриеш прочетох какво си написал и да мислих го това но ми се струва бавно.
 
С това което съм ти дал може да го направиш. Трябва само да го промениш малко, но принципа си остава същият. Мога и на готово да ти го дам, но все пак идеята е и да научиш нещо не само да преписваш.
 
ИСО Не искам кодове, а идеята как става това нещо. (в първия пост).
И нещо някак си не ми се връзва с твоя начин, или аз нещо не те разбирам?
 
Обяснявам ти идеята.
1. С .htaccessа който съм ти описал по-горе забраняваш достъпа до директорията в която се намират файловете, както и до самите тях. (т.е. ако файла се намира в директория /directory и името му е test.txt, ако напишем в браузъра http://site.com/directory/test.txt ще откаже достъп и няма да свали файла). Така си защитаваш файловете от директен достъп.
2 .създаваш php файл, който ще ти свали търсеният файл след въврждане на паролата. Файла ще изглежда по следният начин.
Код:
<?php 
if ($_POST['password']!='password')
die('error'); 

    $file="directory/test.txt"; 
    header("Content-type: application/force-download"); 
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-length: ".filesize($file)); 
    header("Content-disposition: attachment; filename=\"".basename($file)."\""); 
    readfile("$file"); 

?>
3. Създаваш форма, която да изпраща $_POST['password'] към php файла.

От тук нататък може да си добавиш mysql, така че паролата да е валидна само един пъ. Да вкараш потребителско име за което паролата да е валидна само един път и т.н.т.
 
значи аз не съм те разбрал защото не знаех че можеш с пхп да сваляш от такава директория мерси +1
 

Back
Горе