ria pc game
translate to English   translate to Chinese
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
21 марта 2019 15:20
Вход Регистрация Забыли пароль ?

megainformatic - Система управления сайтом на php - megainformatic cms admin files
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - статья Тимонина Андрея - Таймер. Выводим время игры.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем основной класс обработки графики.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем первое приложение.

megainformatic - Что нужно знать для создания сайта ? float - использование в css - стилях

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 2 - пишем свою композицию COLD

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 3 - экспериментируем с композицией COLD

megainformatic - Что нужно знать для создания сайта ? Стандартные шрифты для сайта

megainformatic - Что нужно знать для создания сайта ? ASC II Коды символов

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 4 - пишем первый вариант композиции COLD

megainformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. СОДЕРЖАНИЕ

megainformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. Энергетический кокон

megainformatic - Модуль галерей для любой cms

megainformatic - Портфолио выполненных проектов сайтов и приложений

megainformatic - Мои Музыкальные Миры - страница 2

megainformatic - megainformatic cms rs

megainformatic - модуль Падающий снег

megainformatic - проект Open Shop

megainformatic - Рисуем красивую девушку всего за 6 шагов

megainformatic - Галерея красивых рисованных девушек

megainformatic - НОВОГОДНЕЕ ОБРАЩЕНИЕ СОЗДАТЕЛЯ webinformatic К ЖИТЕЛЯМ ПЛАНЕТЫ интернет

megainformatic - Отзывы оставленные пользователями как впечатление о проделанной работе или что-либо понравившееся на сайте

megainformatic - Уроки css - атрибут position

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - СОДЕРЖАНИЕ

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 1 - Обычный день

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 2 - Начало (begin)

Новогодняя дискотека 2013 на megainformatic точка ru

megainformatic - Программируем на C++ с использованием MFC

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения - hello, world !

megainformatic - Как создать игру ? - Пишем игровой движок с нуля

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Вступление

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Общая структура будущего игрового движка

Разное

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - DXUTMainLoop - цикл работы DirectX-приложения

megainformatic - Варианты макетов Психолог 911

megainformatic - Шаблоны для сайтов - что это и какие они бывают ?

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 3 - Кто он ? (who is ?)

megainformatic - Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года

megainformatic - Теория и практика хакерских атак - самозащита от нападения

megainformatic - Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP

megainformatic - Fruity Loops Studio 9 - Как синтезировать свои сэмплы - изучаем возможности плагина Sytrus

megainformatic - Видоизменяем тему для Wordpress под свои нужды

megainformatic - Flash приложения и игры - Шаг 3 - управляемый шарик

megainformatic - Учимся создавать флеш-игры, что нужно знать для того, чтобы заняться созданием flash приложений и игр ?

megainformatic - Шаг 4 в освоении Flash-технологий - как анимировать персонажа и управлять им

megainformatic - Форма для смены шаблонов сайта. Модуль template selector

megainformatic - megainformatic cms express files + module slider

megainformatic - Создание сайта бесплатно или под заказ

megainformatic - Как создать flash баннер

megainformatic - Разработка flash-приложения для сайта: онлайн примерочная

megainformatic - Мои впечатления о книге - Владислав Крапивин - Журавленок и Молнии

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль короткие ссылки short link

megainformatic - Работа с сокетами fsocket из php

подробнее


Как создать инсталлятор для собственной cms ?

Итак, Вы написали свою cms. Если нет - можете взять мою бесплатную - megainformatic cms free

Правда для megainformatic cms free инсталлятор не требуется вообще !!! Сайт созданный на базе неё работает без my sql только на файлах. Поэтому вся установка сводится к копированию файлов системы на ваш хостинг.

Для более продвинутых вариантов cms, использующих базы данных my sql - а такие более распространены (megainformatic cms, megainformatic cms express и производные), в задачу инсталлятора будет входить создание первоначальной структуры базы данных будущего сайта без участия пользователя.

Пользователь должен будет лишь создать новую пустую базу данных и передать данные доступа к ней в инсталлятор.

Ну и конечно же инсталлятор должен решить другие дополнительные задачи - автонастройка файла settings, создание прочих настроек состояния сайта по-умолчанию.

В данном уроке мы создадим такой простейший инсталлятор, который будет:

1.) запрашивать пользователя данные доступа к новой базе данных для сайта
2.) создавать первоначальную структуру базы данных нового сайта
3.) обновлять содержимое файла настроек settings.php


Рассмотрим теперь более подробно как организуется процесс установки сайта с помощью инсталлятора.

Во-первых в дистрибутив вашей cms добавляется папка install, которая будет содержать как минимум файл install.php выполняющий все необходимые шаги процесса установки.

В нашем примере таких шагов будет даже 4:

1) Краткая инструкция для пользователя о том, как создать новую базу данных для сайта (поскольку инсталлятор этот шаг выполнить сам не сможет, тут требуется участие пользователя);

2) Поля для ввода данных доступа к созданной базе данных и адрес сайта (тут думаю всё тоже понятно - пользователь должен ввести некоторую информацию о имени базы данных, имени пользователя, пароле, сервере и адресе сайта) - эту информацию инсталлятор будет использовать для автоматического создания структуры базы данных и заполнения её необходимыми данными

3) Непосредственная работа инсталлятора по созданию структуры базы данных и заполнению её необходимыми данными (это собственно скрипт в файле install.php, который будет делать всю необходимую работу уже без прямого участия пользователя);

4) Завершающий шаг установки - инсталлятор создаст файл settings.php, содержащий все необходимые настройки для правильной работы сайта, а также создаст необходимые данные, которые будут свидетельствовать об успешном выполнении установки. (суть работы скрипта install.php тут сводится к созданию файла settings.php с необходимым содержимым, а также созданию специального файла-флага успешного окончания установки, пользователю также выдается сообщение об успешном окончании установки и необходимости удаления папки install с сайта, т. к. её присутствие после успешного выполнения установки сайта становится крайне нежелательным, а сам инсталлятор естественно эту операцию сделать не может).



Мы рассмотрели то, что нужно сделать в теории, а теперь перейдём к практике.

В папке дистрибутива вашей cms создаем подпапку install и помещаем в неё файл install.php.

В файл install.php заносим следующий код -

<?php $install_system_name = 'megainformatic cms express'; ?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Установка <?php echo $install_system_name; ?></title>

<style>

#main {

width: 100%;

margin: 0;

padding: 0;

font-size: 12px;

color: #000000;

background: #ffffff;

font-family: Verdana, Arial, sans-serif;

font-weight: normal;

text-align: center;

}

#container {

width: 800px;

background: #fae3a6;

margin: 0 auto;

}

#desc {

width: 600px;

text-align: left;

margin: 0 auto;

}

#db_connect_form {

width: 480px;

text-align: left;

margin: 0 auto;

background: #cecece;

}

.blue_text {

color: #1c71ad;

}

.orange_bold_text {

color: #ff8e15;

font-weight: bold;

}

.start_install_btn {

color: #ffffff;

border: 2px #ffffff solid;

background: #12be16;

}

</style>

</head>

<body>

<div id="main">

<div id="container">

<?php

/////////////////////////////////// функции

//разворачиваем данные в базе данных сайта

function deploy_database_data()

{

$result = 0;

global $dbhost;

global $dbuser;

global $dbpassw;

global $dbsite;

$papers = array();

if ($rc = mysql_connect($dbhost, $dbuser, $dbpassw))

{

mysql_select_db($dbsite);

//$table = PAPERS_TABLE;

/*$sql = 'SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";';

$s = mysql_query($sql);

if ( !$s )

{

die('Invalid query: ' . mysql_error());

return $result;

}*/

$sql = 'CREATE TABLE IF NOT EXISTS papers (

pageid int(11) NOT NULL AUTO_INCREMENT,

pagetitle varchar(255) NOT NULL,

pagefile varchar(255) NOT NULL,

UNIQUE KEY pageid (pageid)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=10 ;';

$s = mysql_query($sql);

if ( !$s )

{

die('Invalid query: ' . mysql_error());

return $result;

}

mysql_close($rc);

}

if ($rc = mysql_connect($dbhost, $dbuser, $dbpassw))

{

mysql_select_db($dbsite);

$sql = "INSERT INTO papers (pageid, pagetitle, pagefile) VALUES

(1, 'CMS Мега Информатик', 'papers/home.txt'),

(2, 'Подготовка макета сайта', 'papers/maket/maket.txt'),

(3, 'Верстка созданного макета', 'papers/verstka/verstka.txt'),

(4, 'Добавление модулей обеспечивающих функционал', 'papers/modules/modules.txt'),

(5, 'Основы добавления контента на сайт, управления и поддержки сайта', 'papers/content/content.txt'),

(6, 'Проверка работы сайта, установка на хостинг', 'papers/hosting/hosting.txt'),

(7, 'Основы продвижения созданного сайт', 'papers/promo/promo.txt'),

(8, 'Мега Информатик - Создание шаблонов', 'papers/templates/templates.txt'),

(9, 'Создание интернет-магазина', 'papers/shop/shop.txt');";

$s = mysql_query($sql);

if ( !$s )

{

die('Invalid query: ' . mysql_error());

return $result;

}

mysql_close($rc);

$result = 1;

}

return $result;

}

//создаем файл settings.php с конфигурацией сайта

function create_config()

{

$result = 0;

global $dbhost;

global $dbuser;

global $dbpassw;

global $dbsite;

global $site_url;

$data = '<?php'.PHP_EOL;

$data .= '/* ====================================================='.PHP_EOL;

$data .= 'megainformatic cms express 14.04.2012'.PHP_EOL;

$data .= 'http://www.megainformatic.ru'.PHP_EOL;

$data .= 'Автор: Синицин Андрей Сергеевич (megainformatic)'.PHP_EOL;

$data .= '***************************'.PHP_EOL;

$data .= 'файл настроек'.PHP_EOL;

$data .= '====================================================

*/'.PHP_EOL;

$data .= '//настройки доступа к бд'.PHP_EOL;

$data .= '$site_url = \''.$site_url.'\'; //пропишите адрес к вашему сайту'.PHP_EOL;

$data .= '$dbhost = "'.$dbhost.'"; //сервер базы данных обычно 127.0.0.1 либо localhost'.PHP_EOL;

$data .= '$dbsite = "'.$dbsite.'"; //сюда нужно вписать имя созданной вами для сайта базы данных'.PHP_EOL;

$data .= '$dbuser = "'.$dbuser.'"; //это имя пользователя базы данных - для локального сайта можно вписать root'.PHP_EOL;

$data .= '$dbpassw = "'.$dbpassw.'"; //пароль доступа к базе данных, для локального сайта можно не использовать'.PHP_EOL;

$data .= '//набор доступных шаблонов'.PHP_EOL;

$data .= '$templates = array(\'magic\', \'orange\', \'green\', \'blue\');'.PHP_EOL;

$data .= '//имя шаблона по-умолчанию'.PHP_EOL;

$data .= '$template_name = "magic";'.PHP_EOL;

$data .= 'if ( isset($_POST[\'template\']) && $_POST[\'template\'] != "" )'.PHP_EOL;

$data .= '{'.PHP_EOL;

$data .= ' if ( in_array($_POST[\'template\'], $templates) )'.PHP_EOL;

$data .= ' $template_name = $_POST[\'template\'];'.PHP_EOL;

$data .= '}'.PHP_EOL;

$data .= '$template_path = "design/".$template_name;'.PHP_EOL;

$data .= '?>'.PHP_EOL;

$config_filename = 'settings.php';

//выводим данные в файл

$cfg_handler = fopen($config_filename, "w");

$result = fwrite($cfg_handler, $data);

fclose($cfg_handler);

return $result;

}

//создаем файл-флаг успешного завершения установки

function create_install_end_flag_file()

{

$result = 0;

global $istall_ended_filename;

$data = 'installation ended ok'.PHP_EOL;

//выводим данные в файл

$flg_handler = fopen($istall_ended_filename, "w");

$result = fwrite($flg_handler, $data);

fclose($flg_handler);

return $result;

}

/////////////////////////////////// исполнение

//логика работы установщика сайта

/*

0) НАЧАЛО УСТАНОВКИ

1) проверяем была ли нажата кнопка start_install

2) если да, то пробуем получить доступ к базе данных с указанными параметрами

3) если доступа нет - выводим предупреждение

4) если доступ есть - в базе данных сайта создаем все необходимые таблицы и заносим в них информацию

5) создаем в корне сайта файл settings.php и заносим в него всю необходимую информацию

6) после успешного выполнения шагов 4 и 5 выдаем сообщение об окончании установки и предупреждение о необходимости полностью удалить

с сайта папку install, в папке install создаем файл install_ended.txt - если при запуске index.php в корне сайта он проверит и

обнаружит в папке install данный файл - то нужно выдать в браузер предупреждение о необходимости полного удаления папки install

с сайта. Пока папка не будет удалена - не давать доступ к сайту не продолжая выполнение кода в index.php а выводить

только сообщение с предупреждением !!!

*/

error_reporting(E_ERROR);

//1) проверяем была ли нажата кнопка start_install

$start_install_action = isset($_POST['start_install']);

//запоминаем введенные данные доступа к базе данных и сайту (если они были введены)

$dbhost = $_POST['database_server'];

if ( !isset($dbhost) || $dbhost == "" )

$dbhost = '127.0.0.1';

$dbuser = $_POST['database_user'];

if ( !isset($dbuser) || $dbuser == "" )

$dbuser = 'root';

$dbpassw = $_POST['database_pass'];

if ( !isset($dbpassw) /*|| $dbpassw == ""*/ )

$dbpassw = '';

$dbsite = $_POST['database_name'];

if ( !isset($dbsite) || $dbsite == "" )

$dbsite = 'my_database';

$site_url = $_POST['site_url'];

if ( !isset($site_url) || $site_url == "" )

$site_url = 'http://localhost/megainformatic_cms_express';

if ( $start_install_action )

{

//2) да! , пробуем получить доступ к базе данных с указанными параметрами

$result = TRUE;

$rc = mysql_connect($dbhost, $dbuser, $dbpassw);

if ( !$rc )

{

$result = FALSE;

}

$s = mysql_select_db($dbsite);

if ( !$s )

{

$result = FALSE;

}

if ( !$result )

{

//3) если доступа нет - выводим предупреждение

echo '<br><span style="color: #ff0000;">Ошибка !!! Невозможно получить доступ к базе данных !!! Пожалуйста еще раз проверьте

правильность введенных данных и нажмите кнопку НАЧАТЬ УСТАНОВКУ еще раз</span><br><br><br>';

}

else {

mysql_close($rc);

//include_once "includes/constants.php";

//4) если доступ есть - в базе данных сайта создаем все необходимые таблицы и заносим в них информацию

$result = deploy_database_data();

//5) создаем в корне сайта файл settings.php и заносим в него всю необходимую информацию

$result = $result && create_config();

//6) в папке install создаем файл install_ended.txt - он служит флагом успешного окончания установки

//!!! предупреждает ситуацию повторной установки уже установленного сайта !!!

$result = $result && create_install_end_flag_file();

echo 'установка успешно завершена !!! <br><br>Теперь сайт будет работать в штатном режиме и Вы можете обратиться к нему по адресу - '.'<a href="'.$site_url.'">'.$site_url.'</a><br><br>

<br><span style="color: #ff0000;">ВНИМАНИЕ !!! УСТАНОВКА САЙТА ПОЛНОСТЬЮ ЗАВЕРШЕНА И ВАМ НЕОБХОДИМО УДАЛИТЬ ПАПКУ install с вашего сайта. Пока Вы это не сделаете дальнейшая работа невозможна. После удаления папки install просто обратитесь по адресу сайта и сайт заработает.</span>';

}

}

//else

//0) НАЧАЛО УСТАНОВКИ

//выводим начальную страницу установщика

if ( !$result )

{

echo '<img src="install/images/installer.png" border="0" alt="установка '.$install_system_name.'" title="установка '.$install_system_name.'" width="320" height="240">

<br><br>

Добро пожаловать в установщик системы <strong>'.$install_system_name.'</strong><br><br>

<div id="desc">

1) Создайте <span class="blue_text">новую базу данных</span><br><br>

Если Вы выполняете установку на DENVER то,<br><br> в отдельном окне (вкладке) браузера обратитесь по адресу <span class="blue_text">http://localhost/Tools/phpmyadmin/index.php</span><br><br>

или кликните

эту ссылку - <a href="http://localhost/Tools/phpmyadmin/index.php" target="_blank">http://localhost/Tools/phpmyadmin/index.php</a><br><br><br>

<span class="orange_bold_text">!!! ОБРАТИТЕ ВНИМАНИЕ DENVER ДОЛЖЕН БЫТЬ ЗАПУЩЕН !!!<br><br></span>

Если Вы выполняете установку сайта на хостинг, то используйте панель управления Вашим хостингом, для создания новой базы данных сайта. При этом выполнение шага 1.1 будет отличаться, т. к. это действие Вы будете выполнять через панель управления Вашим хостингом. За более подробной информацией обращайтесь к вашему хостинг-провайдеру.<br><br>

1.1) В открывшейся странице phpMyAdmin введите имя для новой базы данных, например, <span class="blue_text">my_database</span> и укажите кодировку для новой базы данных <span class="blue_text">cp1251_general_ci</span> как показано на рисунке<br><br> <img src="install/images/create_new_database.jpg" border="0" alt="создание новой базы данных" title="создание новой базы данных" width="512" height="353"><br><br>

после этого нажмите кнопку <span class="blue_text">Create</span><br><br>

2) в поля указанные ниже, введите необходимую для доступа к созданной базе данных информацию, а затем нажмите кнопку НАЧАТЬ УСТАНОВКУ<br><br>

<div id="db_connect_form"><br><br><strong>Доступ к новой базе данных сайта</strong><br><br>

<form name="site_installer" id="site_installer" action="index.php" method="post">

<strong>Адрес сервера:</strong><br> <input type="text" name="database_server" value="'.$dbhost.'" >(обычно <span class="blue_text">localhost</span> или <span class="blue_text">127.0.0.1</span>)<br><br>

<strong>Имя базы данных:</strong><br> <input type="text" name="database_name" value="'.$dbsite.'" >(введите обязательно такое же имя, которое использовали при создании новой базы данных)<br><br>

<strong>Имя пользователя:</strong><br><input type="text" name="database_user" value="'.$dbuser.'" > (для локальной базы данных на DENVER можно использовать <span class="blue_text">root</span>)<br><br>

<strong>Пароль:</strong><br><input type="text" name="database_pass" value="'.$dbpassw.'" > (для локальной базы данных на DENVER можно не вводить)<br><br>

<strong>Доступ к сайту</strong><br><br>

<strong>Адрес сайта:</strong><br><input type="text" name="site_url" size="60" value="'.$site_url.'" > (укажите адес сайта - для локального сайта на DENVER установленного в папку <strong>megainformatic_cms_express</strong> можно использовать адрес <span class="blue_text">http://localhost/megainformatic_cms_express</span>)<br><br>

<input class="start_install_btn" type="submit" name="start_install" value="Начать установку"><br><br> </form>

</div><!-- end of #db_connect_form -->

В процессе установки созданная база данных будет заполнена необходимыми данными, а также в файл <strong>settings.php</strong> будут занесены

правильные настройки для работы вашего сайта.<br><br>

</div><!-- end of #desc -->';

}

?>

</div><?php /* end of #container */ ?>

</div><?php /* end of #main */ ?>

</body>

</html>

Приведенный код описывает выполнение всех указанных 4 шагов.

В коде страницы инсталлятора используются 2 изображения - 1 в качестве логотипа инсталлятора, а второе - поясняющее шаг создания новой базы данных для пользователя.

Оба эти изображения можно разместить в папке install/images/

Приведенный код, чтобы лучше его понять Вы можете вставить в собственный файл install.php и протестировать как он работает.

Второй важный момент, который надо учитывать - это код, который нужно вставить в файл index.php вашей cms.

Поскольку любой сайт начинает свою работу именно с файла index.php размещенного в корне сайта, то активировать процесс установки сайта достаточно просто.

В самом начале файла index.php мы разместим такой код -

//выполняем установку сайта

//была ли успешно завершена установка ?

$istall_ended_filename = 'install/install_ended.txt';

if ( file_exists($istall_ended_filename ) )

{

//ДА! Поэтому нужно полностью удалить папку install

echo '
<span style="color: #ff0000;">ВНИМАНИЕ !!! УСТАНОВКА САЙТА ПОЛНОСТЬЮ ЗАВЕРШЕНА И ВАМ НЕОБХОДИМО УДАЛИТЬ ПАПКУ install с вашего сайта. Пока<br><br> Вы это не сделаете дальнейшая работа невозможна. После удаления папки install просто обратитесь по адресу сайта и сайт заработает.</span>';

exit();

}

else {

//НЕТ! Тогда выполняем процедуру установки сайта

$installer = 'install/install.php';

if ( file_exists($installer ) )

{

require_once $installer;

}

}

//конец установки

По сути это всё.

Работать это будет следующим образом - Вы (или пользователь, который хочет установить сайт) после копирования всех файлов и папок сайта на хостинг обращается к сайту по его адресу.

При этом код, который мы внедрили в index.php будет проверять наличие файла-флага успешной установки.

Если такого файла в папке install еще нет - будет проверяться наличие папки install и файла install.php в ней.

Если такая папка и файл есть - управление будет передаваться ему и будет открыта страница ИНСТАЛЛЯТОРА в браузере.

Соответственно пользователь выполнит все необходимые действия следуя инстукциям, после чего install.php успешно выполнит свою задачу.

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

Как только пользователь удалит или хотя бы просто переименует папку install, то никаких помех к дальнейшей работе установленного сайта уже не будет и сайт при обращении к нему будет уже работать в обычном режиме.

Таким образом достаточно гибко и просто будет реализован процесс развертывания нового сайта, требующий от пользователя значительно меньше усилий по его установке и настройке.

Спасибо за внимание !

Тема данной статьи не претендует на простоту и исключительную ясность изложения, но вам был показан пример реального работающего кода, который Вы можете успешно применять в качестве основы для инсталляторов в своих cms.

Вы также можете заказать систему megainformatic cms express или её производные и увидеть воочию каким образом развертывается сайт при помощи инсталлятора, ну и разумеется получить работающий сайт под ключ.

подробнее

     
  Другие уроки можно посмотреть в разделе Статьи  
     
 

Краеугольная особенность работы Web-form на примере смены состояния checkbox.

казалось бы - что может быть проще - обычный checkbox - - но оказывается надо учитывать несколько особенностей для корректной работы с этим элементом управления на ваших Web-страничках

 
     
 

В предыдущем уроке - Использование checkbox мы познакомились с простым элементом управления для установки состояний вида Да/Нет

Однако как оказалось нужно учитывать не только особенности работы самих элементов управления web-страницами представленных тегом <input>, но и web форм - <form>.

 
     
 

В данном уроке мы рассмотрим следующие особенности:

- как работают веб-формы;

- как читать/сохранять данные веб-форм в файл;

- как читать/сохранять данные веб-форм в базу данных;

 
     
 

Для начала попробуем создать простейшую веб-форму содержащую знакомый нам checkbox, но чтобы состояние checkbox'а не пропадало бесследно, а сохранялось бы (и читалось бы) из файла.

Вот пример кода на php для реализации этой цели (файл называется checkbox4.php)

 
     
 

<HTML>
<HEAD>
<TITLE>Отслеживаем состояние checkbox'a в файле</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</HEAD>
<BODY>

<div style="width: 990px; margin: 0 auto; background: #777777;">
<div style="width: 900px; margin: 0 auto; background: #aaaaaa;">

<?php

/* Особенность работы checkbox'а

если чекбокс установлен - при отправке данных формы передается его значение value
если чекбокс не установлен - при отправке данных формы не передается ничего !!!

читаем/сохраняем состояние checkbox'а из файла

*/

//первым делом объявляем константу - имя файла где будем хранить состояние checkbox

//обратите внимание - нужно вручную создать папку data т. к. функция fopen с параметром w не умеет //создавать сразу и папку и вложенный в неё файл !!!
define (CHECKBOX_STATE_FILENAME, 'data/checkbox_state.txt');

//эта функция у нас читает состояние чекбокса из файла и возвращает значение $state
function read_state()
{
$state = 0;

if ( file_exists(CHECKBOX_STATE_FILENAME) )
{

$handler = fopen(CHECKBOX_STATE_FILENAME, "r");
$state = fread($handler, filesize(CHECKBOX_STATE_FILENAME));
fclose($handler);

}

return $state;
}

//эта функция - запишет состояние $state чекбокса в файл, если файла нет - он будет создан

//обратите внимание еще раз !!! папку data вы должны предварительно создать сами иначе код не будет //работать корректно !!!

//т. к. функция fopen с параметром w не умеет создавать сразу и папку и вложенный в неё файл !!!

function write_state($state)
{
//$state = 0;

$handler = fopen(CHECKBOX_STATE_FILENAME, "w");
fwrite($handler, $state);
fclose($handler);


//return $state;
}

//Эта функция нужна нам чтобы вывести фразу - Флажок установлен (сброшен)
function show_flag_state($state)
{
$state_phrase = $state ? "установлен" : "сброшен";
echo "Флажок был ".$state_phrase." <br>";
}

//читаем состояние флажка в переменную $published
$published = read_state();
//для атрибута checked задаем пустую строку
$checked = '';

//если флажок установлен
if ( $published )
{

//задаем атрибут checked
$checked = 'checked = "checked"';

}

//эта переменная нужна просто для указания части имени для checkbox'а
$num = 1;

//если была нажата кнопка Сохранить в веб форме

if ( $_POST['save'] )
{

//выставляем переменную $state в 1 или 0 в зависимости от установленности $_POST['published-'.$num]
$state = isset($_POST['published-'.$num]) ? 1 : 0;

//сохраняем значение флажка в файл
write_state($state);

//выводим фразу о том, что произошло
show_flag_state($state);

//выводим ссылку для возврата на страницу
echo "<br><a href='checkbox4.php'>вернуться</a>";
}
else {

//если страница была только что открыта (или обновлена) без нажатия кнопки Сохранить в форме

//выводим нашу веб-форму дав ей имя save_changes

//страницу обработчик - указываем саму себя - checkbox4.php

//метод отправки данных формы - ПОСТ
echo "<form name='save_changes' action = 'checkbox4.php' method = 'POST'>";

//выводим чекбокс
echo "<input type=\"checkbox\" ".$checked." name=\"published-".$num."\" value=\"".$published."\">";

//выводим кнопку Сохранить изменения
echo "<input type = 'submit' value = 'Сохранить изменения' name='save'>

//закрываем форму закрывающим тегом
</form>";
}


?>
</div>
</div>

</BODY>
</HTML>

 
     
 

Это чудо работает таким образом - если зададим состояние чекбокса и нажмём кнопку <Сохранить изменения>, то фраза Флажок установлен или сброшен - будет показывать состояние чекбокса.

Само состояние чекбокса будет браться из файла data/checkbox_state.txt

В файл будет заноситься 1 или 0 в зависимости от установленности (сброшенности) чекбокса.

Главная особенность веб-форм состоит в том, что результат выполнения операции бывает невозможно показать на странице с тем же состоянием - как правило требуется отдельная страница или вынесение кода для показа результата в отдельный условный блок кода.

Работающий пример на php смотрите тут - checkbox4.php

ВОТ и ВСЁ на сегодня. Ждите новых уроков.

 
     
  Другие уроки можно посмотреть в разделе Статьи  
     
подробнее

игра Шарики на лифте Серия 1 Разгони Лифт / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016





игра Шарики на лифте / Balls on Lift game ver. 04.10.2016 озорные шарики прыгают на лифте, а Вы должны убирать или создавать их чтобы разогнать его.

Размер: 198 Mb

Контрольные суммы для проверки целостности скачанного файла.
CRC32: 3DF424D8
MD5: 5106EE2C7875DEB9F3805EEB658BB3EB
SHA-1: 5475D09C3B258375AF9B1FE02BBA16C12CE2E49D

игра Шарики на лифте Серия 1 Разгон Лифта / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016 скачать /download

игра Шарики на лифте Серия 1 Разгони Лифт / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016

игра Шарики на лифте / Balls on Lift версия 0.9.1.5 14.09.2016 / version 0.9.1.5 14.09.2016

краткое описание игры:

Шарики на лифте !

freeware

Т. е. Вы можете не только бесплатно скачивать и играть сами,
но и давать игру Вашим друзьям, знакомым и т. п. не нарушая
никаких лицензионных и авторских прав.

Особенности текущей версии:

- появилось возникновение шариков из облачка (анимация была, но в коде не была реализована, т. е. в игре не отображалась);
- шарики стали прыгать не синхронно, а каждый индивидуально - и это выглядит иногда очень забавно и красиво;
- изменены звуки для создания и удаления шариков.
- появилось ведение доп. подробного лог-файла log.txt для отслеживания возможных ошибок;
- более подробный экран помощи при начальном старте;

Все особенности:

- веселые шарики прыгают и катаются на лифте;
- стилизация под известную игру Ну, Погоди!, но в современном варианте аркады;
- необычный и оригинальный вариант для click and play;
- ваш персональный рекорд в онлайн таблице рекордов;
- непредсказуемость игры и интересные возможности;
- 5 градаций сложности игры от легкого до трудного и
неоднозначность к подходу сложности - даже на легком уровне
вам могут встретиться свои сложности, а на сложном можно
найти как облегчить игру;
- маленькие шарики большое удовольствие;
- 11 энергичных, мелодичных и зажигательных авторских
музыкальных трэков;

Шарики катаются на лифте, а Вы кликаете их левой кнопкой мыши, чтобы убрать или правой, чтобы создать. Всё это нужно чтобы разогнать или замедлить лифт и прибыть к точке назначения не позднее заданного времени.

Кроме того, можно менять текущий шарик действиями вверх/вниз (клавиши стрелок или W, S) и перемещать платформу лифта по-горизонтали (влево/вправо или A,D) или нажимая пурпурные кнопки мышкой на игровой панели.

За скорость и за клики по шарикам начисляются очки.

Игра стилизована под популярные в начале 90-х гг. 20 века электронные игры, ярким представителем которой является Ну, Погоди !

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

Шарики на лифте / Balls on Lift версия apr - версия aug 2016 version 0.9.1.5 14.09.2016



Таблица рекордов игроков игры Шарики на лифте / Balls on Lift



Игра свободна для распространения, так что Вы можете свободно
раздавать её где угодно и кому угодно.

Игра была задумана еще в 2012 году. Первые упоминания можно найти в - http://webinformatic.ru/?page=35

Системные требования: Windows 98SE/2000/Me/XP/Vista/7/8/10/ DirectX 9с или выше / Celeron 997 и выше/128 Mb RAM/32 Mb Video/DirectX-sound card/ свободное место на HDD около 190 Mb/клавиатура, мышь.



Если игра не работает -

Скачиваем и устанавливаем -

1)
DirectX End-User Runtimes (August 2008) - Русский

https://www.microsoft.com/ru-ru/download/details.aspx?id=9155

Перезагружаем систему.

Возможно (НО НЕ ОБЯЗАТЕЛЬНО !!!) потребуется и обновить directx.

2)
Ссылка на обновление directx 9c -

https://www.microsoft.com/ru-ru/download/details.aspx?id=34429

Скачиваем и устанавливаем обновления для DirectX 9c.

Перезагружаем систему.

Игра работает при условии что Windows работает у Вас корректно
и с другими играми для DirectX.

Если этого не происходит - значит Вам нужно:

а) выполнить полную переустановку Windows (если система работает нестабильно
и многие игры вылетают или вообще не работают);

б) установить (если делали пункт а) или переустановить или обновить драйвера для видеокарты;

в) установить Microsoft Visual C++ Redistributable 2005, 2008 x86 или x64 в зависимости
от типа вашей системы;

г) после выполнения каждого действия не забывать перезагружать систему;

обзор игры Шарики на лифте / Balls on Lift версия 0.9 от 20.08.2016

скриншоты из игры Шарики на лифте / Balls on Lift

Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра
Шарики на лифте / Balls on Lift игра


ссылка на свободное скачивание

Скачать версию 0.9.1.5 14.09.2016 игры Шарики на лифте -

[downloads:39]


самораспаковывающийся архив размер 129 Mb. Версия 0.9.1.5 sep 2016 (14.09.2016)

Контрольные суммы для сверки правильности и целостности скачанного файла.
CRC32: D449743C
MD5: 928CFAD7E0010A393D4B3F78C947A015
SHA-1: 502EC4FC97F1D7A761E29662F8605FE3CF73CEEE


Особенности версии 0.9.1.5

- появилось возникновение шариков из облачка (анимация была, но в коде не была реализована, т. е. в игре не отображалась);
- шарики стали прыгать не синхронно, а каждый индивидуально - и это выглядит иногда очень забавно и красиво;
- изменены звуки для создания и удаления шариков.
- появилось ведение доп. подробного лог-файла log.txt для отслеживания возможных ошибок;
- более подробный экран помощи при начальном старте;



Скачать версию 0.9 игры Шарики на лифте -

[downloads:38]


самораспаковывающийся архив размер 129 Mb. Версия 0.9 aug 2016 (23.08.2016)

Контрольные суммы для сверки правильности и целостности скачанного файла.
CRC32: 2743F25F
MD5: 09DE172E31DE43D598571261A6F59F07
SHA-1: 4B91E1B2A1ACA527AE9B3615DF6BC34773ABA83B


Особенности версии 0.9

- улучшен игровой процесс: игра стала более кликабельна и динамична;

- клики по шарикам тоже дают очки, положительные и отрицательные;

- немного улучшена динамика сложности игры на разных уровнях сложности;

- добавлены новые музыкальные треки;

- онлайн таблица рекордов (Таблица рекордов игроков игры Шарики на лифте / Balls on Lift) на сайте куда вы можете добавить свой рекорд прямо из игры;



[downloads:37]


самораспаковывающийся архив размер 40.5 Mb. Версия 0.7 aug 2016 (05.08.2016)

Контрольные суммы для сверки правильности и целостности скачанного файла.
CRC32: 339B8500
MD5: EEC7F26A63645272A66B5C71D3DB6EF2
SHA-1: 8909FA3B1D1FCAFAE8C0A9AAF9CE1C96B7384F23


Особенности версии 0.7

- реализован полноценный игровой процесс: нужно проезжать этаж за этажом, стараясь уложиться в отведенное время;

- за выигрыш во времени начисляются очки;

- есть 5 уровней сложности от легкого до очень трудного;

- настройки для громкости музыки и звуков в игре;

- шарики не только создаются и удаляются, но и возникают из воздуха;

- уникальная атмосфера игрового процесса - симулятор команды;





Более ранние версии -

[downloads:36]


самораспаковывающийся архив размер 36.5 Mb. Версия 0.1 jul 2016 от 27.07.2016 Технический релиз

Что означает ТЕХНИЧЕСКИЙ РЕЛИЗ и что уже есть в игре ?

Реализована 1 мини-игра - на прохождение заданного расстояния.

Основное назначение технического релиза - показать текущее состояние развития
проекта. Геймплей таким образом еще реализован только в самом
минималистическом виде и будет еще дополняться и расширяться.

Контрольные суммы для сверки правильности и целостности скачанного файла.
CRC32: 267C0E0A
MD5: BE83269CD8CDF2E1D858660BD3E15BFF
SHA-1: B0FC4636B383B912562F2803E706F9704ACEB166


- Какие ощущения вы испытываете после выпуска первого технического релиза ?

- О !


Мчусь под парусом мчусь я,
Прочь невзгоды и грусть
Гоню от себя
К новым мчусь берегам.

Как навстречу мечтам.

Вот примерно такие ощущения.

- А что это за стихи ?

- Это песня. Написана еще очень давно. Еще наверное где-то в 1999 году в программе SADT 2. Ну и слова, потом придумались. А сейчас просто как-то пришло на ум.

- Да интересно, спасибо. Ну что ж, удачи Вам в завершении Вашего проекта и выпуске первого рабочего релиза !

- Да, большое спасибо ! Также спасибо всем кто следит за развитием нашего проекта. Спасибо за вашу поддержку !!!

- К теме развития игры Шарики на лифте, а также к другим интересным проектам Мега Информатик мы еще не раз вернемся. Думаю, будет как всегда занимательно, познавательно и интересно.

подробнее

Создание MFC приложения

[содержание]  [далее]

Запускаем программную среду Microsoft Visual Studio (MSVS).

Чтобы создать MFC-приложение с интерфейсом SDI выполняем следующие шаги:

1) File > New > Project

2) Тип проекта MFC, MFC Application

3) Задаем имя проекта, Name, например start и папку для его размещения, Location, например: C:\MyProgs\first\start

4) Жмём ОК

5) Next

6) Задаем следующие опции проекта: Single document, Document/View architecture support, язык Английский, Use Unicode libraries, MFC Standard, Use MFC in a static library

7) Next, Compound document support = none

8) Next, Next

9) Database support = none

10) Next, (тут оставляем все опции по-умолчанию)

11) Next, также все опции по-умолчанию

12) Если необходимо меняем имена генерируемых классов, жмём Finish.

13) Пробуем выполнить сборку проекта - Build > Build Solution

14) После завершения компиляции в папке проекта находим подпапку Debug и там исполнимый файл, пробуем запустить созданное приложение.

15) Если всё ок, приложение создалось и нормально запускается и работает, тогда пробуем изменить тип сборки на Release и повторить сборку.

16) После успешной сборки ищем в папке проекта подпапку Release и там исполнимый файл, пробуем запустить - если всё работает - ОК!

Вы осилили самый первый шаг в создании MFC проекта в среде MSVS на c++.

[содержание]  [далее]

Вакансии



megainformatic web job предложения о работе, фриланс заказы

megainformatic.ru/webjob

В нашей команде

- сценарист;

- контент-менеджер;

- менеджер проектов;

- дизайнер - photoshop, corel draw, 3ds max;

- программист c++, delphi, андроид;

- веб программист php/js/html/css/mysql;

- музыкант;

- звукорежиссер;

- генератор вредных идей и советов;

Если Вы хотите стать частью нашей команды или присоединиться к разработке одного из проектов - пишите нам !

Это можно сделать несколькими способами:

Оставьте своё сообщение через форму Комментария ниже.

Напишите по одному из наших Контактов.

Можно также оставить сообщение через форму Возник вопрос Нажми.



Нам будут интересны следующие кандидаты:

Кто Вы и чем хотите заниматься ?

Какой у вас опыт ?

Примеры реализованных вами проектов ?



Что Вы получите работая с нами.

Возможность разрабатывать и продвигать новые, интересные и перспективные проекты.

Пополните свои знания и опыт, расширите кругозор.

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

Вы серьезны, целеустремленны, полны сил и готовы к покорению новых вершин ? Тогда нам по пути !



Предложить задачу, проект



megainformatic web job предложения о работе, фриланс заказы

megainformatic.ru/webjob

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

Или оставить сообщение через форму комментариев ниже.

Просьба не тратить время и не оставлять всякую саморекламу и прочий неадекватный спам.

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

megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 2,8634