Dleshka.org
Авторизация

Скачать Урок по созданию install.php

+23
TipTop 3-12-2009 Разное 0 комментариев
Урок по созданию install.php


Урок по созданию install.php



Не видел не одного примера создание install.php в примерах и решил написать :) Я не журналист и по тому не мастер в описаниях , все что смогу обьясню! (PS: это установка Kooal Free Game (_kooalfree.ru)

Пример что у вас получиться :


Начнем с самого простого :) Это оформление установщика используем CSS

Создаем 1.css и заполняем :

body { /* Общий стиль страницы */
background: #101010; /* Цвет фона */
}
a { /* оформление тэг "a" */
color: #fff;/* Цвет */
}
h5 { /* оформение тэга "h5" */
font: 16px Arial, Verdana, Tahoma, sans-serif; /* Настройка шрифта */
color: #fff; /* Цвет шрифта */
margin: 0 auto 40px;
padding: 0;
text-align: center; /* Размещение по центру */
width: 80%; /* Ширина */
}

h6 { /* Оформление тэга "р6" */
font: 12px Arial, Verdana, Tahoma, sans-serif; /* Настройка шрифта */
color: #fff; /* Цвет шрифта */
margin: 0 auto 40px;
padding: 0;
text-align: center; /* Размещение по центру */
width: 80%;/* Ширина */
}

h2 {/* Оформление тэга "р2" */
font: 28px tahoma, verdana, arial, sans-serif;/* Настройка шрифта */
font-weight: bold;
color: #84e03a;/* Цвет шрифта */
margin: 0;
padding: 0 0 10px 0;
}
div { /* Оформление БЛОГа */
border: 2px solid #1d1d1d; 
padding: 10px;
font: 12px Verdana, Tahoma, Arial, sans-serif;/* Шрифт */
width: 600px;/* Ширина*/
margin: 10px auto;
color: #fff;/* цвет */
}
/* Далее все по примеру выше :) Все просто учим CSS если не понятно что то */
label, input {
font: 14px Verdana, Tahoma, Arial, sans-serif;
}
label {
display: block;
width: 100px;
float: left;
color: #fff;
}
input {
border: 0;
padding: 2px;
}
input#install {
display: block;
background-color: #101010;
color: #84e03a;
font: 32px Verdana, Tahoma, Arial, sans-serif;
margin: 0 auto;
text-decoration: underline;
}
input#username, input#password, input#email, label {
margin-top: 10px;
}
input#username {
clear: right;
}
div.error {
color: #ff0000;
text-align: center;
}
div.success {
color: #84e03a;
text-align: center;
}


Как видите все очень просто! (обычное оформление CSS), быть мастером не надо чтоб оформить installer , главное фантазия :)

Далее создадим install.php

И делаем все по шагам
Шаг 1 - создаем шапку
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<!-- Скрипт проверки принятия соглашения / лицензии -->
<script type="text/javascript">
function agreeForm(f) {    // Если поставлен флажок, снимаем блокирование кнопки    
if (f.agree.checked) f.install.disabled = 0 // В противном случае вновь блокируем кнопку    
else f.install.disabled = 1   }  
</script>
<!-- Кодировка -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<!-- Название установщика -->
<title>Установка</title>
<!-- Подключаем CSS (оформление) -->
<link rel="stylesheet" type="text/css" href="1.css">


Далее проверка существует ли файл конфигурации , если скрипт обнаружит config.php в указаной вами дирриктории то попросит удалить его чтоб продолжить! (если конфигураций нет скрипт продолжит установку)
*Это не обязательно для установщика , но решил сделать :)

<?
//Если файл конфигураций пресуцтвует то просим его удалить :D
$filename = 'conf/config.php';/* Папка/Файл.php */
if (file_exists($filename)) {
  print "<div><h2>Ошибка</h2><h5>Для того что бы продолжить установку удалите $filename и <a href=install.php >обновите</a> страницу.</h5></div>";
} else {
?>


Создаем блоги (О скрипте / Конфигурации / Соглашение)


<body>
<h5> Лого </h5>
<?php
if(!$_GET['go']) {
?>

<form method="post" action="install.php?go=true"><!--Форма ( необходимо для шага 2)-->
<div>
<h2>О скрипте</h2>

<h6>Текст в блоге</h6>  

</div>


<div>
<h2>Конфигурации</h2>
<table>
<tr> <td align=right>Название скрипта</td><td align=left><input type=text name=sitename value=<?=Sitename?>>
</td></tr>        
<tr><td align=right>Хост</td><td align=left><input type=text name=mysql_host value=<?=Localhost?>>        
</td></tr>        
<tr><td align=right>Логин</td><td align=left><input type=text name=mysql_user value=<?=mysql_user?>>
</td></tr>        
<tr><td align=right>Пароль</td><td align=left><input type=password name=mysql_password>        
</td></tr>        
<tr><td align=right>База</td><td align=left><input type=text name=my_database value=<?=my_database?> >        
</td></tr>
<tr><td align=right>Префикс</td><td align=left><input type=text name=SQL_PREFIX value=<?=KFG_?> >        
</td></tr> 
</table>
</div>
<div>
<h2>Лицензия</h2>
<p><center><textarea cols="60" rows="4" readonly>Нарушите авторские права и ваша душа наша!</textarea></center></p>   <p><input type="checkbox" name="agree"  onclick="agreeForm(this.form)">     Я согласен</p>   <p> <input type="submit" name="install" value="Далее" disabled>  <input type="submit"  value="Обновить" disabled>  
</div>
</form>



Для чего нужны конфигурации? - Для создания config.php чтобы в дальнейшем подключиться к DB и залить базу в MySQL :) ( О том как создавать дополнительные поля расскажу позже)


Переходим к самому большому шагу :) это создание файлов и заливание в базу :)

<?php
} else {
?>
<div>
<h2>Установка...</h2>




<?
echo 'Файл config.php '; 
$fp = fopen ("conf/config.php","w");  //Желательно не менять , но если заменили то ниже там где заполнение бд укажите путь к конфигу
flock($f,LOCK_EX);        
fputs($fp,"<?php\n\r");        
fputs($fp,'$sitename  =  '."'".$_POST['sitename']."';\n\r");
fputs($fp,'$mysql_host  =  '."'".$_POST['mysql_host']."';\n\r");
fputs($fp,'$mysql_user  =  '."'".$_POST['mysql_user']."';\n\r");
fputs($fp,'$mysql_password  =  '."'".$_POST['mysql_password']."';\n\r");
fputs($fp,'$my_database =  '."'".$_POST['my_database']."';\n\r");
fputs($fp,'$SQL_PREFIX =  '."'".$_POST['SQL_PREFIX']."';\n\r");            
fputs($fp,"?>\n\r"); 
flock($f,LOCK_UN);       
fclose($fp);
echo '<font color=green>создан</font><BR>';
// Создадим файл .htaccess и укажем в нем
// что по умолчанию нужно открывать файл index.php
echo 'Файл .htaccess ';
$f=fopen('.htaccess','w');
flock($f,LOCK_EX);
fputs($f,"DirectoryIndex index.php\n");
flock($f,LOCK_UN);
fclose($f);
echo '<font color=green>создан</font><BR>';



Думаю с созданием файлов все ясно :) Теперь к базам!

require 'conf/config.php'; //путь к конфигу указаному при создании файла

$link = mysql_connect($mysql_host , $mysql_user, $mysql_password ); //конектимся к DB
mysql_select_db($my_database);
//Начинаем заполнять базы
$table_messages = 'CREATE TABLE `'.$SQL_PREFIX.'Название базы` ( `recipient` text, `sender` text, `message` text, `type` text, `stamp` text, `id` bigint(20) unsigned NOT NULL auto_increment, UNIQUE KEY `id` (`id`) );';
if(!mysql_query($table_messages)) {
if(mysql_errno() == 1050) {
print "Table '".$SQL_PREFIX."messages' уже существует! Удалите ее или смените префикс базы.<br /><br />\n";
$problem = true;
} else {
print("<b>A MySQL error occured:</b> (" . mysql_errno() . ") " . mysql_error() . "<br /><br />\n");
$error = true;
}
} else {
mysql_query('ALTER TABLE `'.SQL_PREFIX.'messages` CHANGE `message` `message` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL');
print "Table '".SQL_PREFIX."testbase' added successfully!<br /><br />\n";
}


if ($maxBuddyIconSize > 0) {
if (trim(substr(sprintf('%o', fileperms('./buddyicons/')), -4)) != 777) {
$error = true;
print "<b>Права:</b>: <br/><br/>CHMOD buddyicons/ to 0777</b><br/><br/>";
} else {
print "Вы должны иметь права доступа!/<br/><br/>";
}
}
mysql_close();
?>

</div>



Далее завершающие шаги установки это проверка файлов и папок на сервере (для коректной работы должны быть все!)
<div>
<h2>Проверка файлов...</h2>
<h5>Файлы <BR></h5>
<?
$filename = 'conf/config.php'; //Путь и файл который проверяем
if (file_exists($filename)) {
  print "Файл <b>$filename</b> существует"; //Если найден
} else {
  print "Файл <b>$filename</b>  // Если не найден
        НЕ существует";
}
Echo '<BR>';
$filename = 'conf/function.php';//Путь и файл который проверяем
if (file_exists($filename)) {
  print "Файл <b>$filename</b> существует"; //Если найден
} else {
  print "Файл <b>$filename</b>  // Если не найден
        НЕ существует";
}
Echo '<BR>';
?>
<h5>Папки</h5>
<?php
$catname = 'conf'; //Название папки
if (is_dir("$catname")) {
  print "Папка <b>$catname</b> существует"; //Если найдена
} else {
  print "Файл <b>$catname</b>   // Если не найден
        НЕ существует";
}
Echo '<BR>';
$catname = 'scripts'; // название папки
if (is_dir("$catname")) {
  print "Папка <b>$catname</b> существует"; //Если найдена
} else {
  print "Файл <b>$catname</b>  // Если не найден
        НЕ существует";
}

Echo '<BR>';
?>


</div>



Теперь завершающий шаг вывод об окончании установки :) (или ошибка или успешно!)


<div class="<?php if($error) print 'error'; else print 'success'; ?>">
<h2>Установка окончена!</h2>
<?php
if($error)
print 'Ошибка при установки!';
else
print 'Установка движка окончена! <a href="index.php">главная</a> <a href=admincp.php>Админ центр</a>';
?>

</div>
<?php } ?>
<?php } ?>

</body>
</html>




Если чтото комуто не ясно пишите если что поясню :) (пример рабочего скрипта : _kooaltest.org.ru/installer/install.php )
Информация
Зарегистрируйтесь чтобы комментировать публикацию.
Авторизация