ошибки разрешения при создании нескольких подкаталогов php

0

Привет, я создаю веб-сайт, для которого требуется динамическая сборка филистратора на основе сведений о реестре пользователей, это было бы при создании каталога usr, уровень подкаталога был бы идентификатором каталога на основе php-скрипта, это пока что я может не создавать проблем с chmod 777. Однако, когда я пытаюсь создавать подкаталоги в каталоге id, такие как папка с изображениями, а затем html-папка и папка css, я все время получаю ошибки разрешения. сервер - это сервер linux на моей учетной записи хостинга реселлеров

Ниже приведен код php

$dirPath = "../userDirectory/$diectoryid/";

echo $ dirPath;

mkdir ('$dirPath/image/',0777,true);
  • 0
    Итак, какие разрешения создаются для этих созданных папок? Мы не можем догадаться об этом.
  • 0
    userDirectory и $ directoryid оба являются chmod 777
Показать ещё 8 комментариев
Теги:

2 ответа

1

Когда вы используете одинарные кавычки, PHP будет интерпретировать это буквально. Поэтому в вашем случае он попытается создать: $ dirPath/image/(не VALUE из $ dirPath, а $ dirPath как имя)

Замените вторую строку кода на:

mkdir($dirPath . 'image/', 0777, true);

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

  • 0
    Да, это было упомянуто в комментариях за 10 минут до того, как вы опубликовали свой ответ.
  • 0
    Должно быть, это было под «показать еще 5 комментариев» - не заметил этого :-)
1

Как отмечалось в комментариях до того, как эта деталь фактически вызвала проблему здесь, а не фактические разрешения на доступ к файлам:

Эта строка не имеет смысла: mkdir ('$dirPath/image/',0777,true); , $dirPath не будет расширяться, но будет взята буквально здесь из-за одиночных кавычек. Таким образом, вы создаете папку с именем $dirPath... Используйте двойные кавычки или конкатенацию:

Или:

mkdir ("$dirPath/image/",0777,true);

Или:

mkdir ($dirPath . '/image/',0777,true);
  • 0
    удалите / перед изображение, или вы получите двойную косую черту.
  • 0
    @JeroenFlamman Во-первых, это, очевидно, зависит от содержимого $dirpath а во-вторых, это не повлияет на действие, поэтому на самом деле сделайте вещи более надежными, потому что в случае, если $dirPath не содержит завершающий слеш, все снова сломается. Так что я бы предпочел это так :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню