phpEasyInstaller
Publicado por EVERTON DA ROSA 28/02/2008
[ Hits: 5.313 ]
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.
#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")'
);
?>
Biblioteca de classes para facilitar a criação de formulários e conexão ao MySQL
Sistema de Boletos e Cobrança Online
Monitoramento simples de servidores [versão 1.0]
Automatizando tradução i18n do seu codigo
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)
Secure boot, artigo interessante, nada técnico. (5)
VOL já não é mais como antes? (9)
É normal não gostar de KDE? (13)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)









