|
Тема |
Re: PHP въпрос [re: croesus] |
|
Автор |
sashometallico (unknown) |
|
Публикувано | 03.03.12 02:08 |
|
|
Проблемът със предложеното решение е, че web сървърът няма да знае, че новият test.zip всъщност е PHP и няма да го parse-не (освен ако web сървърът не е настроен по този начин, което е малко вероятно за shared хостинг).
Вместо това, имам друга идея:
1. Забраняваш директен http достъп до zip файла:
1.1 Създаваш нова директория (например /data)
1.2 Преместваш zip файла в нея
1.3. Забраняваш достъп до нея като:
Създаваш нов .htaccess файл в нея, със съдържание "deny from all" (без кавичките)
1.4. Така в новата директория трябва да има два файла (test.zip и .htaccess)
2. Правиш пренасочване на стария URL на zip файла към нов php файл чрез .htaccess:
ако преди zip-ът се е казвал test.zip и е бил във root директорията на сайта, примерен redirect във .htaccess би изглеждал така:
Redirect 301 test.zip test.php
Тоест създаваш .htaccess файл със това съдържание във папката където беше test.zip преди.
3. Правиш нов файл test.php и във него си правиш проверките и логиките:
<?php
if ( /* условията при които те могат да свалят файла */ ) {
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="./data/test.zip"');
header('Content-Transfer-Encoding: binary');
readfile('./data/test.zip');
}
else {
//тук пишеш какво да стане ако нямат право да го свалят.
}
?>
Не съм го тествал, но би трябвало да работи.
Поздрави
:)))
|
| |
|
|
|