Вход Регистрация
Файл: adultscript-2.0.3-pro/files/admin/modules/tools/components/backup.php
Строк: 42
<?php
defined
('_VALID') or die('Restricted Accesss!');
set_time_limit(0);
class 
VComponent_Admin_tools_backup
{
    private 
$db;
    public function 
__construct()
    {
        
$this->db VF::factory('database');
    }
    
    public function 
render()
    {
        
$errors        = array();
        
$messages    = array();
        
$warnings    = array();
        
        
$mysqldump    NULL;
        
$paths        = array(
            
'/usr/bin/mysqldump',
            
'/usr/sbin/mysqldump',
            
'/usr/local/bin/mysqldump',
            
'/usr/local/sbin/mysqldump'
        
);
        
        foreach (
$paths as $path) {
            if (
file_exists($path) &&
                
is_file($path) &&
                
is_executable($path)) {
                
$mysqldump $path;
            }
        }
        
        if (isset(
$_POST['submit-backup'])) {
            
$mysqldump VF::factory('filter')->get('mysqldump');
            
            if (!
file_exists($mysqldump) OR
                !
is_file($mysqldump) OR
                !
is_executable($mysqldump)) {
                
$errors[] = 'MySQLDump binary not found or not a valid executable!';
            }
            
            if (!
$errors) {
                
$cfg        = require BASE_DIR.'/config.php';
                
$db_name    $cfg['db_name'];
                
$db_user    $cfg['db_username'];
                
$db_pass    $cfg['db_password'];
                
$db_host    $cfg['db_host'];
                
                
$filename    md5($cfg['secret'].'-'.time()).'.sql';
                
$cmd        $mysqldump.' -u '.$db_user.' -p'.$db_pass.' '.$db_name.' > '.TMP_DIR.'/downloads/'.$filename;
                
exec($cmd$output$return);
                if (
$return === 0) {
                    
VDownload::force(TMP_DIR.'/downloads/'.$filename$filename'txt');
                } else {
                    
$errors[] = 'Failed to execute the mysqldump cmd: '.$cmd;
                }
            }
        }
        
        
$tpl VF::factory('template');
        
$tpl->menu             'main';
        
$tpl->submenu        'tools';
        
$tpl->meta_title    'Tools::Database Backup';
        
$tpl->errors        $errors;
        
$tpl->messages        $messages;
        
$tpl->warnings        $warnings;
        
$tpl->mysqldump        $mysqldump;
        
$tpl->load(array('header''tools_backup''footer'));
        
$tpl->display();
    }
}
Онлайн: 1
Реклама