software:development:demo:cms:ucms:index
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
software:development:demo:cms:ucms:index [2025/05/08 22:22] – [Файл test_7.php] vladpolskiy | software:development:demo:cms:ucms:index [2025/05/12 21:57] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 4: | Строка 4: | ||
Данный файл является **Индексным файлом** — это файл главной страницы директории на сайте, то есть тот файл, который загружается, | Данный файл является **Индексным файлом** — это файл главной страницы директории на сайте, то есть тот файл, который загружается, | ||
- | ===== Логика ===== | + | ===== Логика |
- | * **ЕСЛИ** приложение не установленно (т.е. отсутствуют файлы **version.php** и **config.php** в директории **/ | + | * **ЕСЛИ** |
- | * **ИНАЧЕ** проверит переменную **$default_site** в файле **config.php** | + | * **ИНАЧЕ** проверит переменную **%%$default_site%%** в файле **%%config.ini%%** |
- | * **ЕСЛИ** переменная **$default_site = '' | + | * **ЕСЛИ** переменная **%%$default_site = пустое значение%%**, то приложение выведит в окне индексный файл, первой из установленных конфигураций |
- | * **ИНАЧЕ** | + | * **ИНАЧЕ** |
- | ===== Файл | + | ===== Файл |
+ | Создадим Файл | ||
+ | <code php index_test.php> | ||
+ | <!-- test/ | ||
- | <code php test_7.php> | ||
- | <!-- test_7.php --> | ||
<?php | <?php | ||
- | session_start(); | + | /* подключим файл с константами, |
require_once __DIR__ . " | require_once __DIR__ . " | ||
+ | |||
+ | /* Присваиваем переменной $file_config значение константы FOLDER | ||
+ | (а это директория ucms, записанная в файле cons.php)и добовляем | ||
+ | '/ | ||
+ | $file_config = FOLDER . '/ | ||
+ | /* Если config.config.ini существует */ | ||
+ | if (file_exists($file_config)) { | ||
+ | /* выводим запись о существовании */ | ||
+ | echo " | ||
+ | /* Иначе выводим запись о существовании*/ | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
- | $file_config = FOLDER . '/ | + | // Создание и вызов параметров из .ini файла |
- | $file_version = FOLDER . '/ | + | //////////////////////////////////////////// |
+ | /* задаем переменной | ||
+ | * 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_version = FOLDER . '/ | ||
+ | |||
$bcw_site = FOLDER . '/ | $bcw_site = FOLDER . '/ | ||
$blog_site = FOLDER . '/ | $blog_site = FOLDER . '/ | ||
$video_site = FOLDER . '/ | $video_site = FOLDER . '/ | ||
$sns_site = FOLDER . '/ | $sns_site = FOLDER . '/ | ||
- | + | | |
- | include ' | + | |
/* Если переменные $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 равно " | ||
Строка 61: | Строка 93: | ||
else { | else { | ||
/* Если переменная $default_site равно " | /* Если переменная $default_site равно " | ||
- | перенаправить на страницу, | + | перенаправить на страницу, |
header(" | header(" | ||
} | } | ||
Строка 73: | Строка 105: | ||
</ | </ | ||
+ | Обратите внимание на следующую часть кода: | ||
+ | |||
+ | < | ||
+ | } | ||
+ | //exit; | ||
+ | /* зададим переменным файлы и директории */ | ||
+ | </ | ||
+ | |||
+ | * **%%exit; | ||
+ | в **%%config.ini%%** выбрана конфигурация по умолчанию. | ||
+ | |||
+ | =====Проверка существований директорий===== | ||
+ | Создаем в **/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **config.ini** существует и он пустой, | ||
+ | |||
+ | Проверим работу страницы | ||
+ | директории: | ||
+ | имя директории. К примеру: | ||
+ | |||
+ | <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/ | ||
+ | < | ||
+ | default_site = | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Приложение перешло на первую по списку директорию. | ||
+ | |||
+ | Аналогично, | ||
+ | < | ||
+ | default_site = blog | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Логика index.php ===== | ||
+ | * **ЕСЛИ** ядро приложение не установленно (т.е. отсутствуют файлы **%%version.php%%** и **%%config.ini%%** в директории **%%/ | ||
+ | * **ИНАЧЕ** проверит переменную **%%$default_site%%** в файле **%%config.ini%%** | ||
+ | * **ЕСЛИ** переменная **%%$default_site = пустое значение%%**, | ||
+ | * **ИНАЧЕ** получив значение переменной **%%$default_site%%** из файла **%%config.ini%%** перенаправит к **%%index.php%%** установленной конфигурации, | ||
+ | |||
+ | По замыслу пользователь может установит несколько приложений и указать приложение по умолчанию в **%%config.ini%%**, | ||
+ | тогда в корневой директории будет работать указанное приложение, | ||
+ | на директория другой конфигурации. К примеру: | ||
+ | |||
+ | Пользователь установил 2е конфигурации **%%blog%%** и **%%video%%** и выбрал основной конфигурацию **%%blog%%**, | ||
+ | в окне **%%index.php%%** будет работать конфигурация **%%blog%%**, | ||
+ | указание директории **%%/ | ||
+ | |||
+ | ===== Файл index.php ===== | ||
+ | Главным отличием файла **index.php** от **index_test.php** станут: | ||
+ | * корректировка директорий файлов | ||
+ | * вынос " | ||
+ | * вывод конфигурации в " | ||
+ | Создадим в директории **/ucms** файл входа в приложение **index.php** | ||
+ | |||
+ | <code php index.php> | ||
+ | <?php | ||
+ | /* index.php */ | ||
+ | /* подключим файл с константами, | ||
+ | | ||
+ | include ' | ||
+ | include FOLDER . '/ | ||
+ | /* запустим функцию проверки первого входа в приложение */ | ||
+ | check_start(); | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Создадим в директории **/ | ||
+ | |||
+ | <code php function.php> | ||
+ | <? | ||
+ | /* Функция проверки установки ядра приложения и установленной конфигурации */ | ||
+ | function check_start() { | ||
+ | /* Присваиваем переменной $file_config значение константы FOLDER | ||
+ | (а это директория ucms, записанная в файле cons.php)и добовляем | ||
+ | '/ | ||
+ | $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_version = FOLDER . '/ | ||
+ | |||
+ | $bcw_site = FOLDER . '/ | ||
+ | $blog_site = FOLDER . '/ | ||
+ | $video_site = FOLDER . '/ | ||
+ | $sns_site = FOLDER . '/ | ||
+ | | ||
+ | /* Если переменные $file_config и file_exists существуют, | ||
+ | то проверим определение переменной конфигурации $default_site | ||
+ | по умолчанию в файле config.php */ | ||
+ | if (file_exists($file_config) && file_exists($file_version)) { | ||
+ | /* Если переменная $default_site равно " | ||
+ | if ($default_site | ||
+ | /* Проверим, | ||
+ | if (file_exists($bcw_site)) { | ||
+ | /* Если директория /bcw существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | /* Проверим, | ||
+ | elseif (file_exists($blog_site)) { | ||
+ | /* Если директория /blog существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | /* Проверим, | ||
+ | elseif (file_exists($video_site)) { | ||
+ | /* Если директория /video существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | /* Проверим, | ||
+ | elseif (file_exists($sns_site)) { | ||
+ | /* Если директория /sns существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | else { | ||
+ | /* Если переменная $default_site равно " | ||
+ | перенаправить на страницу, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | /* Если Переменные $file_config или file_exists не существуют, | ||
+ | то перенаправим на страницу установщика install.php */ | ||
+ | else { | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | Откроем в браузере наш файл **/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Как вы уже догадались мы закроем файл **config.ini** файлом **.htaccess** | ||
+ | |||
+ | <code php .htaccess> | ||
+ | # запретим просмотр файлов с расширением .ini следующих файлов | ||
+ | # (задается правило для перенаправления) | ||
+ | # config.ini | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^(config)\.ini$ - [R=403, | ||
+ | </ | ||
+ | |||
+ | {{: | ||
<note blue> | <note blue> | ||
<wrap left>← [[software: | <wrap left>← [[software: | ||
- | <wrap right> | + | <wrap right> |
</ | </ | ||
software/development/demo/cms/ucms/index.1746732165.txt.gz · Последнее изменение: — vladpolskiy