phpEasyInstaller

Publicado por EVERTON DA ROSA 28/02/2008

[ Hits: 5.080 ]

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:everton3x@gmail.com">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

Xajax - FrameWork

String randômica

..

Classe de Internacionalização(Multi linguagens)

Código de Barras


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts