Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola galera
Preciso de ajuda se puderem me ajudar ai
Eu tenho o código de fazer EXPORTAÇÃO da database ela faz tudo certo e salva em uma pasta
porém quero que quando ela for baixado que tenha uma listagem dos que foi baixando sem precisar eu ter que abrir o cpanel e ir ate a pasta onde esta
Código do form
<?php
if(isset($_SESSION['msg'])){
echo "<p>".$_SESSION['msg']."</p>";
unset($_SESSION['msg']);
}
?>
<form method="POST" action="processar.php" enctype="multipart/form-data">
<div class="col-md-6">
<div class="form-group">
<label>Servidor:</label>
<input class="form-control" name="servidor" value="localhost" required>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Usuario:</label>
<input class="form-control" name="usuario" value="jnnews_99999" required>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Senha:</label>
<input class="form-control" type="password" name="senha" value="###9898-676#fvf#" required>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Banco de Dados:</label>
<input class="form-control" name="dbname" value="jnnews_99999" required>
</div>
</div>
<center><hr>
<button type="submit" class="btn btn-primary">Exportar</button>
<br><br>
</center>
</form>
Aqui é o processar.php
<?php
session_start();
ob_start();
//Receber os dados do formulário
$servidor = $_POST['servidor'];
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
$dbname = $_POST['dbname'];
//Criar a conexao com BD
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
//Incluir o arquivo que gerar o backup
include_once("gerar_dados.php");
header("Location: listar_database.php");
Este é o gerar_dados.php
<?php
//Ler as tabelas
$result_tabela = "SHOW TABLES";
$resultado_tabela = mysqli_query($conn, $result_tabela); $tabelas[] = $row_tabela[0];
}
//var_dump($tabelas);
$result = "";
foreach($tabelas as $tabela){
//Pesquisar o nome das colunas
$result_colunas = "SELECT * FROM " . $tabela;
$resultado_colunas = mysqli_query($conn, $result_colunas);
$num_colunas = mysqli_num_fields($resultado_colunas);
//echo "Quantidade de colunas na tabela: ". $tabela. " - " . $num_colunas . "<br>";
//Criar a intrução para apagar a tabela caso a mesma exista no BD
$result .= 'DROP TABLE IF EXISTS '.$tabela.';';
//Pesquisar como a coluna é criada
$result_cr_col = "SHOW CREATE TABLE " . $tabela;
$resultado_cr_col = mysqli_query($conn, $result_cr_col);
$row_cr_col = mysqli_fetch_row($resultado_cr_col);
//var_dump($row_cr_col);
$result .= "\n\n" . $row_cr_col[1] . ";\n\n";
//echo $result;
//Percorrer o array de colunas
for($i = 0; $i < $num_colunas; $i++){
//Ler o valor de cada coluna no bando de dados
while($row_tp_col = mysqli_fetch_row($resultado_colunas)){
//var_dump($row_tp_col);
//Criar a intrução da Query para inserir os dados
$result .= 'INSERT INTO ' . $tabela . ' VALUES(';
//Ler os dados da tabela
for($j = 0; $j < $num_colunas; $j++){
//addslashes — Adiciona barras invertidas a uma string
$row_tp_col[$j] = addslashes($row_tp_col[$j]);
//str_replace — Substitui todas as ocorrências da string \n pela \\n
$row_tp_col[$j] = str_replace("\n", "\\n", $row_tp_col[$j]);
if(isset($row_tp_col[$j])){
if(!empty($row_tp_col[$j])){
$result .= '"' . $row_tp_col[$j].'"';
}else{
$result .= 'NULL';
}
}else{
$result .= 'NULL';
}
if($j < ($num_colunas - 1)){
$result .=',';
}
}
$result .= ");\n";
}
}
$result .= "\n\n";
//echo $result;
}
//Criar o diretório de backup
$diretorio = 'backup/';
if(!is_dir($diretorio)){
mkdir($diretorio, 0777, true);
chmod($diretorio, 0777);
}
//Nome do arquivo de backup
$data = date('d-m-Y');
$tempo= date('h-i-s');
$nome_arquivo = $diretorio . "jnnews_".$data_.$tempo;
//echo $nome_arquivo;
$handle = fopen($nome_arquivo . '.sql', 'w+');
fwrite($handle, $result);
fclose($handle);
//Montagem do link do arquivo
$download = $nome_arquivo . ".sql";
//Adicionar o header para download
if(file_exists($download)){
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"" . basename($download) . "\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($download));
readfile($download);
$_SESSION['msg'] = "<span style='color: green;'>Exportado BD com sucesso</span>"; $_SESSION['msg'] = "<span style='color: red;'>Erro ao exportar o BD</span>";
}
Aqui seria a listagem da database que eu queria que ela aparece
<div class="table-responsive">
<table id="DataTable" class="table table-bordered table-striped">
<thead>
<tr>
<th width="10px">ID</th>
<th>Database</th>
<th>Data</th>
<th>Hora</th>
<th idth="53px">Baixar</th>
</tr>
</thead>
<tbody>
<?php $Query = DBRead('database','*'); if (is_array($Query)) { foreach ($Query as $database) { ?>
<tr>
<td><?php echo $database['id']; ?></td>
<td><?php echo $database['dbname']; ?></td>
<td><?php echo $database['data']; ?></td>
<td><?php echo $database['hora']; ?></td>
<td><?php echo $database['nome_arquivo']; ?></td>
Tipo ai esta tipo uma tabela sql
o que eu preciso na verdade é que todos banco de dados baixado ele seja listado ai pra mim baixar
Se puderem me ajudar ai fico grato
Bom dia!
Usei este código para pegar os arquivos da Pasta e listar:
Observação gravar este php dentro da pasta que contenha a pasta Nome da Pasta.