bd.php
3.48 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
<?php
require_once("../inc/config.php");
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if ($_POST["etapa"] > 0) { // Executa cada carregamento
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME);
$mysqli->autocommit(false);
try {
if ($_POST["etapa"] != 3) { // Carrega tudo de uma vez
$mysqli->multi_query(file_get_contents(join(DIRECTORY_SEPARATOR, array(dirname(dirname(__FILE__)), "basedados", "dbesiclivre")).($_POST["etapa"]).".sql"));
} else {
$comandos = explode(";", file_get_contents(join(DIRECTORY_SEPARATOR, array(dirname(dirname(__FILE__)), "basedados", "dbesiclivre")).($_POST["etapa"]).".sql"));
foreach ($comandos as $c) {
if (!ctype_space($c)) { // Evita erro "1065 - Query was empty"
$mysqli->query($c);
}
}
$mysqli->query("COMMIT;");
}
echo "Etapa ".$_POST["etapa"]." finalizada com sucesso.";
die();
} catch (Exception $e) {
echo $e->getCode()." - ".$e->getMessage();
http_response_code(500);
die();
}
} else { // Página que irá demandar o carregamento
include("../inc/topo.php");
?>
<div id="principal">
<h1>Instalação do e-SIC Livre</h1>
<h2>Passo 2 de 2</h2>
<h3>Instalando o banco de dados</h3>
<p>Aguarde enquanto o sistema instala o banco de dados.</p>
<ul>
<li>Criação da estrutura básica: <span id="ok1">aguardando…</span></li>
<li>Carregamento da informação geográfica: <span id="ok2">aguardando…</span></li>
<?php if ($_POST["cep"] == "cep") { ?><li>Carregamento da base de CEP, logradouros e bairros: <span id="ok3">aguardando…</span></li><?php } ?>
</ul>
</div>
<script src="../js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
var etapas = <?php echo ($_POST["cep"] == "cep" ? 3 : 2); ?>;
var etapa = 1;
var concluido = function(data) {
console.log("Ok: "+data.responseText);
$("#ok"+etapa).html("concluído.");
if (etapa < etapas) {
etapa += 1; executar();
} else {
window.location = window.location.href.substr(0, window.location.href.length-6) + "fim.php";
}
};
var erro = function(data) {
$("#ok"+etapa).html("<strong>ERRO</strong> (\""+data.responseText+"\").");
}
var executar = function() {
$("#ok"+etapa).html("executando…");
$.post("bd.php", {"etapa": etapa}, concluido).fail(erro);
};
$(document).ready(function() {
executar();
});
</script>
<?php
include("../inc/rodape.php");
}
} else {
include("../inc/topo.php");
?>
<div id="principal">
<h1>Instalação do e-SIC Livre</h1>
<h2>Passo 2 de 2</h2>
<h3>Instalando o banco de dados</h3>
<p><strong>Atenção!</strong> Para prosseguir, verifique se o banco de dados <code><?php echo DBNAME; ?></code> existe e se o usuário <code><?php echo DBUSER; ?></code> detém todas as permissões para ele.</p>
<form action="bd.php" method="post">
<p><input type="checkbox" name="cep" value="cep" id="cep" checked><label for="cep">Carregar informações de CEP, logradouros e bairros.</label></p>
<input type="hidden" value="0" name="etapa">
<input type="submit" value="Prosseguir" id="prosseguir" onClick="document.getElementById('prosseguir').disabled = true;">
</form>
</div>
<?php
include("../inc/rodape.php");
}
?>