Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Создание папок с порядковым номером (https://javascript.ru/forum/server/69241-sozdanie-papok-s-poryadkovym-nomerom.html)

Sonya 08.06.2017 13:45

Файл PHP в каждой папке свой. Программа среагирует на Ваше действие в зависимости от Вами поставленной задачи. Не хочу углубляться в работу самой программы, у меня вопрос по серверной части. Что не так в этом коде:
$dir = '1/';
$ff = scandir($dir);
$nums = array();
foreach($ff AS $f)
{
if($ff[0]!='.' && is_numeric($ff))$nums[] = (int)$f;
}
$dirname = $dir.(max($nums)+1);
mkdir($dirname);

Вроде ищет, прибавляет, создает, почему не работает?

laimas 08.06.2017 13:52

Вообще то достаточно glob с параметром GLOB_ONLYDIR.

Не создает, значит нет прав на запись у родительского каталога, проверьте.

А вообще, кошмар какой-то.

Sonya 08.06.2017 13:56

Спасибо.

Sonya 08.06.2017 15:01

Создает только одну папку, далее выдает ошибку, что папка уже есть.

laimas 08.06.2017 15:14

Вообще-то, по уму, сценарий должен быть один, результат только может быть различным для каждого случая, то есть задаваться параметром. Другими словами скрипт-диспетчер. Плодить папки для запроса различных скриптов, это нонсенс.

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

Sonya 08.06.2017 15:54

Ошибку нашла, сейчас работает.
"Вообще-то, по уму, сценарий должен быть один, результат только может быть различным для каждого случая, то есть задаваться параметром. Другими словами скрипт-диспетчер." - именно так он реализован в программе. В папках, как раз сохраняются параметры, к файлу PHP, который в нее скопирован, своеобразный config.ini в txt формате, который задается пользователем (авторизированным), который создает эту папку, все остальные только видят результат работы, но не могут менять параметры или файл.

laimas 08.06.2017 16:23

Цитата:

Сообщение от Sonya
В папках, как раз сохраняются параметры, к файлу PHP, который в нее скопирован, своеобразный config.ini в txt формате

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

Sonya 08.06.2017 16:34

Безусловно, БД лучше, хотя здесь, для пользователя, как раз нет фиксированной папки, если папка, например 10 занята, то создается папка 11.

laimas 08.06.2017 16:38

Цитата:

Сообщение от Sonya
например 10 занята, то создается папка 11

Это как? А ничего, что для каждого пользователя создает свой РНР процесс?

Впрочем дело хозяйское, поступайте как знаете.


Часовой пояс GMT +3, время: 23:44.