phpEasyInstaller

Publicado por EVERTON DA ROSA 28/02/2008

[ Hits: 4.815 ]

Homepage: http://everton3x.github.io

Download phpEasyInstaller-v1.0.7z




O phpEasyInstaller é um instalador para sistemas desenvolvidos em PHP e Mysql.

Com ele, o desenvolvedor pode oferecer aos usuários do seu sistema uma forma fácil e rápida de instalação.

O código está comentado e é de fácil configuração para qualquer sistema que requeira a troca de dados em um arquivo de configuração e a criação/inserção de dados em um banco de dados Mysql.

O phpEasyInstaller é de fácil adaptação.

  



Esconder código-fonte

#index.php
<?
$title = "phpEasyInstaller"; //texto que apareçe na barra de título do navegador e no título principal da página
$description = "Instalardor de sistemas PHP+Mysql";//breve descrição do que vai ser instalado
$instructions = "Para testar o instalador phpEasyInstaller, preencha os campos abaixo e clique em instalar.";//instruções de instalação
$configFields = array(//configurações dos campos do formulário. Estes serão os campos a serem preenchidos com os valores que substituirão os valores default no arquivo de configuração
   'Servidor Mysql'=>array(//primeiro campo
      'id'=>'host',//propriedades id e nome do campo
      'size'=>'50',//propriedade tamanho do campo
      'type'=>'text'//tipo do campo, testado somente com text e password
   ),
   'Usuário Mysql'=>array(//segundo campo
      'id'=>'user',
      'size'=>'50',
      'type'=>'text'
   ),
   'Senha do usuário Mysql'=>array(//terceiro campo
      'id'=>'password',
      'size'=>'50',
      'type'=>'password'
   )
);
//não é preciso mudar nada daqui em diante
$form = '<form action="phpEasyInstaller.php" method="post">';
foreach($configFields as $label=>$fields){
   foreach($fields as $tag=>$value){
      $$tag=$value;
   }
   $form .= '<label style="display:block">'.$label.'</label><input id="'.$id.'" name="'.$id.'" type="'.$type.'" size="'.$size.'"><br>';
}
$form .= '<hr>';
$form .= '<label style="display:block">Servidor Mysql</label><input type="text" id="dbHost" name="dbHost" size="30"><br>';
$form .= '<label style="display:block">Usuário administrador Mysql</label><input type="text" id="dbUser" name="dbUser" size="30"><br>';
$form .= '<label style="display:block">Senha do usuário administrador Mysql</label><input type="password" id="dbPwd" name="dbPwd" size="30"><br>';
$form .= '<label style="display:block">Nome do banco de dados</label><input type="text" id="dbName" name="dbName" size="30">';

$form .= '<hr><input type="submit" value="Instalar"></form>';
?>

<html>
<head>
   <title>
      <? echo $title; ?>
   </title>
</head>
<body>
<h1>
   <? echo $title; ?>
</h1>
<h2>
   <? echo $description; ?>
</h2>
<hr>
<h3>
   <? echo $instructions; ?>
</h3>
<hr>
<? echo $form; ?>
<hr>
<h4>Desenvolvido por <a href="mailto:[email protected]">Everton da Rosa</a> sob a licença <a href="http://www.gnu.org/licenses/licenses.html" target="_blank">GPL</a></h4>
</body>
</html>
#################################################
#phpEasyInstaller.php
<?
$msgfinal = "Feche esta janela e acesse o sistema";//mensagem dada no final da instalação quando há sucesso
require('sql.php');//busca as querys sql a serem executadas
$fileConfig = "config.php";//arquivo de configruação do seu aplicativo
$defaultConfig = array(//vincula os valores default do arquivo de configuração com os campos do formulário da página index. Utilize como chave de cada elemento do array o mesmo valor informado na chave 'id' da variável $configFields do arquivo index.php
   'host'=>'%localhost%',//procure utilzar valores que não sejam repetidos em nehum lugar do arquivo de configuração para evitar efeitos indesejáveis
   'user'=>'%user%',
   'password'=>'%password%'
);
//não é preciso alterar mais nada daqui em diante
function printlog($log){
   foreach($log as $time=>$text){
      echo date("d-m-Y H:i:s",$time).": ".$text;
   }
   return true;
}

$dbHost = $_POST['dbHost'];
$dbUser = $_POST['dbUser'];
$dbPwd = $_POST['dbPwd'];
$dbName = $_POST['dbName'];

$con = mysql_connect($dbHost,$dbUser,$dbPwd);
if($con){
   $log[microtime()] = '<p style="color:green">Conexão com o servidor Mysql realizada com sucesso!</p>';
}else{
   $log[microtime()] = '<p style="color:read">Conexão com o servidor Mysql falhou!</p>';
   printlog($log);
   die(mysql_error());
}

$query = mysql_query('create database '.$dbName);
if($query){
   $log[microtime()] = '<p style="color:green">Banco de dados criado com sucesso!</p>';
}else{
   $log[microtime()] = '<p style="color:read">Criação do banco de dados falhou!</p>';
   printlog($log);
   die(mysql_error());
}

$sel = mysql_select_db($dbName);
if($sel){
   $log[microtime()] = '<p style="color:green">Seleção do banco de dados realizada com sucesso!</p>';
}else{
   $log[microtime()] = '<p style="color:read">Seleção do banco de dados falhou!</p>';
   printlog($log);
   die(mysql_error());
}

foreach($sql as $s){
   $query mysql_query($s);
   if($query){
      $log[microtime()] = '<p style="color:green">Gravação dos dados realizada com sucesso!</p>';
   }else{
      $log[microtime()] = '<p style="color:read">Gravação dos dados falhou!</p>';
      printlog($log);
      die(mysql_error());
   }
}

$fopen = fopen($fileConfig,"rb+");
if($fopen){
   $log[microtime()] = '<p style="color:green">Arquivo de configuração aberto com sucesso!</p>';
}else{
   $log[microtime()] = '<p style="color:read">Abertura do arquivo de configuração falhou!</p>';
   printlog($log);
   die();
}
while(!feof($fopen)){
   $row = fgets($fopen,"3062");
   foreach($_POST as $varname=>$varvalue){
      $search = $defaultConfig[$varname];
      $row = str_replace($search,$varvalue,$row);
   }
   $newFile .= $row;
   reset($_POST);
}
$log[microtime()] = '<p style="color:green">Leitura e substituição de parâmetros realizada com sucesso!</p>';

fclose($fopen);
$fopen = fopen($fileConfig,"wb");
$fwrite = fwrite($fopen,$newFile);
fclose($fopen);
if($fwrite){
   $log[microtime()] = '<p style="color:green">Gravação dos dados realizada com sucesso!</p>';
}else{
   $log[microtime()] = '<p style="color:read">Gravação dos dados falhou!</p>';
   printlog($log);
   die();
}
$log[microtime()] = '<p style="color:green">Instalação concluída!</p>';
printlog($log);
echo "<hr>".$msgfinal;
?>
#################################################
#config.php (exemplo)
<?
/*
Este é um arquivo de configuração teste para o phpEasyInstall
*/


//variáveis de teste
//coloque o valor default igual aos que você informou na variável $defaultConfig do arquivo phpEasyInstaller.php. Os valores informados aqui não devem se repetir no restante do arquivo pois serão substituídos pelos valores passados pelo formulário
$mysqlHost = "%localhost%";
$mysqlUser = "%user%";
$mysqlPwd = "%password%";

/*
As variáveis acima deverão ter seus valores trocados para os valores informados na página de instalação. os valores originais são respectivamente: localhost, user e password. se eles foram trocados, significa que o phpEasyInstall está funcionando
*/
?>
#################################################
#sql.php (exemplo)
<?
//neste arquivo você deve inserir as consultas sql a serem realizadas. Utilize um item do array para cada consulta
$sql= array(
   'SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO',
   'CREATE TABLE IF NOT EXISTS `catalogo` (
     `id` int(11) NOT NULL auto_increment,
     `matricula` int(11) NOT NULL default "0",
     `nome` varchar(255) collate utf8_unicode_ci NOT NULL default "",
     `setor` varchar(255) collate utf8_unicode_ci NOT NULL default "",
     `t1e` varchar(255) collate utf8_unicode_ci NOT NULL default "0.000",
     `t1s` varchar(255) collate utf8_unicode_ci NOT NULL default "0.000",
     `t2e` varchar(255) collate utf8_unicode_ci NOT NULL default "0.000",
     `t2s` varchar(255) collate utf8_unicode_ci NOT NULL default "0.000",
     PRIMARY KEY  (`id`)
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT="Armazena os dados do funcionário" AUTO_INCREMENT=13090',
   'INSERT INTO `catalogo` (`id`, `matricula`, `nome`, `setor`, `t1e`, `t1s`, `t2e`, `t2s`) VALUES
   (12557, 575, "ABILIO GUSTAVO DE OLIVEIRA", "2325-BALANÇAS", "05:30", "11:00", "12:15", "14:45"),
   (12558, 10269, "ACARI KROLOW KLEIN", "2311-CONTROLE DE QUALIDADE", "07:30", "11:30", "13:00", "17:00"),
   (12559, 912, "ADAIR DE SOUZA", "2324-CARPINTARIA/PINTURA/PEDREIRO", "07:30", "11:45", "13:30", "16:35"),
   (12560, 1177, "ADAIR LANGER DA SILVA", "2307- DESOSSA", "05:45", "11:00", "12:15", "15:00"),
   (12561, 137, "ADAO NUNES DA ROSA", "2209-CARREGAMENTO", "07:00", "11:30", "13:00", "15:50"),
   (12562, 598, "ADAO ROLIM DE ALMEIDA", "2306- ABATE", "06:30", "12:00", "13:15", "15:45"),
   (12563, 1115, "ADAVILSON ANTUNES DE FREITAS", "2315-LIMPEZA", "16:30", "20:45", "22:00", "00:45"),
   (12564, 747, "ADELINO DA CRUZ REIS", "2314-TUNEIS", "04:30", "08:45", "10:00", "13:42"),
   (12565, 856, "ADEMAR BELMONTE NETO", "2307- DESOSSA", "06:00", "11:15", "12:30", "15:15"),
   (12566, 60, "ADEMAR CAMPOS", "2306- ABATE", "07:30", "12:00", "13:15", "16:45")'
);
?>

Scripts recomendados

Sistema Completo Imobiliaria

Cron - Classe PHP para cálculo da diferença entre duas datas

Classe de Internacionalização(Multi linguagens)

Cria gráficos para monitoramento de consumo de CPU e Memória a partir de arquivos [Atualização].

Validação de e-mail usando o DIG


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts