Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка 403
Форумы портала PHP.SU » » Вопросы новичков » Ошибка 403

Страниц (2): [1] 2 »
 

1. Itan - 19 Октября, 2011 - 17:28:20 - перейти к сообщению
Здравствуйте!

Помогите, пожалуйста, решить проблему. Хостер отказался помогать Недовольство, огорчение

Есть скрипт в папке /profile/, он загружает картинку-аватар в папку /avatars/. Картинка загружается, перемещается в указанную папку. Но при попытке открыть её в браузере, например, site.ru/avatars/1.jpg - пишет "Ошибка 403 - недостаточно прав". А на папку avatars стоят права 0755. Причем, если я загружаю файл через FTP клиент, то в браузере открывается файл нормально, а если через скрипт (через форму загрузки файлов, которая находится в папке /profile/) - 403 ошибка. Помогите, пожалуйста. Спасибо!
2. DeepVarvar - 19 Октября, 2011 - 17:43:29 - перейти к сообщению
Странные хостеры.
Аписнить бы должны были.
Вам надо поставить на эту папку рекурсивно (т.е. и для вложенных) права 0777.
А в скрипте (я так понимаю пых выполняется от другого юзера) обязательно дописать строчки,
которые будут ставить права на загружаемые картинки.
3. Itan - 19 Октября, 2011 - 17:57:22 - перейти к сообщению
Там такая штука: есть html-форма загрузки файла. Скрипт-обработчик проверяет миме-тип и расширение у файла (картинки). Затем через move_upload_file сохраняет загруженный файл в папку /avatars/. Все ниче, только при попытке открыть его возникает ошибка 403. У папки с аватарами права 0755. А если загружаю через ФАР-менеджер в эту папку, то через браузер открывается норм.

Пробовал поставить строчки отображения ошибок ini_set('display_errors',1); error_reporting(E_ALL);

Никаких ерроров. Странно. Пробую поставить права 0777 - все равно 403... А от саппорта хостинга я такого не ожидал. Вообще подстава. Это хостинг hc.ru.

А как поменять права на загруженные картинки? Скорее всего, в этом проблема.
4. DeepVarvar - 19 Октября, 2011 - 18:05:22 - перейти к сообщению
Я написал что нужно сделать.
5. Itan - 19 Октября, 2011 - 18:29:56 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $uploadfile = $_SERVER['DOCUMENT_ROOT'].'avatars/'.$user_id.$image_type;
  2. move_uploaded_file($_FILES['avatar']['tmp_name'], $uploadfile);
  3. chmod($uploadfile,0666);


Работает. Спасибо!
6. DeepVarvar - 19 Октября, 2011 - 18:42:42 - перейти к сообщению
Itan пишет:
chmod($uploadfile,0666);
Неее
7. Itan - 19 Октября, 2011 - 18:55:35 - перейти к сообщению
Дак на картинку зачем 755. 666 разве мало?
8. DeepVarvar - 19 Октября, 2011 - 19:02:04 - перейти к сообщению
Сатанист Радость
9. Itan - 19 Октября, 2011 - 19:05:11 - перейти к сообщению
Да не в этом дело Улыбка Не, ну я серьезно спросил. Или 644 ща попробую, если заработает. Мне бы еще как-то прописать в .htaccess, чтобы запретить выполнение скриптов в папке /avatars/. Не знаете как?
10. DeepVarvar - 19 Октября, 2011 - 19:07:04 - перейти к сообщению
Ну просто 755 ставится обычно, т.к. рекурсивно, чтобы и скрипты какраз разрешить к выполнению.
Itan пишет:
запретить выполнение скриптов в папке /avatars/
а они там будут/есть, а что они там делают?
11. Itan - 19 Октября, 2011 - 19:12:48 - перейти к сообщению
Ну миме-тип подделать можно. Расширение тоже. Вдруг мне зальют туда php скрипт под видом картинки. В настройках сервера, конечно, нет такого, чтобы картинки выполнять как скрипты, но на всякий случай.
12. DeepVarvar - 19 Октября, 2011 - 19:15:19 - перейти к сообщению
exif_imagetype
13. Champion - 19 Октября, 2011 - 19:19:25 - перейти к сообщению
Блин, HTTP ответ 403 никакого отношения к chmod и к правам файловой системы не имеет. Вы о чем?
14. DeepVarvar - 19 Октября, 2011 - 19:21:49 - перейти к сообщению
Champion пишет:
ответ 403
= Permission denied
Champion пишет:
никакого отношения к chmod
Ой ли???
15. Champion - 19 Октября, 2011 - 19:25:36 - перейти к сообщению
Itan пишет:
Вдруг мне зальют туда php скрипт под видом картинки.
У вас есть набор расширений, в файлах которых можно выполнять php. Проверьте, чтобы картинка не была ни в одном из этих расширений - и всё.
Вот такие строки в конфигах апача или htaccess
AddType application/x-httpd-php .php
говорят о том, в каких файлах будет выполняться php.

А по поводу 403 ошибка - вы ее получаете потому что доступ в тот каталог через http запрещен. Либо там лежит htaccess со строкой deny from all, либо denu from all написан еще где-то (в htaccess в папках уровнем выше, например)
(Добавление)
DeepVarvar пишет:
ответ 403
= Permission denied
Champion пишет:
никакого отношения к chmod
Ой ли???
Еще раз говорю: 403 - это код ответа http. Да, лон означает permission denied. Но это другой permission denied - httpшный, который прописывается директивами веб сервера.
Закрытый доступ на работу с файлами приводит к другим ошибкам

 

Powered by ExBB FM 1.0 RC1