Commit ab6717fe151698c4c33b04af92b61aa5dd7f6198

Authored by Leandro Arndt
1 parent c169e9ff

Configuração por script

Showing 1 changed file with 181 additions and 0 deletions   Show diff stats
instalar/index.php 0 → 100644
... ... @@ -0,0 +1,181 @@
  1 +<?php
  2 +// Verifica permissões de escrita
  3 +if ( (is_writable("../inc/config.php") and is_writable("../restrito/inc/config.php")) or
  4 + ( !(file_exists("../inc/config.php") and file_exists("../restrito/inc/config.php")) and
  5 + (is_writable("../inc/") and is_writable("../restrito/inc/"))) and
  6 + is_writable("index.php") and is_writable("bd.php")
  7 + ) {
  8 +
  9 + // Se o o método é POST, verifica o preenchimento e tenta escrever os arquivos de configuração
  10 + if ($_SERVER['REQUEST_METHOD'] == "POST") {
  11 + $erro = false;
  12 +
  13 + // Verifica os campos obrigatórios
  14 + if ($_POST["nome"] and $_POST["codigo"] and $_POST["sitelink"] and $_POST["urlsistema"] and
  15 + $_POST["dbhost"] and $_POST["dbuser"] and $_POST["dbpass"] and $_POST["dbname"] and
  16 + ((!$_POST["phpmailer"]) or ($_POST["smtphost"] and
  17 + (!($_POST["smtpauth"]) or ($_POST["smtpuser"] and $_POST["smtppwd"]))
  18 + ))
  19 + ) {
  20 + $nome = $_POST["nome"];
  21 + $codigo = $_POST["codigo"];
  22 + ($_POST["sitelink"][strlen($_POST["sitelink"]-1)] != "/") ? $sitelink = $_POST["sitelink"]."/" : $sitelink = $_POST["sitelink"];
  23 + ($_POST["urlsistema"][strlen($_POST["urlsistema"]-1)] != "/") ? $urlsistema = $_POST["urlsistema"]."/" : $urlsistema = $_POST["urlsistema"];
  24 + $dbhost = $_POST["dbhost"];
  25 + $dbuser = $_POST["dbuser"];
  26 + $dbpass = $_POST["dbpass"];
  27 + $dbname = $_POST["dbname"];
  28 + $phpmailer = $_POST["phpmailer"];
  29 + $smtphost = $_POST["$smtpport"] ? $_POST["smtphost"].":".$_POST["smtpport"] : $_POST["smtphost"];
  30 + $smtpauth = $_POST["smtpauth"];
  31 + $smtpuser = $_POST["smtpuser"];
  32 + $smtppwd = $_POST["smtppwd"];
  33 +
  34 + try {
  35 + $config = fopen("../inc/config.php", "w");
  36 + fwrite($config, <<<CONF
  37 +<?php
  38 +/**********************************************************************************
  39 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  40 +
  41 + Copyright (C) 2014 Prefeitura Municipal do Natal
  42 +
  43 + Este programa é software livre; você pode redistribuí-lo e/ou
  44 + modificá-lo sob os termos da Licença GPL2.
  45 +***********************************************************************************/
  46 +
  47 +error_reporting(E_ERROR);
  48 +
  49 +define("SISTEMA_NOME", "$nome"); //nome do sistema para exibição em lugares diversos
  50 +define("SISTEMA_CODIGO", "$codigo"); //codigo para definição da lista de sessão do sistema
  51 +
  52 +
  53 +define("MAIL_HOST", "$smtphost");
  54 +define("DBHOST", "$dbhost");
  55 +define("DBUSER", "$dbuser");
  56 +define("DBPASS", "$dbpass");
  57 +define("DBNAME", "$dbname");
  58 +
  59 +define("SITELNK", "$sitelink"); //endereço principal do site
  60 +
  61 +define("URL_BASE_SISTEMA", "$urlsistema"); //endereço principal do site
  62 +
  63 +?>
  64 +CONF
  65 + );
  66 + fclose($config);
  67 + $config = fopen("../restrito/inc/config.php", "w");
  68 + fwrite($config, <<<CONF
  69 +<?php
  70 +/**********************************************************************************
  71 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  72 +
  73 + Copyright (C) 2014 Prefeitura Municipal do Natal
  74 +
  75 + Este programa é software livre; você pode redistribuí-lo e/ou
  76 + modificá-lo sob os termos da Licença GPL2.
  77 +***********************************************************************************/
  78 +
  79 +error_reporting(E_ERROR);
  80 +
  81 +define("SISTEMA_NOME", "$nome"); //nome do sistema para exibição em lugares diversos
  82 +define("SISTEMA_CODIGO", "$codigo"); //codigo para definição da lista de sessão do sistema
  83 +
  84 +
  85 +define("MAIL_HOST", "$smtphost");
  86 +define("DBHOST", "$dbhost");
  87 +define("DBUSER", "$dbuser");
  88 +define("DBPASS", "$dbpass");
  89 +define("DBNAME", "$dbname");
  90 +
  91 +define("SITELNK", "$sitelink"); //endereço principal do site
  92 +
  93 +define("URL_BASE_SISTEMA", "$urlsistema"); //endereço principal do site
  94 +
  95 +define("DIR_CLASSES_LEIACESSO","../../class");
  96 +
  97 +?>
  98 +CONF
  99 + );
  100 + fclose($config);
  101 + } catch(Exceptipon $e) {
  102 + $erro = "não foi possível escrever os arquivos de configuração ($e)";
  103 + }
  104 + } else {
  105 + $erro = "campos obrigatórios não preenchidos";
  106 + }
  107 +
  108 + // Se a configuração foi bem sucedida, passa à próxima etapa
  109 + if (!$erro) {
  110 + header("Location: {$_POST["urlsistema"]}instalar/bd.php");
  111 + die();
  112 + } else {
  113 + echo "<script language='javascript'>alert('Erro na configuração do sistema: $erro.');</script>";
  114 + }
  115 +}
  116 +
  117 +include("../inc/topo.php");
  118 +
  119 +// Formulário de configuração
  120 +?>
  121 +
  122 +<div id="principal">
  123 + <h1>Instala&ccedil;&atilde;o do e-SIC Livre</h1>
  124 + <h2>Passo 1 de 2</h2>
  125 + <form action="index.php" method="post">
  126 + <fieldset>
  127 + <legend>Informa&ccedil;&otilde;es do sistema</legend>
  128 + <table>
  129 + <tr><td><label for="nome">Nome do sistema:<small>*</small></label></td><td><input type="text" name="nome" id="nome" value="e-SIC Livre"></td></tr>
  130 + <tr><td><label for="codigo">C&oacute;digo dos <em>cookies</em> de sess&atilde;o:<small>*</small></label></td><td><input type="text" name="codigo" id="codigo" value="esiclivre"></td></tr>
  131 + <tr><td><label for="sitelink">URL do <em>site</em> principal:<small>*</small></label></td><td><input type="text" name="sitelink" id="sitelink" value=""></td></tr>
  132 + <tr><td><label for="urlsistema">URL da raiz do sistema:<small>*</small></label></td><td><input type="text" name="urlsistema" id="urlsistema" value=""></td></tr>
  133 + </table>
  134 + </fieldset>
  135 +
  136 + <fieldset>
  137 + <legend>Banco de dados</legend>
  138 + <table>
  139 + <tr><td><label for="dbhost">Endere&ccedil;o do servidor:<small>*</small></label></td><td><input type="text" name="dbhost" id="dbhost" value=""></td></tr>
  140 + <tr><td><label for="dbuser"></label>Usu&aacute;rio:<small>*</small></td><td><input type="text" name="dbuser" id="dbuser" value=""></td></tr>
  141 + <tr><td><label for="dbpass">Senha:<small>*</small></label></td><td><input type="password" name="dbpass" id="dbpass" value=""></td></tr>
  142 + <tr><td><label for="dbname">Nome do banco de dados:<small>*</small></label></td><td><input type="text" name="dbname" id="dbname" value=""></td></tr>
  143 + </table>
  144 + </fieldset>
  145 +
  146 + <fieldset>
  147 + <legend>Envio de e-mail</legend>
  148 + <table>
  149 + <tr><td><label for="phpmailer">Usar o PHP Mailer?</label></td><td><input type="checkbox" name="phpmailer" id="phpmailer" value="phpmailer"></td></tr>
  150 + <tr><td colspan="2">Se usar o PHP Mailer, preencha os campos a seguir:</td></tr>
  151 + <tr><td><label for="smtphost">Servidor de e-mail:</label></td><td><input type="text" name="smtphost" id="smtphost" value=""></td></tr>
  152 + <tr><td><label for="smtpport"></label>Porta de SMTP:</td><td><input type="text" name="smtpport" id="smtpport" value=""></td></tr>
  153 + <tr><td><label for="smtpauth"></label>Necess&aacute;rio autenticar?</td><td><input type="checkbox" name="smtpauth" id="smtpauth" value="smtpauth"></td></tr>
  154 + <tr><td><label for="smtpuser"></label>Usu&aacute;rio do servidor de e-mail:</td><td><input type="text" name="smtpuser" id="smtpuser" value=""></td></tr>
  155 + <tr><td><label for="smtppwd"></label>Senha do usu&aacute;rio do servidor de e-mail:</td><td><input type="password" name="smtppwd" id="smtppwd" value=""></td></tr>
  156 + </table>
  157 + </fieldset>
  158 + <p><small>*Campos obrigat&oacute;rios.</small></p>
  159 +
  160 + <input type="submit" value="Prosseguir">
  161 + </form>
  162 +</div>
  163 +
  164 +<?php
  165 +} else { // Não há permissão de escrita nos arquivos de configuração
  166 +?>
  167 + <h1>Erro!</h1>
  168 + <p>O usu&aacute;rio do servidor web n&atilde;o tem permiss&atilde;o de escrita para ao menos um dos arquivos:
  169 + <ul>
  170 + <li><code>inc/config.php</code></li>
  171 + <li><code>restrito/inc/config.php</code></li>
  172 + <li><code>instalar/index.php</code></li>
  173 + <li><code>instalar/bd.php</code></li>
  174 + </ul>
  175 + Edite a configura&ccedil;&atilde;o manualmente ou conceda permiss&atilde;o de escrita a esses arquivos.</p>
  176 + <p>Para editar as configurações, renomeie os arquivos <code>config-exemplo.php</code> nas pastas <code>inc/config/</code> e <code>restrito/inc/</code> para <code>config.php</code> e informe em ambos os par&acirc;metros adequados. Depois, execute os <em>scripts</em> SQL no diret&oacute;rio <code>basedados</code>.</p>
  177 + <p>Se proceder manualmente, exclua a pasta "instalar" e seu conte&uacute;do após a instalação.</p>
  178 +<?php
  179 +}
  180 +include("../inc/rodape.php");
  181 +?>
0 182 \ No newline at end of file
... ...