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