Вход Регистрация
Файл: upload-2031-rs1/install/controller/step_3.php
Строк: 314
<?php
class ControllerStep3 extends Controller {
    private 
$error = array();

    public function 
index() {
        if ((
$this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
            
$this->load->model('install');

            
$this->model_install->database($this->request->post);

            
$output  '<?php' "n";
            
$output .= '// HTTP' "n";
            
$output .= 'define('HTTP_SERVER', '' . HTTP_OPENCART . '');' "nn";

            
$output .= '// HTTPS' "n";
            
$output .= 'define('HTTPS_SERVER', '' . HTTP_OPENCART . '');' "nn";

            
$output .= '// DIR' "n";
            
$output .= 'define('DIR_APPLICATION', '' . DIR_OPENCART . 'catalog/');' "n";
            
$output .= 'define('DIR_SYSTEM', '' . DIR_OPENCART . 'system/');' "n";
            
$output .= 'define('DIR_LANGUAGE', '' . DIR_OPENCART . 'catalog/language/');' "n";
            
$output .= 'define('DIR_TEMPLATE', '' . DIR_OPENCART . 'catalog/view/theme/');' "n";
            
$output .= 'define('DIR_CONFIG', '' . DIR_OPENCART . 'system/config/');' "n";
            
$output .= 'define('DIR_IMAGE', '' . DIR_OPENCART . 'image/');' "n";
            
$output .= 'define('DIR_CACHE', '' . DIR_OPENCART . 'system/cache/');' "n";
            
$output .= 'define('DIR_DOWNLOAD', '' . DIR_OPENCART . 'system/download/');' "n";
            
$output .= 'define('DIR_UPLOAD', '' . DIR_OPENCART . 'system/upload/');' "n";
            
$output .= 'define('DIR_MODIFICATION', '' . DIR_OPENCART . 'system/modification/');' "n";
            
$output .= 'define('DIR_LOGS', '' . DIR_OPENCART . 'system/logs/');' "nn";

            
$output .= '// DB' "n";
            
$output .= 'define('DB_DRIVER', '' . addslashes($this->request->post['db_driver']) . '');' "n";
            
$output .= 'define('DB_HOSTNAME', '' . addslashes($this->request->post['db_hostname']) . '');' "n";
            
$output .= 'define('DB_USERNAME', '' . addslashes($this->request->post['db_username']) . '');' "n";
            
$output .= 'define('DB_PASSWORD', '' . addslashes(html_entity_decode($this->request->post['db_password'], ENT_QUOTES, 'UTF-8')) . '');' "n";
            
$output .= 'define('DB_DATABASE', '' . addslashes($this->request->post['db_database']) . '');' "n";
            
$output .= 'define('DB_PORT', '' . addslashes($this->request->post['db_port']) . '');' "n";
            
$output .= 'define('DB_PREFIX', '' . addslashes($this->request->post['db_prefix']) . '');' "n";

            
$file fopen(DIR_OPENCART 'config.php''w');

            
fwrite($file$output);

            
fclose($file);

            
$output  '<?php' "n";
            
$output .= '// HTTP' "n";
            
$output .= 'define('HTTP_SERVER', '' . HTTP_OPENCART . 'admin/');' "n";
            
$output .= 'define('HTTP_CATALOG', '' . HTTP_OPENCART . '');' "nn";

            
$output .= '// HTTPS' "n";
            
$output .= 'define('HTTPS_SERVER', '' . HTTP_OPENCART . 'admin/');' "n";
            
$output .= 'define('HTTPS_CATALOG', '' . HTTP_OPENCART . '');' "nn";

            
$output .= '// DIR' "n";
            
$output .= 'define('DIR_APPLICATION', '' . DIR_OPENCART . 'admin/');' "n";
            
$output .= 'define('DIR_SYSTEM', '' . DIR_OPENCART . 'system/');' "n";
            
$output .= 'define('DIR_LANGUAGE', '' . DIR_OPENCART . 'admin/language/');' "n";
            
$output .= 'define('DIR_TEMPLATE', '' . DIR_OPENCART . 'admin/view/template/');' "n";
            
$output .= 'define('DIR_CONFIG', '' . DIR_OPENCART . 'system/config/');' "n";
            
$output .= 'define('DIR_IMAGE', '' . DIR_OPENCART . 'image/');' "n";
            
$output .= 'define('DIR_CACHE', '' . DIR_OPENCART . 'system/cache/');' "n";
            
$output .= 'define('DIR_DOWNLOAD', '' . DIR_OPENCART . 'system/download/');' "n";
            
$output .= 'define('DIR_UPLOAD', '' . DIR_OPENCART . 'system/upload/');' "n";
            
$output .= 'define('DIR_LOGS', '' . DIR_OPENCART . 'system/logs/');' "n";
            
$output .= 'define('DIR_MODIFICATION', '' . DIR_OPENCART . 'system/modification/');' "n";
            
$output .= 'define('DIR_CATALOG', '' . DIR_OPENCART . 'catalog/');' "nn";

            
$output .= '// DB' "n";
            
$output .= 'define('DB_DRIVER', '' . addslashes($this->request->post['db_driver']) . '');' "n";
            
$output .= 'define('DB_HOSTNAME', '' . addslashes($this->request->post['db_hostname']) . '');' "n";
            
$output .= 'define('DB_USERNAME', '' . addslashes($this->request->post['db_username']) . '');' "n";
            
$output .= 'define('DB_PASSWORD', '' . addslashes(html_entity_decode($this->request->post['db_password'], ENT_QUOTES, 'UTF-8')) . '');' "n";
            
$output .= 'define('DB_DATABASE', '' . addslashes($this->request->post['db_database']) . '');' "n";
            
$output .= 'define('DB_PORT', '' . addslashes($this->request->post['db_port']) . '');' "n";
            
$output .= 'define('DB_PREFIX', '' . addslashes($this->request->post['db_prefix']) . '');' "n";

            
$file fopen(DIR_OPENCART 'admin/config.php''w');

            
fwrite($file$output);

            
fclose($file);

            
$this->response->redirect($this->url->link('step_4'));
        }

        
$this->document->setTitle($this->language->get('heading_step_3'));

        
$data['heading_step_3'] = $this->language->get('heading_step_3');
        
$data['heading_step_3_small'] = $this->language->get('heading_step_3_small');

        
$data['text_license'] = $this->language->get('text_license');
        
$data['text_installation'] = $this->language->get('text_installation');
        
$data['text_configuration'] = $this->language->get('text_configuration');
        
$data['text_finished'] = $this->language->get('text_finished');
        
$data['text_db_connection'] = $this->language->get('text_db_connection');
        
$data['text_db_administration'] = $this->language->get('text_db_administration');
        
$data['text_mysqli'] = $this->language->get('text_mysqli');
        
$data['text_mpdo'] = $this->language->get('text_mpdo');
        
$data['text_pgsql'] = $this->language->get('text_pgsql');

        
$data['entry_db_driver'] = $this->language->get('entry_db_driver');
        
$data['entry_db_hostname'] = $this->language->get('entry_db_hostname');
        
$data['entry_db_username'] = $this->language->get('entry_db_username');
        
$data['entry_db_password'] = $this->language->get('entry_db_password');
        
$data['entry_db_database'] = $this->language->get('entry_db_database');
        
$data['entry_db_port'] = $this->language->get('entry_db_port');
        
$data['entry_db_prefix'] = $this->language->get('entry_db_prefix');
        
$data['entry_username'] = $this->language->get('entry_username');
        
$data['entry_password'] = $this->language->get('entry_password');
        
$data['entry_email'] = $this->language->get('entry_email');

        
$data['button_continue'] = $this->language->get('button_continue');
        
$data['button_back'] = $this->language->get('button_back');

        if (isset(
$this->error['warning'])) {
            
$data['error_warning'] = $this->error['warning'];
        } else {
            
$data['error_warning'] = '';
        }

        if (isset(
$this->error['db_hostname'])) {
            
$data['error_db_hostname'] = $this->error['db_hostname'];
        } else {
            
$data['error_db_hostname'] = '';
        }

        if (isset(
$this->error['db_username'])) {
            
$data['error_db_username'] = $this->error['db_username'];
        } else {
            
$data['error_db_username'] = '';
        }

        if (isset(
$this->error['db_database'])) {
            
$data['error_db_database'] = $this->error['db_database'];
        } else {
            
$data['error_db_database'] = '';
        }
        
        if (isset(
$this->error['db_port'])) {
            
$data['error_db_port'] = $this->error['db_port'];
        } else {
            
$data['error_db_port'] = '';
        }
        
        if (isset(
$this->error['db_prefix'])) {
            
$data['error_db_prefix'] = $this->error['db_prefix'];
        } else {
            
$data['error_db_prefix'] = '';
        }

        if (isset(
$this->error['username'])) {
            
$data['error_username'] = $this->error['username'];
        } else {
            
$data['error_username'] = '';
        }

        if (isset(
$this->error['password'])) {
            
$data['error_password'] = $this->error['password'];
        } else {
            
$data['error_password'] = '';
        }

        if (isset(
$this->error['email'])) {
            
$data['error_email'] = $this->error['email'];
        } else {
            
$data['error_email'] = '';
        }

        
$data['action'] = $this->url->link('step_3');

        if (isset(
$this->request->post['db_driver'])) {
            
$data['db_driver'] = $this->request->post['db_driver'];
        } else {
            
$data['db_driver'] = '';
        }

        if (isset(
$this->request->post['db_hostname'])) {
            
$data['db_hostname'] = $this->request->post['db_hostname'];
        } else {
            
$data['db_hostname'] = 'localhost';
        }

        if (isset(
$this->request->post['db_username'])) {
            
$data['db_username'] = $this->request->post['db_username'];
        } else {
            
$data['db_username'] = '';
        }

        if (isset(
$this->request->post['db_password'])) {
            
$data['db_password'] = $this->request->post['db_password'];
        } else {
            
$data['db_password'] = '';
        }

        if (isset(
$this->request->post['db_database'])) {
            
$data['db_database'] = $this->request->post['db_database'];
        } else {
            
$data['db_database'] = '';
        }
        
        if (isset(
$this->request->post['db_port'])) {
            
$data['db_port'] = $this->request->post['db_port'];
        } else {
            
$data['db_port'] = '3306';
        }
        
        if (isset(
$this->request->post['db_prefix'])) {
            
$data['db_prefix'] = $this->request->post['db_prefix'];
        } else {
            
$data['db_prefix'] = 'oc_';
        }

        if (isset(
$this->request->post['username'])) {
            
$data['username'] = $this->request->post['username'];
        } else {
            
$data['username'] = 'admin';
        }

        if (isset(
$this->request->post['password'])) {
            
$data['password'] = $this->request->post['password'];
        } else {
            
$data['password'] = '';
        }

        if (isset(
$this->request->post['email'])) {
            
$data['email'] = $this->request->post['email'];
        } else {
            
$data['email'] = '';
        }

        
$data['mysqli'] = extension_loaded('mysqli');
        
$data['mysql'] = extension_loaded('mysql');
        
$data['pdo'] = extension_loaded('pdo');
        
$data['pgsql'] = extension_loaded('pgsql');

        
$data['back'] = $this->url->link('step_2');

        
$data['footer'] = $this->load->controller('footer');
        
$data['header'] = $this->load->controller('header');

        
$this->response->setOutput($this->load->view('step_3.tpl'$data));
    }

    private function 
validate() {
        if (!
$this->request->post['db_hostname']) {
            
$this->error['db_hostname'] = $this->language->get('error_db_hostname');
        }

        if (!
$this->request->post['db_username']) {
            
$this->error['db_username'] = $this->language->get('error_db_username');
        }

        if (!
$this->request->post['db_database']) {
            
$this->error['db_database'] = $this->language->get('error_db_database');
        }

        if (!
$this->request->post['db_port']) {
            
$this->error['db_port'] = $this->language->get('error_db_port');
        }        

        if (
$this->request->post['db_prefix'] && preg_match('/[^a-z0-9_]/'$this->request->post['db_prefix'])) {
            
$this->error['db_prefix'] = $this->language->get('error_db_prefix');
        }

        if (
$this->request->post['db_driver'] == 'mysqli') {
            
$mysql = @new mysqli($this->request->post['db_hostname'], $this->request->post['db_username'], $this->request->post['db_password'], $this->request->post['db_database'], $this->request->post['db_port']);

            if (
$mysql->connect_error) {
                
$this->error['warning'] = $mysql->connect_error;
            } else {
                
$mysql->close();
            }
        }

        if (!
$this->request->post['username']) {
            
$this->error['username'] = $this->language->get('error_username');
        }

        if (!
$this->request->post['password']) {
            
$this->error['password'] = $this->language->get('error_password');
        }

        if ((
utf8_strlen($this->request->post['email']) > 96) || !preg_match('/^[^@]+@.*.[a-z]{2,15}$/i'$this->request->post['email'])) {
            
$this->error['email'] = $this->language->get('error_email');
        }

        if (!
is_writable(DIR_OPENCART 'config.php')) {
            
$this->error['warning'] = $this->language->get('error_config') . DIR_OPENCART 'config.php!';
        }

        if (!
is_writable(DIR_OPENCART 'admin/config.php')) {
            
$this->error['warning'] = $this->language->get('error_config') . DIR_OPENCART 'admin/config.php!';
        }

        return !
$this->error;
    }
}
Онлайн: 1
Реклама