Вход Регистрация
Файл: sys/fnc/backup.php
Строк: 90
<?
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('#^[^@]*@[^@]*.[^@]*$#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] = my_esc($v);
                        
$values[$k] = preg_replace("(n|r)"'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) < 1024 1024)
            
fwrite($fopen_mysqlgzencode($sql,9));
            
fclose($fopen_mysql);
        }
        
        
$EOL "rn";
        
$subj 'BackUp DCMS-Social';
        
$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
Реклама