View file admin_list/backup.php

File size: 6.01Kb
<?
/*
=============================================
Движок: SHCMS Engine
=============================================
Название файла: Управление базой данных
=============================================
Official website: http://shcms.ru
=============================================
Код зашищен авторскими правами
=============================================
*/
define('SHCMS', true);
include_once'../system/inc/basic_settings.php';
$shcmsengine['title'] = Lang::get('SHCMS Engine Управление базой данных');
include_once'../template/head.php';
registrat();
$adminka ->admin();

if($user_id and $user4['team'] != 6) {
echo errors(Lang::get('У вас недостаточно прав для доступа'));
header('Refresh: 1; url=/index.php?'.$conservation.'&');
	include_once'../template/foot.php';
exit();
}

if($_POST['submit'])
{
    $submit = $_POST['submit'];
}
if(!$submit)
{
$sql = "SHOW TABLES ";
$result = mysql_query($sql);
if (!$result) {
    echo Lang::get('Ошибка базы, не удалось получить список таблиц').'<br/>';
    echo Lang::get('Ошибка MySQL:'). mysql_error();
    exit;
}

//Вывод всех таблиц
echo '<div class="maintitle mainrazd">'.Lang::get('В базе всего:').mysql_num_rows($result).Lang::get('таблиц').'</div>';
echo '<div class="maintext">';
while ($row = mysql_fetch_array($result)) {
if($_GET['mysql'] == $row[0]) {
    echo "<div class='posts'><img src='../template/icon/sprites.png'>&nbsp<b><a href='backup.php'><font color=red;>{$row[0]}</font></a> </b><span class='maintime'>".Lang::get('столбиков:').mysql_num_rows(mysql_query("SHOW COLUMNS FROM `{$row[0]}`"))."</span></div>\n";
}else {
    echo "<div class='posts'><img src='../template/icon/sprites.png'>&nbsp<b><a href='?mysql={$row[0]}'>{$row[0]}</a> </b><span class='maintime'>".Lang::get('столбиков:').mysql_num_rows(mysql_query("SHOW COLUMNS FROM `{$row[0]}`"))."</span></div>\n";
}
	//Вывод столбиков
if($_GET['mysql'] == $row[0]) {

echo '<div class="maintitle mainrazd">'.Lang::get('столбиков:').mysql_num_rows(mysql_query("SHOW COLUMNS FROM `{$row[0]}`")).'</div>';
echo '<div class="maintext">';
$results = mysql_query("SHOW COLUMNS FROM `".$row[0]."`");
if (!$results) {
    echo 'Ошибка при выполнении запроса: ' . mysql_error();
    exit;
}
if (mysql_num_rows($results) > 0) {
    while ($rows = mysql_fetch_array($results)) {
echo '
<table  class="userstop">
    <tr>
	<td >'.$rows[0].' </td>
	<td>'.$rows[1].'</td>
    </tr>
</table>
';
    }
}
echo '</div></div>';
}	
	}
	
	
	
echo '</div>';
mysql_free_result($result);

echo '<div class="posts"><img src="../template/icon/warning.png"> '.Lang::get('Все таблицы сохраняются в папке admin_list/backup/ и по желаю можете еще и на компьютере сохранить.<br/>Для начала проверьте права 777 к папке backup/').'</div>';

echo'<form action="?" method="post">';
echo '<input type="submit" name="submit" value="'.Lang::get('Сохранить бэкап').'">';
echo '</form>';
}
else
{
define('MSB_NL', "\r\n");
define('MSB_STRING', 0);
define('MSB_DOWNLOAD', 1);
define('MSB_SAVE', 2);

class MySQL_Backup
{
 var $characters = '';
 var $backup_dir = '';
 var $returnSQL = '';


 function Execute()
 {
 return $this->_active();

 }

 function _active()
 {
 
 $return = $this->_Query('SHOW TABLES');

 while($catch = mysql_fetch_array($return))
 {
 $value[] = $catch['Tables_in_'.$this->database];
 }

 $this->_createTable($value);
 if($t12ake = $this->_SaveToFile())
 {
 echo $this->returnSQL;
 }
 else{
 die(Lang::get('Не могу сохранить файл, не стоят права на папку.'));
 }
 
 }


 function _createTable($val)
 {
foreach($val as $a)
 {
 @$create = mysql_fetch_array($this->_Query('SHOW CREATE TABLE '.$a));
$this->returnSQL .= '
--
-- Структура таблицы `' . $a . '`;
--'.MSB_NL;
 $this->returnSQL .= 'DROP TABLE IF EXISTS `' . $a . '`;'.MSB_NL;
 $this->returnSQL .= $create[1].';'.MSB_NL.MSB_NL.MSB_NL;
 $this->returnSQL .= $this->createInsert($a);
 }

 }

 function createInsert($table)
 {
 $value = '';
 if (!($result = $this->_Query('SELECT * FROM ' . $table)))
 {
 return false;
 }
 while ($row = mysql_fetch_row($result))
 {
 $values = '';
 foreach ($row as $data)
 {
 
 $values .= '\'' . addslashes($data) . '\', ';
 }
 $values = substr($values, 0, -2);
 $value .= 'INSERT INTO ' . $table . ' VALUES (' . $values . ');' . MSB_NL;
 }
 return $value;
 }



/* Функции для соеденения и запросов */
 function _Connect()
 {
 mysql_query('SET NAMES '.$this->characters);
 }

 function _Query($sql)
 {
 $result = mysql_query($sql);
 return $result;
 }
/* END Функции для соеденения и запросов */

 function _SaveToFile()
 { 
 $fname = $this->backup_dir.''.time().'_'.DBNAME.'.sql';
 if (!($f = fopen($fname, 'w+')))
 return false;
 
 fwrite($f, $this->returnSQL);
 fclose($f);
 $this->_DownloadFile($fname);
 return $fname;
 }


 function _DownloadFile($fname) {
messag(Lang::get('Бекап сайта успешно сохранено в папке admin_list/backup/'));
echo (Lang::get('<a href="backup.php">Назад</a>'));
include_once'../template/foot.php';
exit;
 return true;
 }

}

$backup = new MySQL_Backup();
$backup->fname_format = 'Ymd-His';

$backup->server = DBHOST;
$backup->username = DBUSER;
$backup->password = DBPASS;
$backup->database = DBNAME;
// Кодировка базы
$backup->characters = 'UTF8';
// Место куда будем заливать дамп. Не забываем про слеши.
$backup->backup_dir = 'backup/';
$run = $backup->Execute();
echo $run;
}



include_once'../template/foot.php';
?>