Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с Deny from all для рисунков
 
 автор: coloboc66   (12.03.2010 в 15:39)   письмо автору
 
 

Что за фигня такая - пишу в .htaccess папки с рисунками вот это:
<FilesMatch "\.(gif|jpe?g|png)$"> 
Deny from all
</FilesMatch>

И Опера не показывает рисунок при выводе его рнр-скриптом. Но ведь скриптом же он должен выводиться?!

  Ответить  
 
 автор: cheops   (13.03.2010 в 04:17)   письмо автору
 
   для: coloboc66   (12.03.2010 в 15:39)
 

Указываете относительный путь, абсолютный или сетевой?

  Ответить  
 
 автор: Trianon   (13.03.2010 в 08:52)   письмо автору
 
   для: coloboc66   (12.03.2010 в 15:39)
 

cheops намекает на то, что стоило показать, как выглядит аргумент имени файла в вызове - в скрипте. Ну и сама функция тоже.

  Ответить  
 
 автор: Красная_шляпа   (13.03.2010 в 15:25)   письмо автору
 
   для: Trianon   (13.03.2010 в 08:52)
 

А зачем что-то смотреть, нет доступа, сервер не отдает картинки, нужно снести хтааксес

  Ответить  
 
 автор: Uzer44   (13.03.2010 в 18:03)   письмо автору
 
   для: Красная_шляпа   (13.03.2010 в 15:25)
 

пых читает из файловой системы
.htaccess в данном случае роли не играет если скрипт отдаёт через fopen к примеру

  Ответить  
 
 автор: Trianon   (14.03.2010 в 00:01)   письмо автору
 
   для: Красная_шляпа   (13.03.2010 в 15:25)
 

Затем, что на fpassthru(fopen('http://'.$_SERVER['HTTP_HOST'].'/images/image.jpg', 'rb'));' файл .htaccess воздействует,
а на fpassthru(fopen($_SERVER['DOCUMENT_ROOT'].'/images/image.jpg', 'rb'));' не воздействует никак,
не смотря на то, что каазалсь бы, файл один и тот же.

Если нет доступа, нужно разобраться, почему нет, а не сносить что-либо.

  Ответить  
 
 автор: coloboc66   (14.03.2010 в 00:42)   письмо автору
 
   для: Trianon   (14.03.2010 в 00:01)
 

Да код-то простой:
файл get_av.php
$av=$_GET['av'];
echo "<img src=".$av.".gif />";

Только этот файл выводится в выпадающее окно на ява-скрипт.
<script>
var av="AB";
params="width=100px, height=100px";
window.open("get_av.php?av="+av, "get_av", params);
</script>

В Лисе тоже не работает.

  Ответить  
 
 автор: Trianon   (14.03.2010 в 00:55)   письмо автору
 
   для: coloboc66   (14.03.2010 в 00:42)
 

Посредством <img src=... /> рисунок запрашивается не скриптом, а клиентом - браузером.
Поэтому и.

  Ответить  
 
 автор: coloboc66   (14.03.2010 в 00:57)   письмо автору
 
   для: Trianon   (14.03.2010 в 00:55)
 

Ммм... А как надо?

  Ответить  
 
 автор: Trianon   (14.03.2010 в 01:49)   письмо автору
 
   для: coloboc66   (14.03.2010 в 00:57)
 

Как-то так.
Файл get_av.php
<?php 
   $path 
"/imagedir";
   
$name $_GET['av'];

// в этом месте name нужно отфильтровать от всяких слэшей, точек и прочей нечисти.
   
$name preg_replace('([-_a-zA-Z0-9]+)''\\1'$name);

   
$name .= '.gif';
   
$fname $_SERVER['DOCUMENT_ROOT'] . $path '/' $name;
   
$f fopen($fname'rb');
   if(!
$f) { header("HTTP/1.0 404 Not found"); exit("File $path/$name not found on the server"); }
   
$s filesize($fname);
   
header("Content-Type: image/gif; name = "\"$name\"");
   
header("Content-Length: $s");
   
fpassthru($f);
   
fclose($f);   
?>


по большому счету, еще стоило бы удовлетворить проверки кеша и возможности запроса частичного контента. Но не расписывать же здесь все кю стандарта RFC-2616 ?

  Ответить  
 
 автор: coloboc66   (15.03.2010 в 16:46)   письмо автору
 
   для: Trianon   (14.03.2010 в 01:49)
 

О - отлично: рисунок не кэшируется и при Файл - сохранить НЕ СОХРАНЯЕТСЯ. Т.о. пользователь его не сможет сохранить у себя на компе, верно?
Вот только регулярные выражения у меня не работают, наверное потому что кодировка UTF-8.

  Ответить  
 
 автор: oliss   (15.03.2010 в 17:59)   письмо автору
 
   для: coloboc66   (15.03.2010 в 16:46)
 

добавьте u

  Ответить  
 
 автор: coloboc66   (16.03.2010 в 09:41)   письмо автору
 
   для: oliss   (15.03.2010 в 17:59)
 

Куда добавить???

  Ответить  
 
 автор: oliss   (15.03.2010 в 18:01)   письмо автору
 
   для: Trianon   (14.03.2010 в 01:49)
 

А почему протокол именно HTTP/1.0

  Ответить  
 
 автор: Trianon   (16.03.2010 в 23:41)   письмо автору
 
   для: oliss   (15.03.2010 в 18:01)
 

А разве в этом отклике есть что-то специфическое от 1.1 ?
На какой версии шло обращение можно, конечно, определить, но мне это расписывать было лень.
Повышать версию без предупреждения сервер не имеет права. Клиент может не поддержать такой апгрейд.

  Ответить  
 
 автор: Красная_шляпа   (21.03.2010 в 23:33)   письмо автору
 
   для: Trianon   (14.03.2010 в 01:49)
 

А разве так работать не будет?

<?php 
$content 
file_get_contents($path);
header("Content-type: image/gif;");
echo 
$content;
?>

  Ответить  
 
 автор: Trianon   (22.03.2010 в 00:55)   письмо автору
 
   для: Красная_шляпа   (21.03.2010 в 23:33)
 

Будет. Но хуже.

  Ответить  
 
 автор: Красная_шляпа   (22.03.2010 в 17:14)   письмо автору
 
   для: Trianon   (22.03.2010 в 00:55)
 

И вообще функцию fpassthru отключают как небезопасную

  Ответить  
 
 автор: Trianon   (23.03.2010 в 01:37)   письмо автору
 
   для: Красная_шляпа   (22.03.2010 в 17:14)
 

>И вообще функцию fpassthru отключают как небезопасную

Функция fpassthru небезопасна?

Так, молодой человек.
Либо Вы приводите аргументы, либо строевым шагом идете ... понятно куда?

PS. Вот ведь блин... лишь бы вякнуть...

  Ответить  
 
 автор: Красная_шляпа   (24.03.2010 в 20:53)   письмо автору
 
   для: Trianon   (23.03.2010 в 01:37)
 

Можете туда сами сходить.

  Ответить  
 
 автор: Trianon   (24.03.2010 в 21:08)   письмо автору
 
   для: Красная_шляпа   (24.03.2010 в 20:53)
 

То есть аргументов не будет?

  Ответить  
 
 автор: oliss   (25.03.2010 в 07:55)   письмо автору
 
   для: Красная_шляпа   (24.03.2010 в 20:53)
 

Это вам навеяла статья http://poetiq.ru/archives/70 ,так там не всё правда

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования