Вход Регистрация
Файл: sys/fnc/backup.php
Строк: 91
<?php

if (!isset($hard_process)) {
    
$q = mysql_query("SELECT * FROM `cron` WHERE `id` = 'backup_mysql'");
    if (
mysql_num_rows($q) == 0)
        
mysql_query("INSERT INTO `cron` (`id`, `time`) VALUES ('backup_mysql', '" . time() . "')");
    
$backup = mysql_fetch_assoc($q);
    if (
preg_match('#^[a-z0-9_-.]+@[a-z0-9_-.]+$#iu', $set['mail_backup']) && ($backup['time'] == NULL || $backup['time'] < time() - 60 * 60 * 24)) {
        
mysql_query("UPDATE `cron` SET `time` = '" . time() . "' WHERE `id` = 'backup_mysql'");
        
$hard_process = true;
        if (
function_exists('set_time_limit'))
            @
set_time_limit(600); // Ставим ограничение на 10 минут

        
@unlink(H . "sys/tmp/MySQL.sql.gz");
        
$list_tables = NULL;
        
$tab = mysql_list_tables($set['mysql_db_name']);



        for (
$i = 0; $i < mysql_num_rows($tab); $i++) {
            
$sql = NULL;
            
$table = mysql_tablename($tab, $i);

            
$sql.="DROP TABLE IF EXISTS `$table`;rn";
            
$res = @mysql_query("SHOW CREATE TABLE `$table`");
            
$row = @mysql_fetch_row($res);
            
$sql.=$row[1] . ";rnrn";
            
$res = @mysql_query("SELECT * FROM `$table`");
            if (@
mysql_num_rows($res) > 0) {
                while ((
$row = @mysql_fetch_assoc($res))) {
                    
$keys = @implode("`, `", @array_keys($row));
                    
$values = @array_values($row);
                    foreach (
$values as $k => $v) {

                        
$values[$k] = mysql_real_escape_string($v);
                        
$values[$k] = preg_replace("#(n|r){1,}#", 'n', $values[$k]);
                    }
                    
$values2 = @implode("', '", $values);
                    
$values2 = "'" . $values2 . "'";
                    
$values2 = str_replace("''", "null", $values2);

                    
$sql .= "INSERT INTO `$table` (`$keys`) VALUES ($values2);rn";
                }

                
$sql .= "rnrn";
            }
            
$fopen_mysql = fopen(H . "sys/tmp/MySQL.sql.gz", 'a');
            if (
strlen($sql) < 5 * 1024 * 1024)
                
fwrite($fopen_mysql, gzencode($sql, 9));
            
fclose($fopen_mysql);
        }

        
$EOL = "rn";
        
$subj = 'BackUp DCMS';
        
$bound = "--" . md5(uniqid(time()));

        
$headers = "From: "BackUP@$_SERVER[HTTP_HOST]" <BackUp@$_SERVER[HTTP_HOST]>$EOL";
        
$headers.="To: $set[mail_backup]$EOL";
        
$headers.="Subject: $subj$EOL";
        
$headers.="Mime-Version: 1.0$EOL";
        
$headers.="Content-Type: multipart/mixed; boundary="$bound"$EOL";

        
$body = "--$bound$EOL";
        
$body.="Content-Type: text/plain; charset="utf-8"$EOL";
        
$body.="Content-Transfer-Encoding: 8bit$EOL";
        
$body.=$EOL;
        
$body.="Автоматическая отправка BackUp базы данных";

        
$body.="$EOL--$bound$EOL";

        
$body.="Content-Type: application/x-gzip; name="MySQL.sql.gz"$EOL";
        
$body.="Content-Disposition: attachment; filename="MySQL.sql.gz"$EOL";
        
$body.="Content-Transfer-Encoding: Base64$EOL";
        
$body.=$EOL;
        
$body.=chunk_split(base64_encode(file_get_contents(H . "sys/tmp/MySQL.sql.gz")));

        
$body.="$EOL--$bound$EOL";
        
$body.="Content-Type: text/plain; name="settings_6.2.dat"$EOL";
        
$body.="Content-Disposition: attachment; filename="settings_6.2.dat"$EOL";
        
$body.="Content-Transfer-Encoding: Base64$EOL";
        
$body.=$EOL;
        
$body.=chunk_split(base64_encode(file_get_contents(H . "sys/dat/settings_6.2.dat")));

        
$body.="$EOL--$bound--$EOL";

        
mail("$set[mail_backup]", '=?utf-8?B?' . base64_encode($subj) . '?=', $body, $headers);
        
unlink(H . "sys/tmp/MySQL.sql.gz");
    }
}
Онлайн: 2
Реклама