示例#1
0
// Get operating system
if (!isset($_POST['operating_system']) || $_POST['operating_system'] != 'linux' && $_POST['operating_system'] != 'windows') {
    set_error('Please select a valid operating system');
} else {
    $operating_system = $_POST['operating_system'];
}
// Work-out file permissions
if ($operating_system == 'windows') {
    $file_mode = '0777';
    $dir_mode = '0777';
} elseif (isset($_POST['world_writeable']) && $_POST['world_writeable'] == 'true') {
    $file_mode = '0777';
    $dir_mode = '0777';
} else {
    $file_mode = default_file_mode('../includes');
    $dir_mode = default_dir_mode('../includes');
}
// End operating system specific code
// Begin database details code
// Check if user has entered a database host
if (!isset($_POST['database_host']) || $_POST['database_host'] == '') {
    set_error('Please enter a database host name');
}
// Check if user has entered a database username
if (!isset($_POST['database_username']) || $_POST['database_username'] == '') {
    set_error('Please enter a database username');
}
// Check if user has entered a database password
if (!isset($_POST['database_password'])) {
    set_error('Please enter a database password');
}
示例#2
0
// Get operating system
if (!isset($_POST['operating_system']) or $_POST['operating_system'] != 'linux' and $_POST['operating_system'] != 'windows') {
    set_error('Please select a valid operating system');
} else {
    $operating_system = $_POST['operating_system'];
}
// Work-out file permissions
if ($operating_system == 'windows') {
    $file_mode = '0666';
    $dir_mode = '0777';
} elseif (isset($_POST['world_writeable']) and $_POST['world_writeable'] == 'true') {
    $file_mode = '0666';
    $dir_mode = '0777';
} else {
    $file_mode = default_file_mode('../temp');
    $dir_mode = default_dir_mode('../temp');
}
// End operating system specific code
// Begin database details code
// Check if user has entered a database host
if (!isset($_POST['database_host']) or $_POST['database_host'] == '') {
    set_error('Please enter a database host name', 'database_host');
} else {
    $database_host = trim($_POST['database_host']);
}
// extract port if available
if (isset($database_port)) {
    unset($database_port);
}
$aMatches = preg_split('/:/s', $database_host, -1, PREG_SPLIT_NO_EMPTY);
if (isset($aMatches[1])) {
示例#3
0
/**
 * fills the tables created by install_tables()
 **/
function fill_tables($database)
{
    global $config, $admin;
    write2log('> [fill_tables()]');
    $errors = array();
    // create a random session name
    list($usec, $sec) = explode(' ', microtime());
    srand((double) $sec + (double) $usec * 100000);
    $session_rand = rand(1000, 9999);
    // Work-out file permissions
    if ($config['operating_system'] == 'windows') {
        $file_mode = '0644';
        $dir_mode = '0755';
    } elseif (isset($config['world_writeable']) && $config['world_writeable'] == 'true') {
        $file_mode = '0666';
        $dir_mode = '0777';
    } else {
        $file_mode = default_file_mode();
        $dir_mode = default_dir_mode('../temp');
    }
    // fill 'hardcoded' settings and class.secure config
    __cat_installer_import_sql(dirname(__FILE__) . '/db/data.sql', $database);
    $current_version = $config['installed_version'];
    // for optional wysiwyg editors; requires name to be something like
    // <editorname>_xxx.zip, which will be prefixed with 'opt_' by the wizard,
    // so second part is the name of the editor
    if ($config['default_wysiwyg'] !== 'edit_area') {
        list($ignore, $config['default_wysiwyg'], $ignore) = explode('_', $config['default_wysiwyg'], 3);
    }
    // fill settings configured by installer
    $settings_rows = "INSERT INTO `" . CAT_TABLE_PREFIX . "settings` " . " (name, value) VALUES " . " ('guid', '" . (isset($config['create_guid']) && $config['create_guid'] == 'true' ? $admin->createGUID($config['guid_prefix']) : '') . "')," . " ('app_name', 'cat{$session_rand}')," . " ('cat_build', '{$current_build}')," . " ('cat_version', '{$current_version}')," . " ('default_language', '" . $config['default_language'] . "')," . " ('default_timezone_string', '" . $config['default_timezone_string'] . "')," . " ('installation_time', '" . time() . "')," . " ('operating_system', '" . $config['operating_system'] . "')," . " ('string_dir_mode', '{$dir_mode}')," . " ('string_file_mode', '{$file_mode}')," . " ('website_title', '" . $config['website_title'] . "')," . " ('wysiwyg_editor', '" . $config['default_wysiwyg'] . "')";
    $database->query($settings_rows);
    if ($database->is_error()) {
        trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR);
        $errors['settings'] = $database->get_error();
    } else {
        write2log('filled table [settings]');
    }
    // Admin group
    $full_system_permissions = 'pages,pages_view,pages_add,pages_add_l0,pages_settings,pages_modify,pages_intro,pages_delete,media,media_view,media_upload,media_rename,media_delete,media_create,addons,modules,modules_view,modules_install,modules_uninstall,templates,templates_view,templates_install,templates_uninstall,languages,languages_view,languages_install,languages_uninstall,settings,settings_basic,settings_advanced,access,users,users_view,users_add,users_modify,users_delete,groups,groups_view,groups_add,groups_modify,groups_delete,admintools,service';
    $insert_admin_group = "INSERT INTO `" . CAT_TABLE_PREFIX . "groups` VALUES ('1', 'Administrators', '{$full_system_permissions}', '', '')";
    $database->query($insert_admin_group);
    if ($database->is_error()) {
        trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR);
        $errors['groups'] = $database->get_error();
    } else {
        write2log('filled table [group]');
    }
    // Admin user
    $insert_admin_user = "******" . CAT_TABLE_PREFIX . "users` (user_id,group_id,groups_id,active,username,password,email,display_name) VALUES ('1','1','1','1','" . $config['admin_username'] . "','" . md5($config['admin_password']) . "','" . $config['admin_email'] . "','Administrator')";
    $database->query($insert_admin_user);
    if ($database->is_error()) {
        trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR);
        $errors['users'] = $database->get_error();
    } else {
        write2log('filled table [users]');
    }
    write2log('< [fill_tables()]');
    return array(count($errors) ? false : true, $errors);
}