|
|
|
| При загрузке фотографии через форму, выходит следующее сообщение.
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 прописан путь к обоим требуемым папкам. Или я не правильно понимаю?
Вопрос остался. Можно это как то решить?
К примеру назначить темп папку самому? Изменить путь из скрипта?
Как я уже писал раньше, пожалуйста, поменьше тухлых помидоров, я новичок. | |
|
|
|
|
|
|
|
для: Geoli
(12.07.2009 в 17:58)
| | используйте move_uploaded_file();, насколько я знаю, она корректнее с open_basedir работает...
что касаеться chmod(), то изменять права можно только там, где вам это разрешено (в open_basedir ) | |
|
|
|
|
|
|
|
для: 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
Понимаю, проблема в настройках сервера. Но хотелось бы узнать, в каких и можно ли не прибегая к провайдеру подправлять их при работе скрипта.
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Geoli
(13.07.2009 в 11:04)
| | Права на папку куда файлы копируете установите. | |
|
|
|
|
|
|
|
для: Geoli
(13.07.2009 в 11:04)
| | move_uploaded_file - у нее не один параметр!!! | |
|
|
|
|
|
|
|
для: Geoli
(13.07.2009 в 11:04)
| | >Понимаю, проблема в настройках сервера.
Вовсе нет. Точнее, как правило это не те настройки, из-за которых требуется дергать провайдера.
Просто запись в каталог для пользователя, от имени которого исполняется скрипт, должна быть разрешена.
И обычно загружаемый файл не пытаются поместить в каталог с исполняемыми скриптами. | |
|
|
|
|
|
|
|
для: 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
Вот именно, не хочется по пустякам дергать провайдера, если можно решить проблему самому. Если уж нельзя, тогда будем их просить помочь.
Знаю, для тех, кто понимает это может и тупые вопросы, но я не могу понять, ни где копать, ни даже, что спрашивать у провайдера.
Подскажите, где еще можно поискать? | |
|
|
|
|
|
|
|
для: Geoli
(13.07.2009 в 16:18)
| | Вы бы уж лучше написали как вы копируете, оносительно путей своих. Кстати, у вас что, tmp каталог имеет подкаталог? | |
|
|
|
|
|
|
|
для: sim5
(13.07.2009 в 16:25)
| |
<?php
if ($_POST)
{
$uploaddir = '/im/';
copy($_FILES['file_upload']['tmp_name'], $uploaddir.$_FILES['file_upload']['name']);
}
?>
|
Немного не понял вопроса на счет подкаталога в tmp. Подкаталогов не должно быть, у меня нет вообще доступа к этому каталогу. А откуда появилось такое предположение. ? | |
|
|
|
|
|
|
|
для: Geoli
(13.07.2009 в 16:33)
| | $uploaddir = 'im/', или уж тогда должно быть $uploaddir = './im/'.
Да нет, показалось мне из-за Х, что темп папка с подкаталогом у вас. А достут к ней у вас всегда есть. | |
|
|
|
|
|
|
|
для: Geoli
(13.07.2009 в 16:18)
| | /im/1.jpg
путь начинается со слэша.
Вы уверены в этом?
Чему у Вас равен $_SERVER['DOCUMENT_ROOT'] ? | |
|
|
|
|
|
|
|
для: Trianon
(13.07.2009 в 16:32)
| | $_SERVER['DOCUMENT_ROOT'] ="/www/htdocs/stereo".
>путь начинается со слэша.
>Вы уверены в этом?
Кажется все решилось.
Спасибо, как я уже говорил, какая то мелочь, наложенная на мелочь, дает дурдом.
Огромное спасибо.
Итак, не придал значение этому слешу. Считал что разницы не будет, есть он или нет. При попытке копировать в папку, сперва не установил права доступа. Исправил, но не помогло. Решил в ту же папку где скрипт, но ничего не выходит. В результате убрав слеш получил копирование без ошибки.
В общем сейчас буду экспериментировать, но кажется проблема решена. СПАСИБО.
PS. Благодарен специалистам, которые отвечают на (иногда и тупой) вопрос новичков. А не посылающих подальше (в поисковики).
PS2- осталось решить проблему, чего у меня мозила вешается при выполнении именно этого скрипта. И вешается так, что сеть отрубается. Но это уже другая история. Другие броузеры этим не страдают. | |
|
|
|