ФорумПрограммированиеPHP для идиотов → Доступ к файлам. Apache + cookie

Доступ к файлам. Apache + cookie

  • artoodetoo

    Сообщения: 5146 Репутация: N Группа: в ухо

    Spritz 7 декабря 2008 г. 3:17, спустя 44 минуты 2 секунды

    RewriteMap доступен только на уровне httpd.conf, то есть на уровне сервера, то есть на шареде не канает :) а то бы я написал про него, чесслово
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 декабря 2008 г. 3:24, спустя 6 минут 58 секунд

    насчет простого вписывания rewriterule в хтаккес подумай :) мб проще вариант :) туда же можно вписать и rewritecond всякие на проверку ипов и тп :) плюс очевиден - не надо копировать файлы. минус - большой хтаккес(хз как апач отнесется к тысяче-двум rewriterule, но думаю что не создаст большой нагрузки :)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5146 Репутация: N Группа: в ухо

    Spritz 7 декабря 2008 г. 3:37, спустя 12 минут 29 секунд

    динамически генерируемый .htaccess ??? че только не придумают в воскресный вечер!
    уж лучше создавать контрольные файлы для моего примера.

    вот наконец php-код
    для массива файлов вида

    $files = array(
    '0fda' => 'sometext.txt',
    'fc93' => 'secret.rar',

    );

    генерация всех контрольных файлов выбранного пользователя, которому соответствует $access_code:

    foreach ($files as $file_code => $file_name)
    {
    if ( проверка условий доступа )
    fopen('access/'.$file_code.'-'.$access_code, 'w+');
    else
    @unlink('access/'.$file_code.'-'.$access_code);
    }

    до 1000 файлов это будет работать очень быстро. а скорость обработки запросов apach-ем не зависит от количества расшариваемых файлов (и пользователей)
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 декабря 2008 г. 3:45, спустя 8 минут 31 секунду


    динамически генерируемый .htaccess ??? че только не придумают в воскресный вечер!
    уж лучше создавать контрольные файлы для моего примера.

    вот наконец php-код
    для массива файлов вида

    $files = array(
    '0fda' => 'sometext.txt',
    'fc93' => 'secret.rar',

    );

    генерация всех контрольных файлов выбранного пользователя, которому соответствует $access_code:

    foreach ($files as $file_code => $file_name)
    {
    if ( проверка условий доступа )
    fopen('access/'.$file_code.'-'.$access_code, 'w+');
    else
    @unlink('access/'.$file_code.'-'.$access_code);
    }

    до 1000 файлов это будет работать очень быстро. а скорость обработки запросов apach-ем не зависит от количества расшариваемых файлов (и пользователей)
    насчете вечера воскресного хорошо подмечено :)
    вы не сказали размер проекта :)) чтобы оценить глупость/правильность методов)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5146 Репутация: N Группа: в ухо

    Spritz 7 декабря 2008 г. 4:26, спустя 40 минут 55 секунд

    я исхожу из того, что проект не очень большой. ни в коем случае не рапидшаре. что-то вроде форума до 2000 участников из которых условно-одновременно 200 может быть онлайн. на эту толпу до 1000 файлов. то есть условия приемлимые для шаред-хостинга :)

    реально права на подобных проектах-форумах раздаются на уровне групп, а не индивидуумов. поэтому теоретический максимум контрольных файлов равен не
    пользователей*файлов, а групп*файлов, т.е. до 3000.
    сами контрольные файлы места практически не занимают. сборщик мусора должен их регулярно подчищать.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 декабря 2008 г. 4:28, спустя 2 минуты 14 секунд

    ну лад, это наромальный метод в любм случае :)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5146 Репутация: N Группа: в ухо

    Spritz 7 декабря 2008 г. 4:36, спустя 8 минут 6 секунд

    спасибо! а что случилось с глазом?
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 декабря 2008 г. 4:38, спустя 1 минуту 48 секунд


    спасибо! а что случилось с глазом?
    типа пират!
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 13 декабря 2009 г. 6:58, спустя 371 день 2 часа 19 минут

    а как сделать, что б файл не открывался в браузере а предлагал сохранить себя?
    делаю

    RewriteRule (.+?)/(.+?)/(.+) /path/to/folder/$1 [L,T="application/octet-stream"]
    Header set Content-Type "application/octet-stream"
    Header set Content-Disposition "attachment; filename='aa.pdf'"

    не помогает
    Спустя 38 сек.
    зы, filename нужно будет брать из URL'а, $3
  • artoodetoo

    Сообщения: 5146 Репутация: N Группа: в ухо

    Spritz 13 декабря 2009 г. 20:02, спустя 13 часов 3 минуты 35 секунд

    Абырвалг, проверь какие заголовки реально приходят с сервера
    ιιlllιlllι унц-унц
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 13 декабря 2009 г. 21:37, спустя 1 час 35 минут 40 секунд

    с сервера приходят заголовки text/html. То есть эти реально не ставятся. Если в конревой .htaccess поместить установку заголовков - то они поставятся на весь серв и будет работать как нужно. Но тогда получится, что я не смогу просматривать страничги. Установить по маске(по расширению) не удалось. Что-то тут не так. Буду на поддомен выносить скачку файлов.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 декабря 2009 г. 21:53, спустя 15 минут 31 секунду

    а тем времене ожил 1dfile.ru!! :D
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 14 декабря 2009 г. 0:00, спустя 2 часа 7 минут 4 секунды

    phpdude, ураааа
  • artoodetoo

    Сообщения: 5146 Репутация: N Группа: в ухо

    Spritz 14 декабря 2009 г. 1:01, спустя 1 час 48 секунд

    Абырвалг,
    - а если поместить условие "если файл существует — закончить разбор"? ты же правишь заголовки только у "виртуальных" файлов.
    - на поддомены все-равно не помешает разбивать. это один из приемов оптимизации скорости загрузки страницы.
    ιιlllιlllι унц-унц
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 14 декабря 2009 г. 3:25, спустя 2 часа 24 минуты 40 секунд

    на поддомены разобью. Бок был в следующем: хедеры отправлять нужно не из той папки, в которой происходит распарсивание URL'а, а из той, в которой файл фактически находится (у меня /download - ссылка на скач, а сами файлы в /path/to/folder).

Пожалуйста, авторизуйтесь, чтобы написать комментарий!