Инструменты пользователя

Инструменты сайта


software:development:demo:cms:ucms:creating_file_lang_and_time_zone

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:development:demo:cms:ucms:creating_file_lang_and_time_zone [2025/05/03 10:55] – внешнее изменение 127.0.0.1software:development:demo:cms:ucms:creating_file_lang_and_time_zone [2025/05/09 13:21] (текущий) – [8.4. Файл lang_and_time_zone.php] vladpolskiy
Строка 15: Строка 15:
 В нашем случае это переход к файлу **install.php** (подробнее файл install.php будет описан в Главе 8.6). В нашем случае это переход к файлу **install.php** (подробнее файл install.php будет описан в Главе 8.6).
 <note red> <note red>
 + :!: **Внимание:** \\   
 +Файл **lang_and_time_zone.php** будет подключен внутри и будет отображать данные в теле  
 +файла **install.php**, поэтому **form action="install.php"** будет просто обновлять страницу при отправки  
 +данных на сервер.
 </note> </note>
 +  * **method="post"** - в отличие от метода **GET**, который используется для получения данных, **POST** служит для отправки данных на сервер.
 В файле **lang_and_time_zone.php** у нас будет два вида формы для наглядности  В файле **lang_and_time_zone.php** у нас будет два вида формы для наглядности 
   * **input type="radio"** - переключатель    * **input type="radio"** - переключатель 
Строка 30: Строка 33:
 <br> <br>
 </code> </code>
-input type="radio" - переключатель +  * **input type="radio"** - переключатель 
-method="post" - в отличие от метода **GET**, который используется для получения данных,  +  * **method="post"** - в отличие от метода **GET**, который используется для получения данных, **POST** служит для отправки данных на сервер. 
-POST служит для отправки данных на сервер. +  * **id="lang_english"** - идентификатор формы 
-id="lang_english" - идентификатор формы +  * **name="lang_selection"** - имя формы  
-name="lang_selection" - имя формы  +  * **value="english"** - принимаемое значение 
-value="english" - принимаемое значение +  * **checked** - определяет выбор формы переключателя (т.е. выбран по умолчанию) 
-checked - определяет выбор формы переключателя (т.е. выбран по умолчанию) +  * **label for="lang_english"** - надпись для элимента  
-label for="lang_english" - надпись для элимента  +  * **br** - перенос на следующую строку
-br - перенос на следующую строку+
  
-Создадим в директории **/ucms/library/install/** файл **lang_and_time_zone.php** и запишем в него  +==== Выпадающий список ==== 
-следующий код: +Используется для выбора часового пояса работы сервера, т.е. при физически установленном сервере в Дании  
-<code php lang_and_time_zone.php> +и использовании Приложения для русскоязычного населения, бедет отображаться время комминтариев "Московское"
-<form action="install.php" method="post">+ 
 +<code> 
 +<select type="text" name="timezone_selection"> 
 +    <option value="Europe/Moscow">Europe/Moscow +03:00</option> 
 +    <option value="Europe/Amsterdam">Europe/Amsterdam +01:00</option> 
 +    <option value="Europe/Dublin">Europe/Dublin +00:00</option> 
 +    <option value="Europe/Samara">Europe/Samara +04:00</option>  
 +</select> 
 +</code>  
 + 
 +  * **select type="text"** - выпадающий список 
 +  * **name="timezone_selection"** - имя формы  
 +  * **option value=** - определитель значение пункта списка, которое будет отправлено на сервер. 
 +   
 +Идентификатор формы, надпись для элимента и перенос на следующую строку не указываем т.к. в примере  
 +выше мы это сделали для "Чистоты кода" и на логику работы кода это не влияет (т.е. для наглядности  
 +примера, а именно: **select type="text"** - определяет выпадающий список, **name="timezone_selection"**  
 +- имя формы из которого данные получит переменная и **option value=** - значение пункта формы). 
 + 
 +Значение пункта данной формы - это всего лишь время добавляемое к времени часового пояса места установки  
 +сервера (т.е. -2, -1, 0, +1 и т.д.) и мы могли бы это записать, но для наглядности пропишем именно обозначения 
 +"таймзон". Полный список зон можно выбрать из формы ниже: 
 +<html> 
 +<iframe height="450" style="width: 100%;" scrolling="no" title="Untitled" src="./demo/code/timezone/timezone-picker/index.htm" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true"> 
 +</iframe> 
 +</html> 
 + 
 +Данная форма выбора будет рассмотрена в [[software:development:demo:cms:ucms:appendix_c|Приложении C]] этого руководства,  
 +пока же нас интересует 26 часовых поясов для выбора (от -11 до +14). 
 +<code> 
 +    <option value="Pacific/Kiritimati">Pacific/Kiritimati +14:00</option> 
 +    <option value="Pacific/Tongatapu">Pacific/Tongatapu +13:00</option> 
 +    <option value="Pacific/Majuro">Pacific/Majuro +12:00</option> 
 +    <option value="Pacific/Pohnpei">Pacific/Pohnpei +11:00</option> 
 +    <option value="Australia/Melbourne">Australia/Melbourne +10:00</option>  
 +    <option value="Asia/Tokyo">Asia/Tokyo +09:00</option>  
 +    <option value="Asia/Hong_Kong">Asia/Hong_Kong +08:00</option> 
 +    <option value="Asia/Bangkok">Asia/Bangkok +07:00</option>  
 +    <option value="Asia/Bishkek">Asia/Bishkek +06:00</option>  
 +    <option value="Indian/Maldives">Indian/Maldives +05:00</option> 
 +    <option value="Asia/Dubai">Asia/Dubai +04:00</option>  
 +    <option value="Europe/Moscow">Europe/Moscow +03:00</option> 
 +    <option value="Europe/Helsinki">Europe/Helsinki +02:00</option>  
 +    <option value="Europe/Bratislava">Europe/Bratislava +01:00</option> 
 +    <option value="Europe/Dublin">Europe/Dublin +00:00</option> 
 +    <option value="Atlantic/Azores">Atlantic/Azores -01:00</option> 
 +    <option value="Atlantic/South_Georgia">Atlantic/South_Georgia -02:00</option> 
 +    <option value="America/Sao_Paulo">America/Sao_Paulo -03:00</option> 
 +    <option value="America/Montserrat">America/Montserrat -04:00</option> 
 +    <option value="America/Jamaica">America/Jamaica -05:00</option> 
 +    <option value="America/Regina">America/Regina -06:00</option> 
 +    <option value="America/Denver">America/Denver -07:00</option> 
 +    <option value="America/Vancouver">America/Vancouver -08:00</option> 
 +    <option value="America/Sitka">America/Sitka -09:00</option> 
 +    <option value="Pacific/Tahiti">Pacific/Tahiti -10:00</option> 
 +    <option value="Pacific/Midway">Pacific/Midway -10:00</option> 
 +</code>  
 +<note blue> 
 + :&11: **Пимечание:** \\  Данный код приложения, это всего лишь установщик выводимого времени и нам нет  
 + смысла создавать отдельный файл **timezones.php** с массивом со всеми **418** часовыми зонами, т.к. 
 + установщик - это не основное приложение, а визуально понятный сборщик данных для корректной работы 
 + нашего приложения. Файл **timezones.php** с массивом будет описан в [[software:development:demo:cms:ucms:appendix_c|Приложении C]] этого руководства. 
 +</note> 
 + 
 +==== Кнопка ==== 
 +<code>  
 + <div class = "button_lang_and_time_zone"> 
 + <input type="submit" value="Продолжить" name="button_lang_and_time_zone"> 
 + </div> 
 +</code>  
 +  * **input** - интерактивный элемент управления   
 +  * **type=** - тип элемента для отображения 
 +  * **"submit"** - кнопка для отправки формы 
 +  * **value=** - значение элемента управления, в нашем случае это название кнопки "Продолжить" 
 +  * **name="lang_and_time_zone"** - имя формы, которое отправляется вместе с данными формы 
 + 
 +<note blue> 
 + :&11: **Пимечание:** \\    
 + Код приведенный ниже, это всего лишь обертка нашей формы, к классу **button_lang_and_time_zone** позже 
 + будут подключенны стили ранее созданного (пока пустого) файла [[software:development:demo:cms:ucms:creating_file_install_css|install.css]] в директории **css**. 
 + <code>  
 + <div class = "button_lang_and_time_zone"> 
 + </div> 
 +</code>  
 +Кнопку **"Назад"** логично расположить по левому краю формы, а кнопку **"Вперед"** или **"Продолжить"** по правому.  
 +Это мы позже и пропишем в файле **install.css**. 
 +</note> 
 +**div class = "button_lang_and_time_zone"** - создан нами заранее, что-бы в [[software:development:demo:cms:ucms:creating_file_install_css|Главе 8.6. Файл install.css]] при указании 
 +стиля кнопки соблюсти последовательность написания данного руководства и нам в дальнейшем не прийдется 
 +вазвращатся в Файл **lang_and_time_zone.php** для "обертывания" нашей кнопки. 
 +===== Логика формы ===== 
 +У нас имеется переключатель языков с выбранным по умолчанию Английским языком и поле выбора часовой зоны,  
 +с **Pacific/Kiritimati +14:00** по умолчанию (первая в списке выбора) и кнопка "Продолжить".\\   
 +При нажатии кнопки будет проверенно условие, что выбор произведен, либо оставлен по умолчанию  
 +(это нам понадобиться позже для того, чтобы по умолчанию программа вывела нам язык и часовую 
 +зону сервера). Следом будет создан файл конфигурации приложения **config.php** и в него запишется наш  
 +выбор в виде объявленных переменных **$lang_select** и **$timezone_select**. После этого 
 +приложение направит нас к файлу проверки сервера **server_check.php** 
 + 
 +<code> 
 +<?php 
 +$lang_select = $_POST['lang_selection']; 
 +$timezone_select = $_POST['timezone_selection']; 
 +</code> 
 +  * **%%<?php%%** - определяем начало границы выполнения кода PHP 
 +  * **%%$lang_select = $_POST['lang_selection'];%%** - объявляем переменную **$lang_select** и присваиваем ей значение с помощью глобального ассоциативного массива **$_POST** данные из нашей формы "Переключателя" по имени **name="lang_selection"** 
 +  * **%%$timezone_select = $_POST['timezone_selection'];%%** - объявляем переменную **$timezone_selection** и присваиваем ей значение с помощью глобального ассоциативного массива **$_POST** данные из нашей формы "Выпадающего списка" по имени **name="timezone_selection"** 
 + 
 +Проверим что переменные **lang_selection** и **timezone_selection** определены 
 +<code> 
 +if(isset($_POST['lang_selection']) && isset($_POST['timezone_selection'])) 
 +ут мы проверим, нажатие кнопки и запишем логику создания файла config.txt} 
 +</code> 
 +  * **%%if(...)%%** - логический оператор условия **ЕСЛИ** 
 +  * **%%isset(...)%%** - функция определения инициализации переменной   
 +  * **%%$_POST['lang_selection']%%** - глобальный ассоциативный массив **$_POST** с данными из нашей формы "Переключателя" по имени **name="lang_selection"** 
 +  * **%%&&%%** - логический оператор **И**   
 +  * **%%$_POST['timezone_selection']%%** - глобальный ассоциативный массив **$_POST** с данными из нашей формы "Выпадающего списка" по имени **name="timezone_selection"** 
 +Проверим что кнопка **button_lang_and_time_zone** нажата (необходимо чтобы наш код выполнялся только по нажатию, и не выполнялся 
 +при открытии, либо перезагрузке страницы). 
 +<code> 
 +if(isset($_POST['button_lang_and_time_zone'])) {$bam="ИСТИНА"; 
 +echo "Кнопка нажата и переменной bam присвоенно значение = " . "$bam"; 
 +file_put_contents("config.txt","Hello World. Testing!"); 
 +echo "Файл config.txt создан и данные записаны!"; 
 +} else {$bam="ЛОЖЬ";  
 +echo "Кнопка не нажата и переменной bam присвоенно значение = "  . "$bam"; 
 +
 +</code> 
 +  * **%%if(...){...}%%** - логический оператор условия **ЕСЛИ** 
 +  * **%%isset(...)%%** - функция определения инициализации переменной   
 +  * **%%$_POST['button_lang_and_time_zone']%%** - глобальный ассоциативный массив **$_POST** с данными из нашей формы "Кнопка" по имени **name="button_lang_and_time_zone"** 
 +  * **%%$bam="ИСТИНА"%%** - переменной **%%$bam%%** присвоили значение ="ИСТИНА" 
 +  * **%%echo "...."%%** - вывели текст нажатия кнопки и значение "ИСТИНА" присвоенное переменной **%%$bam%%** 
 +  * **%%else(...){...}%%** - логическая конструкция **ИНАЧЕ** оператора условия **ЕСЛИ** 
 +  * **%%$bam="ЛОЖЬ"%%** - переменной **%%$bam%%** присвоили значение ="ЛОЖЬ" 
 +  * **%%echo "...."%%** - вывели текст нажатия кнопки и значение "ЛОЖЬ" присвоенное переменной **%%$bam%%** 
 +  * **%%file_put_contents%%** - функция записи данных в файл запишет **Hello World. Testing!** в файл **config.txt** 
 +   
 +Описанный выше код проверит условие:\\   
 +ЕСЛИ кнопка нажата, присвоится переменной значение ИСТИНА и выведиться текст "Кнопка нажата" и значение переменной,  
 +а так же в этой-же директории будет создан файл **config.txt** и в него будет записано сообщение: Hello World. Testing!, 
 +ИНАЧЕ присвоится той же переменной значение ЛОЖЬ и выведиться текст "Кнопка не нажата" и значение переменной 
 + 
 +====Файл test_3==== 
 +Создадим в директории **/ucms/test/** файл **test_3.php**, объединим выше разобранный нами код и запишем во 
 +вновь созданный файл следующее
 +<code php test_3.php> 
 +<!--  test_3.php  --> 
 + 
 +<form action="test_3.php" method="post">
 Выберите язык приложения: <br/> Выберите язык приложения: <br/>
-<!-- Переключатель --> 
   <input type="radio" method="post" id="lang_english" name="lang_selection" value="english" checked />    <input type="radio" method="post" id="lang_english" name="lang_selection" value="english" checked /> 
   <label for="lang_english">English</label>   <label for="lang_english">English</label>
Строка 52: Строка 203:
  
 Выберите часовой пояс: <br/> Выберите часовой пояс: <br/>
-<!-- Выпадающий список --> 
 <select type="text" name="timezone_selection"> <select type="text" name="timezone_selection">
 +    <option value="Pacific/Kiritimati">Pacific/Kiritimati +14:00</option>
 +    <option value="Pacific/Tongatapu">Pacific/Tongatapu +13:00</option>
 +    <option value="Pacific/Majuro">Pacific/Majuro +12:00</option>
 +    <option value="Pacific/Pohnpei">Pacific/Pohnpei +11:00</option>
 +    <option value="Australia/Melbourne">Australia/Melbourne +10:00</option> 
 +    <option value="Asia/Tokyo">Asia/Tokyo +09:00</option> 
 +    <option value="Asia/Hong_Kong">Asia/Hong_Kong +08:00</option>
 +    <option value="Asia/Bangkok">Asia/Bangkok +07:00</option> 
 +    <option value="Asia/Bishkek">Asia/Bishkek +06:00</option> 
 +    <option value="Indian/Maldives">Indian/Maldives +05:00</option>
 +    <option value="Asia/Dubai">Asia/Dubai +04:00</option> 
     <option value="Europe/Moscow">Europe/Moscow +03:00</option>     <option value="Europe/Moscow">Europe/Moscow +03:00</option>
-    <option value="Europe/Amsterdam">Europe/Amsterdam +01:00</option>+    <option value="Europe/Helsinki">Europe/Helsinki +02:00</option>  
 +    <option value="Europe/Bratislava">Europe/Bratislava +01:00</option>
     <option value="Europe/Dublin">Europe/Dublin +00:00</option>     <option value="Europe/Dublin">Europe/Dublin +00:00</option>
-    <option value="Europe/Samara">Europe/Samara +04:00</option> +    <option value="Atlantic/Azores">Atlantic/Azores -01:00</option> 
 +    <option value="Atlantic/South_Georgia">Atlantic/South_Georgia -02:00</option> 
 +    <option value="America/Sao_Paulo">America/Sao_Paulo -03:00</option> 
 +    <option value="America/Montserrat">America/Montserrat -04:00</option> 
 +    <option value="America/Jamaica">America/Jamaica -05:00</option> 
 +    <option value="America/Regina">America/Regina -06:00</option> 
 +    <option value="America/Denver">America/Denver -07:00</option> 
 +    <option value="America/Vancouver">America/Vancouver -08:00</option> 
 +    <option value="America/Sitka">America/Sitka -09:00</option> 
 +    <option value="Pacific/Tahiti">Pacific/Tahiti -10:00</option> 
 +    <option value="Pacific/Midway">Pacific/Midway -10:00</option>
 </select> </select>
  <div class = "install_button">  <div class = "install_button">
- <input type="submit" value="Продолжить" name="button">+ <input type="submit" value="Продолжить" name="button_lang_and_time_zone">
  </div>  </div>
 </form> </form>
Строка 70: Строка 241:
 if(isset($_POST['lang_selection']) && isset($_POST['timezone_selection'])) if(isset($_POST['lang_selection']) && isset($_POST['timezone_selection']))
 { {
-if(isset($_POST['button'])) {$bam=TRUE+if(isset($_POST['button_lang_and_time_zone'])) {$bam="ИСТИНА"
-//добавляем текст в конец файла config.php +echo "Кнопка нажата и переменной bam присвоенно значение = " . "$bam" . '<br/>'; 
-$filename = 'config.php';+echo "$lang_select" . '<br/>'; 
 +echo "$timezone_select" . '<br/>'; 
 +file_put_contents("config.txt","Hello World. Testing!"); 
 +echo "Файл config.txt создан и данные записаны!"; 
 +
 +
 +else {$bam="ЛОЖЬ";  
 +echo "Кнопка не нажата и переменной bam присвоенно значение = "  . "$bam" . '<br/>'; 
 +echo "$lang_select" . '<br/>'; 
 +echo "$timezone_select" . '<br/>'; 
 +
 +?> 
 +</code> 
 +И откроем файл **test_3.php** в браузере для проверки работы логики приложения 
 + 
 +{{:software:development:demo:cms:ucms:ucms_creat_22.png?|}} 
 + 
 +Как видно в окне приложения, кнопка "Продолжить" еще не нажата, поэтому выводится сообщение: 
 +Кнопка не нажата и переменной bam присвоенно значение = ЛОЖЬ. При этом значения переменных  
 +**%%$lang_select"%%** и **%%$timezone_select%%** не выводятся, по причине не активности кнопки формы.  
 + 
 +Не трогаем окна выбора, а просто обновим окно браузера, ничего не измениться, т.к. работает проверка 
 +нажатия кнопки. Активируем кнопку "Продолжить": 
 +Получаем сообщение: Кнопка нажата и переменной bam присвоенно значение = ИСТИНА, а так-же значения 
 +переменных **%%$lang_select"%%** = english и **%%$timezone_select%%** = Pacific/Kiritimati указанные  
 +по умолчанию, т.е. когда переключатели мы не трогали и самое главное: в директории **/ucms/test/**  
 +появился файл **config.txt**, а чем нас уведомило сообщение: Файл config.txt создан и данные записаны! 
 + 
 +{{:software:development:demo:cms:ucms:ucms_creat_23.png?|}} 
 + 
 +Проверим наш созданный файл **config.txt** и убеждаемся, что текст **Hello World. Testing!** записан. 
 + 
 +{{:software:development:demo:cms:ucms:ucms_creat_25.png?|}} 
 + 
 +Выбирем другой язык, а так же другой часовой пояс и нажмем кнопку Продолжить 
 + 
 +{{:software:development:demo:cms:ucms:ucms_creat_24.png?|}} 
 + 
 +Мы видим, что переменные **%%$lang_select"%%** и **%%$timezone_select%%** приняли другие значения. 
 +На этом проверку логики закончим. 
 +===== 8.4. Файл lang_and_time_zone.php ===== 
 + 
 +Откроем в блокноте созданный ранее в директории **/ucms/library/install/** файл **lang_and_time_zone.php** и запишем в него  
 +код из файла **test_3.php**, убрав лишнее, а именно: 
 +  * вывод на экран сообщений о нажатии кнопки и присвоении переменным **%%$lang_select"%%** и **%%$timezone_select%%**  
 +значений, а так-же вывод на экран сообщения Файл config.txt создан и данные записаны! 
 +Так-же откорректируем код в части  form action="test_3.php" 
 +  * заменим **form action="test_3.php"** на **form action="install.php"** 
 +  * заменим **file_put_contents("config.txt","Hello World. Testing!");"** на приведенный ниже код: 
 + 
 +<code> 
 +$file_lang_and_time_zone = '../../includes/config.php'; 
 +file_put_contents($file_lang_and_time_zone, '<?php ' . "\n", FILE_APPEND); 
 +file_put_contents($file_lang_and_time_zone, '$lang_select' . ' = ' . '"' . $lang_select . '"' . '; ' . "\n", FILE_APPEND); 
 +file_put_contents($file_lang_and_time_zone, '$timezone_select' . ' = ' . '"' . $timezone_select . '"' . '; ' . "\n", FILE_APPEND); 
 +file_put_contents($file_lang_and_time_zone, '?> ' . "\n", FILE_APPEND); 
 +header("Location: server_check.php"); 
 +</code> 
 +  * **%%$file_lang_and_time_zone = '../../includes/config.php';%%** - присвоим переменной **%%$file_lang_and_time_zone"%%** значение, указывающее путь к директории **/includes/**, где будет создан файл **%%config.php%%** 
 +  * **%%../../includes/config.php%%** - значение вновь создаваемого файла **%%config.php%%** в директории **/includes/**. 
 +  * **%%file_put_contents%%** - функция PHP записи в файл **%%config.php%%** месторасположение которого присвоенно переменной  **%%$file_lang_and_time_zone"%%** 
 +  * **%%<?php %%** - записывается определение начала границы выполнения кода PHP 
 +  * **%%\n%%** - записывается символ перевода строки кода PHP 
 +  * **%%, FILE_APPEND%%** - флаг записи данных в конец файла, вместо перезаписи 
 +  * **%%$lang_select%%** - записывается переменная **%%$lang_select%%** 
 +  * **%% = %%** - записывается логический знак **%%=%%**(равно) 
 +  * **%%$lang_select%%** - записывается **значение!** переменной **%%$lang_select%%** присвоенное ранее из формы 
 +То-же самое прописанно и для переменной **%%$timezone_select%%** 
 +  * **%%?> %%** - записывается определение конца границы выполнения кода PHP 
 +  * **%%header("Location:%%** - перенаправление к коду файла проверки сервера **server_check.php** 
 +В результате в файле **%%config.php%%** получим следующую запись: 
 +<code> 
 +<?php  
 +$lang_select = "english";  
 +$timezone_select = "Pacific/Kiritimati";  
 +?>  
 +</code> 
 +где переменной **%%$lang_select%%** присвоенно значение языка по умолчанию, т.е **english**, а переменной 
 +**%%$timezone_select%%** - присвоенно значение часовой зоны  **Pacific/Kiritimati** 
 +  
 +{{:software:development:demo:cms:ucms:ucms_creat_26.png?|}}  
 +   
 +  * в конец нашего файла добавим следующий код "Прогресс-бара", чтобы пользователь знач, где он в данный момент находиться. 
 + 
 +<code> 
 +<?php  
 +<div class="progressbar"> 
 +  <span style="width: 20%"></span> 
 +</div>  
 +</code>  
 + 
 +<note blue> 
 + :&11: **Пимечание:** \\    
 + Код приведенный выше, это всего лишь обертка блока "Погресс-бара", который будет написан на чистом  
 +css и пока соответственно мы его не видим. Позже будут подключенны стили ранее созданного (пока пустого) файла 
 +[[software:development:demo:cms:ucms:creating_file_install_css|install.css]] в директории **css** и "Погресс-бар" отобразиться. 
 +</note> 
 + 
 +В заключении мы добавим проверку того, что если это не первая установка, т.е. файл **config.php** существует в 
 +директории **/includes**, то окно выбора языка и часовой зоны будет пропущенно и приложение переадресует нас к выбору 
 +устанавливаемой конфигурации приложения (блог, видеохостинг и.д.), за что будет отвечать файл **options.php**. 
 + 
 +Код проверки приведен ниже: 
 +<code> 
 +include "../../includes/cons.php"; 
 +$file_config = FOLDER . '/includes/config.php'; 
 +if (file_exists($file_config)) { 
 + /* Вызов header, перенаправит пользователя на страницу 
 + /options.php в этой же директории */ 
 +    header("Location: options.php"); 
 +} else {  
 +Сюда будет записан весь наш код формы 
 +
 +</code> 
 +  * **%%include "../../includes/cons.php";%%** - включает и оценивает код файла **cons.php** из диретории **/includes/** как PHP-код 
 +  * **%%$file_config = FOLDER . '/includes/config.php';%%** - переменной **%%$file_config%%** присвоили значение **%%/includes/config.php%%** (местонахождения файла **config.php**) 
 +  * **%%if(...){...}%%** - логический оператор условия **ЕСЛИ** 
 +  * **%%file_exists(...)%%** - функция проверки существования указанного файла или каталога. 
 +  * **%%header("Location: options.php")%%** - функция перенаправления пользователя к файлу **options.php**. 
 +  * **%%else{...}%%** - логическая конструкция **ИНАЧЕ** оператора условия **ЕСЛИ** 
 + 
 + 
 + 
 + 
 + 
 +Ниже приведен отредактированный и имеющий заключительный вид код файла lang_and_time_zone.php 
 +   
 +<code php lang_and_time_zone.php> 
 +<?php 
 +include "../../includes/cons.php"; 
 +$file_config = FOLDER . '/includes/config.php'; 
 +if (file_exists($file_config)) { 
 + /* Вызов header, перенаправит пользователя на страницу 
 + /options.php в этой же директории */ 
 +    header("Location: options.php"); 
 +} else {  
 +$lang_select = $_POST['lang_selection']; 
 +$timezone_select = $_POST['timezone_selection']; 
 +// Проверим что lang_selection и timezone_selection определены 
 +if(isset($_POST['lang_selection']) && isset($_POST['timezone_selection'])) 
 +
 +if(isset($_POST['button_lang_and_time_zone'])) { 
 +//добавляем текст и значения переменных $lang_select и timezone_select 
 +//в конец создаваемого файла config.php 
 +$filename = '../../includes/config.php';
 file_put_contents($filename, '<?php ' . "\n", FILE_APPEND); file_put_contents($filename, '<?php ' . "\n", FILE_APPEND);
 file_put_contents($filename, '$lang_select' . ' = ' . '"' . $lang_select . '"' . '; ' . "\n", FILE_APPEND); file_put_contents($filename, '$lang_select' . ' = ' . '"' . $lang_select . '"' . '; ' . "\n", FILE_APPEND);
Строка 78: Строка 393:
 file_put_contents($filename, '?> ' . "\n", FILE_APPEND); file_put_contents($filename, '?> ' . "\n", FILE_APPEND);
 header("Location: server_check.php"); header("Location: server_check.php");
-exit( ); 
 } }
 } }
-else {$bam=FALSE;} +}
 ?> ?>
 +<form action="install.php" method="post">
 +Выберите язык приложения: <br/>
 +  <input type="radio" method="post" id="lang_english" name="lang_selection" value="english" checked /> 
 +  <label for="lang_english">English</label>
 +  <br>
 +  <input type="radio" method="post" name="lang_selection" value="russian"> Russian</p>
 +
 +Выберите часовой пояс: <br/>
 +<select type="text" name="timezone_selection">
 +    <option value="Pacific/Kiritimati">Pacific/Kiritimati +14:00</option>
 +    <option value="Pacific/Tongatapu">Pacific/Tongatapu +13:00</option>
 +    <option value="Pacific/Majuro">Pacific/Majuro +12:00</option>
 +    <option value="Pacific/Pohnpei">Pacific/Pohnpei +11:00</option>
 +    <option value="Australia/Melbourne">Australia/Melbourne +10:00</option> 
 +    <option value="Asia/Tokyo">Asia/Tokyo +09:00</option> 
 +    <option value="Asia/Hong_Kong">Asia/Hong_Kong +08:00</option>
 +    <option value="Asia/Bangkok">Asia/Bangkok +07:00</option> 
 +    <option value="Asia/Bishkek">Asia/Bishkek +06:00</option> 
 +    <option value="Indian/Maldives">Indian/Maldives +05:00</option>
 +    <option value="Asia/Dubai">Asia/Dubai +04:00</option> 
 +    <option value="Europe/Moscow">Europe/Moscow +03:00</option>
 +    <option value="Europe/Helsinki">Europe/Helsinki +02:00</option> 
 +    <option value="Europe/Bratislava">Europe/Bratislava +01:00</option>
 +    <option value="Europe/Dublin">Europe/Dublin +00:00</option>
 +    <option value="Atlantic/Azores">Atlantic/Azores -01:00</option>
 +    <option value="Atlantic/South_Georgia">Atlantic/South_Georgia -02:00</option>
 +    <option value="America/Sao_Paulo">America/Sao_Paulo -03:00</option>
 +    <option value="America/Montserrat">America/Montserrat -04:00</option>
 +    <option value="America/Jamaica">America/Jamaica -05:00</option>
 +    <option value="America/Regina">America/Regina -06:00</option>
 +    <option value="America/Denver">America/Denver -07:00</option>
 +    <option value="America/Vancouver">America/Vancouver -08:00</option>
 +    <option value="America/Sitka">America/Sitka -09:00</option>
 +    <option value="Pacific/Tahiti">Pacific/Tahiti -10:00</option>
 +    <option value="Pacific/Midway">Pacific/Midway -10:00</option>
 +</select>
 + <div class = "install_button">
 + <input type="submit" value="Продолжить" name="button_lang_and_time_zone">
 + </div>
 +</form>
 +
 <div class="progressbar"> <div class="progressbar">
   <span style="width: 20%"></span>   <span style="width: 20%"></span>
 </div> </div>
-?> 
 </code> </code>
 +
 +Запишем его в тело файла **lang_and_time_zone.php** и откроем его в окне браузера для проверки, где после отправки формы
 +у нас созается файл **config.php** с данными и браузер нас перенаправляет на страницу проверки сервера **server_check.php**
 + о которой речь пойдет в следующей главе [[software:development:demo:cms:ucms:creating_file_server_check|8.5. Файл server_check.php]], 
 +а пока мы получим пустое окно.
 +
 +{{:software:development:demo:cms:ucms:ucms_creat_27.png?|}}
 +
 +Если мы повторно в адресной строке браузера набирем путь к нашему файлу  **lang_and_time_zone.php**, то нас приложение перенаправит
 +на страницу выбора конфигурации установки **options.php**
 +
 +{{:software:development:demo:cms:ucms:ucms_creat_28.png?|}}
 +
 <note blue> <note blue>
-<wrap left>← [[software:development:demo:cms:ucms:creating_file_config|8.3. Файл config.php]]</wrap>  +<wrap left>← [[software:development:demo:cms:ucms:creating_file_lang|8.3. Файл lang.php]]</wrap>  
-<wrap right>[[software:development:demo:cms:ucms:creating_file_server_check|8.5. Файл server_check.php]]→</wrap>+<wrap right>[[software:development:demo:cms:ucms:creating_file_server_check|8.5. Файл server_check.php]] →</wrap>
 </note> </note>
software/development/demo/cms/ucms/creating_file_lang_and_time_zone.1746258929.txt.gz · Последнее изменение: 127.0.0.1