Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > anti МП3 запрет вебформочка


Автор: anamivatar 1.2.2006, 15:32
Господа, здравствуйте!

Обращаюсь к вам за помощью. Сам я не местный (в PHP - чайник).... Кто чем может... smile

Сначала опишу ситуацию. Работаю я в одной большой компании, где жестко режут инет. В частности, прокся не пропускает ни одного урла, в котором фигурирует mp3

Для борьбы с этим злом пробовал устанавливать программы для HTTP-туннелирования, в частности HTTPort. Но недобрые админы предусмотрительно запретили метод CONNECT.

Файлы mp3 в чистом виде не качаются. Но замечено, что если вызвать файл с расширением php, который выдаст (НЕ редиректнет) mp3 файл как результат, то файл будет загружаться. Пример: http://www.silvaultramindsystem.com/products/audio/centering/SilvaUltraMindCenteringExercise.php

Чутье и Google подсказывает, что подобную веб-формочку, с помощью которой можно будет качать mp3 можно будет организовать с помощью readfile. Чтобы формочка работала, аля прокся smile

Всеобщими стараниями получился следующий шедевр:

Код
<?php

if (isset($_POST['url']) && $_POST['url']){
   header("Content-Disposition: attachment; filename=mine.doc");
   header("Content-Type: application/x-octetstream");
   readfile($_POST['url']);
}
else
{
?>
<html>
   <body>
       <form method="POST" target="">
           Введіть URL для закачки:<br>
           <input type='text' name='url' size='100'/><br>
           <input type='submit' value='Угу!'/>
       </form>
   </body>
</html>

<?
}

?>


Эту радость я выложил по адресу: http://merikus.ho.com.ua/cgi-bin/downld.php

Проблема - все файлы закачиваются с размером 0 байт. Хотя у друга на платном хостинге все работает нормально. Я начал изучать проблему поглубже - на других бесплатных хостингах выдаются ошибки:

Цитата
Warning:  readfile(http://bo.net.ua/forum/index.php): failed to open stream: Permission denied in /mnt/web_i/d13/s29/b026e572/cgi-bin/down.php on line 6


Line 6 - строка в которой идет команда readfile.

Цитата
Warning:  readfile() [<a href='function.readfile'>function.readfile</a>]: URL file-access is disabled in the server configuration in /mnt/storage/users/m/e/r/merikus/down.php on line 6
Warning:  readfile(http://bo.net.ua/forum/index.php) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: no suitable wrapper could be found in /mnt/storage/users/m/e/r/merikus/down.php on line 6


Собственно вопрос - как изменить скрипт, чтобы он корректно работал и на бесплатных хостингах?

Огромное спасибо!

Автор: Mal Hack 1.2.2006, 15:56
Сокеты. readfile не читает удаленные файлы

Автор: BIG BROTHER 1.2.2006, 16:33
Вообщето читает, но при allow_url_fopen=on в php.ini

Автор: anamivatar 1.2.2006, 18:23
Что самое интересное, allow_url_fopen в php.ini таки =on ! И все-равно не работает!

Для желающих потестить:
Веб интерфейс: https://ho.com.ua/cgi-bin/hosting.cgi
Логин: merikus
Пароль: vanodze

Автор: Mal Hack 1.2.2006, 19:59
anamivatar, сказали же. Используй сокеты, иначе весно будещь такие глюки ловить.

Автор: Ciber SLasH 1.2.2006, 22:12
Обычно на бесплатных хостингах (к примеру на бесплатных тарифах holm.ru) обрубаются все исходящие коннекты, т.е. не будут работать: сокеты; curl; функции, поддерживающие открытие удалённых файлов.

Решение: переходи на платный тариф.

Автор: anamivatar 6.2.2006, 17:36
Нашел я подходящий хостинг. Но проблема в следующем:

Необходимо скачать файл: http://doza.com.ua:8080/audio/Knigi/Tolkien_-_Vlastelin_kolec_-_Dve_bashni/gl01-01.mp3

Проблема в том, что из-за этого не качается:
http://doza.com.ua:8080

Вопрос: Как с этим быть? Подозреваю, что проблема не в хостинге, а в скрипте.

ЗЫ. Со стандартных урлов грузится на УРА!

Автор: R.M. 7.2.2006, 01:33
anamivatar
Дык не пиши 8080, присвой какойнить переменной твой урл и поставляй в ссылках или через define пропиши что ./ это твой урл и ставь везде перед ссылками ./

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)