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

Форум PHP

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

 

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

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

тема: проблема с загрузкой фотографии
 
 автор: Geoli   (12.07.2009 в 17:58)   письмо автору
 
 

При загрузке фотографии через форму, выходит следующее сообщение.

Warning: chmod() [function.chmod]: open_basedir restriction in effect. File(../20090712122834.jpg) is not within the allowed path(s): (/www/htdocs/stereo:/tmp) in /www/htdocs/stereo/zac.php on line 35


phpinfo выдает следующее
open_basedir /www/htdocs/stereo:/tmp no value

на сколько я понимаю, я получаю доступ к обоим папкам. После нажатия кнопки отправить в форме, спустя некоторое время скриптик показывает:

$_FILES['file']['tmp_name']=/tmp/phpXumoDV
$_FILES['file']['error']=0

Выполнение операции copy вызывает уже указанную ошибку. По вашему "посылу" понял, что срабатывает ограничение на доступ к более высоким папкам. Но в open_basedir прописан путь к обоим требуемым папкам. Или я не правильно понимаю?

Вопрос остался. Можно это как то решить?

К примеру назначить темп папку самому? Изменить путь из скрипта?
Как я уже писал раньше, пожалуйста, поменьше тухлых помидоров, я новичок.

  Ответить  
 
 автор: MIchail1982   (12.07.2009 в 18:03)   письмо автору
 
   для: Geoli   (12.07.2009 в 17:58)
 

используйте move_uploaded_file();, насколько я знаю, она корректнее с open_basedir работает...
что касаеться chmod(), то изменять права можно только там, где вам это разрешено (в open_basedir )

  Ответить  
 
 автор: Geoli   (13.07.2009 в 11:04)   письмо автору
 
   для: MIchail1982   (12.07.2009 в 18:03)
 

Использование move_uploaded_file() ведет к таким ошибкам

Warning: move_uploaded_file(1.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /www/htdocs/stereo/zac.php on line 29

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpuCtMtq' to '1.jpg' in /www/htdocs/stereo/zac.php on line 29

Понимаю, проблема в настройках сервера. Но хотелось бы узнать, в каких и можно ли не прибегая к провайдеру подправлять их при работе скрипта.
Заранее спасибо.

  Ответить  
 
 автор: sim5   (13.07.2009 в 11:53)   письмо автору
 
   для: Geoli   (13.07.2009 в 11:04)
 

Права на папку куда файлы копируете установите.

  Ответить  
 
 автор: mihdan   (13.07.2009 в 13:04)   письмо автору
 
   для: Geoli   (13.07.2009 в 11:04)
 

move_uploaded_file - у нее не один параметр!!!

  Ответить  
 
 автор: Trianon   (13.07.2009 в 13:26)   письмо автору
 
   для: Geoli   (13.07.2009 в 11:04)
 

>Понимаю, проблема в настройках сервера.
Вовсе нет. Точнее, как правило это не те настройки, из-за которых требуется дергать провайдера.
Просто запись в каталог для пользователя, от имени которого исполняется скрипт, должна быть разрешена.
И обычно загружаемый файл не пытаются поместить в каталог с исполняемыми скриптами.

  Ответить  
 
 автор: Geoli   (13.07.2009 в 16:18)   письмо автору
 
   для: Trianon   (13.07.2009 в 13:26)
 

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

Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/im/1.jpg) is not within the allowed path(s): (/www/htdocs/stereo:/tmp) in /www/htdocs/stereo/zac.php on line 29

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

Знаю, для тех, кто понимает это может и тупые вопросы, но я не могу понять, ни где копать, ни даже, что спрашивать у провайдера.

Подскажите, где еще можно поискать?

  Ответить  
 
 автор: sim5   (13.07.2009 в 16:25)   письмо автору
 
   для: Geoli   (13.07.2009 в 16:18)
 

Вы бы уж лучше написали как вы копируете, оносительно путей своих. Кстати, у вас что, tmp каталог имеет подкаталог?

  Ответить  
 
 автор: Geoli   (13.07.2009 в 16:33)   письмо автору
 
   для: sim5   (13.07.2009 в 16:25)
 



<?php
if ($_POST
    {
$uploaddir '/im/';
copy($_FILES['file_upload']['tmp_name'], $uploaddir.$_FILES['file_upload']['name']);
    
  } 
?>




Немного не понял вопроса на счет подкаталога в tmp. Подкаталогов не должно быть, у меня нет вообще доступа к этому каталогу. А откуда появилось такое предположение. ?

  Ответить  
 
 автор: sim5   (13.07.2009 в 16:37)   письмо автору
 
   для: Geoli   (13.07.2009 в 16:33)
 

$uploaddir = 'im/', или уж тогда должно быть $uploaddir = './im/'.

Да нет, показалось мне из-за Х, что темп папка с подкаталогом у вас. А достут к ней у вас всегда есть.

  Ответить  
 
 автор: Trianon   (13.07.2009 в 16:32)   письмо автору
 
   для: Geoli   (13.07.2009 в 16:18)
 

/im/1.jpg

путь начинается со слэша.
Вы уверены в этом?

Чему у Вас равен $_SERVER['DOCUMENT_ROOT'] ?

  Ответить  
 
 автор: Geoli   (13.07.2009 в 16:41)   письмо автору
 
   для: Trianon   (13.07.2009 в 16:32)
 

$_SERVER['DOCUMENT_ROOT'] ="/www/htdocs/stereo".


>путь начинается со слэша.
>Вы уверены в этом?

Кажется все решилось.
Спасибо, как я уже говорил, какая то мелочь, наложенная на мелочь, дает дурдом.
Огромное спасибо.

Итак, не придал значение этому слешу. Считал что разницы не будет, есть он или нет. При попытке копировать в папку, сперва не установил права доступа. Исправил, но не помогло. Решил в ту же папку где скрипт, но ничего не выходит. В результате убрав слеш получил копирование без ошибки.
В общем сейчас буду экспериментировать, но кажется проблема решена. СПАСИБО.

PS. Благодарен специалистам, которые отвечают на (иногда и тупой) вопрос новичков. А не посылающих подальше (в поисковики).

PS2- осталось решить проблему, чего у меня мозила вешается при выполнении именно этого скрипта. И вешается так, что сеть отрубается. Но это уже другая история. Другие броузеры этим не страдают.

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

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