software:development:demo:cms:ucms:index
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
software:development:demo:cms:ucms:index [2025/05/12 06:58] – внешнее изменение 127.0.0.1 | software:development:demo:cms:ucms:index [2025/05/12 21:57] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 6: | Строка 6: | ||
===== Логика index_test.php ===== | ===== Логика index_test.php ===== | ||
* **ЕСЛИ** ядро приложение не установленно (т.е. отсутствуют файлы **%%version.txt%%** и **%%config.ini%%** в директории **%%/ | * **ЕСЛИ** ядро приложение не установленно (т.е. отсутствуют файлы **%%version.txt%%** и **%%config.ini%%** в директории **%%/ | ||
- | * **ИНАЧЕ** проверит переменную **%%$default_site%%** в файле **%%config.php%%** | + | * **ИНАЧЕ** проверит переменную **%%$default_site%%** в файле **%%config.ini%%** |
* **ЕСЛИ** переменная **%%$default_site = пустое значение%%**, | * **ЕСЛИ** переменная **%%$default_site = пустое значение%%**, | ||
* **ИНАЧЕ** получив значение переменной **%%$default_site%%** из файла **%%default_site%%** перенаправит к **%%install.php%%** - индексный файл установленной конфигурации, | * **ИНАЧЕ** получив значение переменной **%%$default_site%%** из файла **%%default_site%%** перенаправит к **%%install.php%%** - индексный файл установленной конфигурации, | ||
Строка 21: | Строка 21: | ||
/* Присваиваем переменной $file_config значение константы FOLDER | /* Присваиваем переменной $file_config значение константы FOLDER | ||
(а это директория ucms, записанная в файле cons.php)и добовляем | (а это директория ucms, записанная в файле cons.php)и добовляем | ||
- | '/ | + | '/ |
$file_config = FOLDER . '/ | $file_config = FOLDER . '/ | ||
/* Если config.config.ini существует */ | /* Если config.config.ini существует */ | ||
if (file_exists($file_config)) { | if (file_exists($file_config)) { | ||
/* выводим запись о существовании */ | /* выводим запись о существовании */ | ||
- | echo " | + | echo " |
/* Иначе выводим запись о существовании*/ | /* Иначе выводим запись о существовании*/ | ||
} else { | } else { | ||
- | echo " | + | echo " |
} | } | ||
- | + | ||
+ | // Создание и вызов параметров из .ini файла | ||
+ | //////////////////////////////////////////// | ||
+ | /* задаем переменной | ||
+ | * parse_ini_file - обрабатывает конфигурационный файл | ||
+ | * ../ | ||
+ | * ,true); - обрабатываем с секциями (зпголовками) | ||
+ | */ | ||
+ | $config_defaul_site = parse_ini_file(FOLDER . "/ | ||
+ | // Проверьте, | ||
+ | // переменная $config не ровно ЛОЖЬ | ||
+ | if ($config_defaul_site !== false) { | ||
+ | // Доступ к индивидуальным настройкам | ||
+ | |||
+ | $default_site = $config_defaul_site[' | ||
+ | echo " | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
+ | //exit; | ||
/* зададим переменным файлы и директории */ | /* зададим переменным файлы и директории */ | ||
$file_config = FOLDER . '/ | $file_config = FOLDER . '/ | ||
Строка 43: | Строка 62: | ||
/* Если переменные $file_config и file_exists существуют, | /* Если переменные $file_config и file_exists существуют, | ||
то проверим определение переменной конфигурации $default_site | то проверим определение переменной конфигурации $default_site | ||
- | по умолчанию в файле config.php */ | + | по умолчанию в файле config.ini */ |
if (file_exists($file_config) && file_exists($file_version)) { | if (file_exists($file_config) && file_exists($file_version)) { | ||
/* Если переменная $default_site равно " | /* Если переменная $default_site равно " | ||
Строка 74: | Строка 93: | ||
else { | else { | ||
/* Если переменная $default_site равно " | /* Если переменная $default_site равно " | ||
- | перенаправить на страницу, | + | перенаправить на страницу, |
header(" | header(" | ||
} | } | ||
Строка 85: | Строка 104: | ||
?> | ?> | ||
</ | </ | ||
+ | |||
+ | Обратите внимание на следующую часть кода: | ||
+ | |||
+ | < | ||
+ | } | ||
+ | //exit; | ||
+ | /* зададим переменным файлы и директории */ | ||
+ | </ | ||
+ | |||
+ | * **%%exit; | ||
+ | в **%%config.ini%%** выбрана конфигурация по умолчанию. | ||
+ | |||
+ | =====Проверка существований директорий===== | ||
+ | Создаем в **/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **config.ini** существует и он пустой, | ||
Проверим работу страницы | Проверим работу страницы | ||
- | директории: | + | директории: |
+ | имя директории. К примеру: | ||
- | Так-же проверим работу логики при пустом значении переменной **%%$default_site%%** в файле **config.php** | + | <code php index.php> |
+ | <? php | ||
+ | это файл sns | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | А при добавленной директории **blog** переадресация на **/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | И так поступаем с каждой директорией, | ||
+ | директории. | ||
+ | Ну и при создании всех 4х директорий, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== index_test_2.php ===== | ||
+ | Создадим в директории **/test** файл **index_test_2.php** который будет нам создавать файл с записью | ||
+ | конфигурации. К примеру: | ||
+ | |||
+ | <code php index_test_2.php> | ||
+ | <!-- test/ | ||
+ | |||
+ | <?php | ||
+ | /* подключим файл с константами, | ||
+ | require_once __DIR__ . " | ||
+ | |||
+ | /* Присваиваем переменной $file_config значение константы FOLDER | ||
+ | (а это директория ucms, записанная в файле cons.php)и добовляем | ||
+ | '/ | ||
+ | $file_config = FOLDER . '/ | ||
+ | /* Если config.config.ini существует */ | ||
+ | if (file_exists($file_config)) { | ||
+ | /* выводим запись о существовании */ | ||
+ | echo " | ||
+ | /* Иначе выводим запись о существовании*/ | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
+ | $config_defaul_site = parse_ini_file(FOLDER . "/ | ||
+ | // Проверьте, | ||
+ | // переменная $config не ровно ЛОЖЬ | ||
+ | if ($config_defaul_site !== false) { | ||
+ | // Доступ к индивидуальным настройкам | ||
+ | |||
+ | $default_site = $config_defaul_site[' | ||
+ | echo " | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
+ | // Создаем массив пар | ||
+ | $databaseSections = [ | ||
+ | ' | ||
+ | ]; | ||
+ | |||
+ | // Записать конфигурацию в раздел «' | ||
+ | $success = write_to_ini($databaseSections, | ||
+ | |||
+ | // Проверим, | ||
+ | if ($success) { | ||
+ | echo " | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
+ | // Функция записи настроек в определенный раздел INI-файла | ||
+ | function write_to_ini($config, | ||
+ | $content = "\n; Application Configuration Settings\n\n[$section]\n; | ||
+ | |||
+ | foreach ($config as $key => $value) { | ||
+ | $content .= "$key = $value\n"; | ||
+ | } | ||
+ | |||
+ | // Добавить содержимое в файл | ||
+ | return file_put_contents($file, | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | <note blue> | ||
+ | :!: **Примечание: | ||
+ | Ранее **config.ini** создавали мы, значит и владелец файла на запись и чтение тоже мы, а нам необходимо | ||
+ | передать права нашему приложению. Заодно проверим код записи в файл. | ||
+ | </ | ||
+ | |||
+ | Удалим созданный нами файл **config.ini** и запустим в браузере файл **index_test_2.php** | ||
+ | |||
+ | {{: | ||
+ | |||
+ | т.к. мы удалили файл **config.ini** мы получили сообщение: | ||
+ | * **Файл / | ||
+ | * **Ошибка чтения INI-файла.** - прочесть файл приложение не смогло\\ | ||
+ | * **Запись в файл прошла успешно!** - был создан новый **config.ini** с записью **default_site = video** | ||
+ | |||
+ | Запустим в браузере страницу файл **index_test.php** | ||
+ | {{: | ||
+ | |||
+ | Так-же проверим работу логики при пустом значении переменной **%%$default_site%%** в файле **config.ini** | ||
в директории **ucms/ | в директории **ucms/ | ||
< | < | ||
- | $default_site = ""; | + | default_site = |
</ | </ | ||
- | Аналогично, | + | |
+ | {{: | ||
+ | |||
+ | Приложение перешло на первую по списку директорию. | ||
+ | |||
+ | Аналогично, | ||
< | < | ||
- | $default_site = "blog"; | + | default_site = blog |
</ | </ | ||
- | {{: | + | {{: |
===== Логика index.php ===== | ===== Логика index.php ===== | ||
- | * **ЕСЛИ** ядро приложение не установленно (т.е. отсутствуют файлы **%%version.php%%** и **%%config.php%%** в директории **%%/ | + | * **ЕСЛИ** ядро приложение не установленно (т.е. отсутствуют файлы **%%version.php%%** и **%%config.ini%%** в директории **%%/ |
- | * **ИНАЧЕ** проверит переменную **%%$default_site%%** в файле **%%config.php%%** | + | * **ИНАЧЕ** проверит переменную **%%$default_site%%** в файле **%%config.ini%%** |
- | * **ЕСЛИ** переменная **%%$default_site = пустое значение%%**, | + | * **ЕСЛИ** переменная **%%$default_site = пустое значение%%**, |
- | * **ИНАЧЕ** получив значение переменной **%%$default_site%%** из файла **%%default_site%%** выведит в окне **%%index.php%%** | + | * **ИНАЧЕ** получив значение переменной **%%$default_site%%** из файла **%%config.ini%%** перенаправит к **%%index.php%%** установленной конфигурации, |
- | По замыслу пользователь может установит несколько приложений и указать приложение по умолчанию в **%%config.php%%**, | + | По замыслу пользователь может установит несколько приложений и указать приложение по умолчанию в **%%config.ini%%**, |
тогда в корневой директории будет работать указанное приложение, | тогда в корневой директории будет работать указанное приложение, | ||
на директория другой конфигурации. К примеру: | на директория другой конфигурации. К примеру: | ||
Строка 128: | Строка 269: | ||
| | ||
include ' | include ' | ||
- | include FOLDER . '/ | ||
include FOLDER . '/ | include FOLDER . '/ | ||
/* запустим функцию проверки первого входа в приложение */ | /* запустим функцию проверки первого входа в приложение */ | ||
Строка 135: | Строка 275: | ||
</ | </ | ||
- | Запишем в файл **%%function.php%%** нашу первую функцию **%%check_start(); | + | Создадим в директории **/ |
<code php function.php> | <code php function.php> | ||
- | <?php | + | <? |
/* Функция проверки установки ядра приложения и установленной конфигурации */ | /* Функция проверки установки ядра приложения и установленной конфигурации */ | ||
function check_start() { | function check_start() { | ||
- | | + | /* Присваиваем переменной $file_config значение константы FOLDER |
+ | (а это | ||
+ | '/ | ||
+ | $file_config = FOLDER . '/ | ||
+ | |||
+ | // Создание и вызов параметров из .ini файла | ||
+ | //////////////////////////////////////////// | ||
+ | /* задаем переменной | ||
+ | * parse_ini_file - обрабатывает конфигурационный файл | ||
+ | * / | ||
+ | * ,true); - обрабатываем с секциями (зпголовками) | ||
+ | */ | ||
+ | $config_defaul_site = parse_ini_file(FOLDER . "/ | ||
+ | // Присвоим переменной $default_site значение из ini-файл. | ||
+ | $default_site = $config_defaul_site[' | ||
/* зададим переменным файлы и директории */ | /* зададим переменным файлы и директории */ | ||
- | $file_config = FOLDER . '/ | + | $file_config = FOLDER . '/ |
- | $file_version = ' | + | $file_version = FOLDER . '/version.txt'; |
$bcw_site = FOLDER . '/ | $bcw_site = FOLDER . '/ | ||
Строка 150: | Строка 304: | ||
$video_site = FOLDER . '/ | $video_site = FOLDER . '/ | ||
$sns_site = FOLDER . '/ | $sns_site = FOLDER . '/ | ||
- | + | | |
- | /* подключим в функции файл | + | |
- | переменной $default_site*/ | + | |
- | include FOLDER . '/ | + | |
/* Если переменные $file_config и file_exists существуют, | /* Если переменные $file_config и file_exists существуют, | ||
то проверим определение переменной конфигурации $default_site | то проверим определение переменной конфигурации $default_site | ||
Строка 159: | Строка 310: | ||
if (file_exists($file_config) && file_exists($file_version)) { | if (file_exists($file_config) && file_exists($file_version)) { | ||
/* Если переменная $default_site равно " | /* Если переменная $default_site равно " | ||
- | if ($default_site == "" | + | if ($default_site |
/* Проверим, | /* Проверим, | ||
if (file_exists($bcw_site)) { | if (file_exists($bcw_site)) { | ||
- | /* Если директория /bcw определим имя | + | /* Если директория /bcw существует, перенаправим |
- | равное | + | header(" |
- | */ | + | |
- | include FOLDER | + | |
exit; | exit; | ||
} | } | ||
/* Проверим, | /* Проверим, | ||
elseif (file_exists($blog_site)) { | elseif (file_exists($blog_site)) { | ||
- | /* Если директория /blog определим имя | + | /* Если директория /blog существует, перенаправим |
- | равное | + | header(" |
- | */ | + | |
- | include FOLDER | + | |
exit; | exit; | ||
} | } | ||
/* Проверим, | /* Проверим, | ||
elseif (file_exists($video_site)) { | elseif (file_exists($video_site)) { | ||
- | /* Если директория / | + | /* Если директория / |
- | равное | + | header(" |
- | */ | + | |
- | include FOLDER | + | |
exit; | exit; | ||
} | } | ||
/* Проверим, | /* Проверим, | ||
elseif (file_exists($sns_site)) { | elseif (file_exists($sns_site)) { | ||
- | /* Если директория /sns определим имя | + | /* Если директория /sns существует, перенаправим |
- | равное | + | header(" |
- | */ | + | |
- | include FOLDER | + | |
exit; | exit; | ||
} | } | ||
Строка 195: | Строка 338: | ||
else { | else { | ||
/* Если переменная $default_site равно " | /* Если переменная $default_site равно " | ||
- | подключим в окне файл, указанный в config.php*/ | + | перенаправить на страницу, указанную в config.php*/ |
- | include FOLDER | + | header(" |
exit; | exit; | ||
} | } | ||
} | } | ||
/* Если Переменные $file_config или file_exists не существуют, | /* Если Переменные $file_config или file_exists не существуют, | ||
- | то перенаправим | + | то перенаправим |
- | директорию | + | |
- | */ | + | |
else { | else { | ||
- | header(" | + | |
exit; | exit; | ||
+ | } | ||
+ | } | ||
?> | ?> | ||
</ | </ | ||
+ | Откроем в браузере наш файл **/ | ||
- | Проверим работу программы при созданных | + | {{: |
- | значения переменной **%%$default_site%%** | + | |
- | < | + | Как |
- | $default_site | + | |
+ | <code php .htaccess> | ||
+ | # запретим просмотр файлов с расширением .ini следующих файлов | ||
+ | # (задается правило для перенаправления) | ||
+ | # config.ini | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^(config)\.ini$ - [R=403,L,NC] | ||
</ | </ | ||
+ | |||
+ | {{: | ||
<note blue> | <note blue> |
software/development/demo/cms/ucms/index.1747022318.txt.gz · Последнее изменение: — 127.0.0.1