Beispiel #1
0
function fs_ajax_attach_to_database(&$response)
{
    $host = $_POST['host'];
    $user = $_POST['user'];
    $pass = $_POST['pass'];
    $dbname = $_POST['dbname'];
    $table_prefix = $_POST['table_prefix'];
    $res = fs_save_config_file($host, $user, $pass, $dbname, $table_prefix);
    if ($res != '') {
        ajax_error($response, fs_r('Error creating config file: ') . $res);
        return false;
    } else {
        $response['db_status'] = 'ok';
        fs_sendDBConfig($response);
        if (fs_should_show_use_wp_button()) {
            $response['styles']['switch_to_external_system']['display'] = 'block';
        }
        return true;
    }
}
Beispiel #2
0
function fs_create_new_database($host, $admin_user, $admin_pass, $user, $pass, $dbname, $table_prefix)
{
    if (!fs_is_admin()) {
        return fs_get_db_response("access_denied", "Access denied : fs_create_new_database");
    }
    require_once dirname(__FILE__) . "/ezsql/mysql/ez_sql_mysql.php";
    require_once dirname(__FILE__) . "/ezsql/shared/ez_sql_core.php";
    require_once dirname(__FILE__) . "/db-setup.php";
    if ($user == '' || $pass == '') {
        $user = $admin_user;
        $pass = $admin_pass;
    }
    $conn = new fs_ezSQL_mysql($admin_user, $admin_pass, $dbname, $host);
    $conn->hide_errors();
    if (!fs_config_writeable()) {
        return fs_get_db_response('read_only_config');
    }
    if (!$conn->connect($admin_user, $admin_pass, $host, false)) {
        return fs_get_db_response('db_connect_error', $conn->last_error);
    }
    $db = $conn->query("SHOW DATABASES LIKE '{$dbname}'");
    if ($db === false) {
        return fs_get_db_response('db_access_error', $conn->last_error);
    }
    $existed = $db == 1;
    if ($conn->query("CREATE DATABASE IF NOT EXISTS `{$dbname}`") === false) {
        return fs_get_db_response('db_create_error', $conn->last_error);
    }
    if ($conn->query("GRANT SELECT, INSERT, UPDATE, \n\t\t\t\t\t\t\tDELETE, CREATE, ALTER, INDEX, \n\t\t\t\t\t\t\tDROP, CREATE TEMPORARY TABLES \n\t\t\t\t\t\t\tON `{$dbname}`.*\n\t\t\t\t\t\t\tTO `{$user}` IDENTIFIED BY '{$pass}';") === false) {
        $last_error = $conn->last_error;
        if (!$existed) {
            $conn->query("DROP DATABASE `{$dbname}`");
        }
        return fs_get_db_response('user_create_error', $last_error);
    }
    ob_start();
    $install_res = fs_install_into($user, $pass, $dbname, $host);
    $output = ob_get_clean();
    if (!$install_res) {
        $last_error = $conn->last_error;
        if (!$existed) {
            $conn->query("DROP DATABASE `{$dbname}`");
        }
        return fs_get_db_response('tables_create_error', $last_error . ($output ? ', Output: ' . $output : ''));
    }
    $r = fs_save_config_file($host, $user, $pass, $dbname, $table_prefix);
    if ($r != '') {
        if (!$existed) {
            $conn->query("DROP DATABASE `{$dbname}`");
        }
        return fs_get_db_response('config_save_error', $conn->last_error);
    }
    $conn->disconnect();
    return fs_get_db_response('db_created', $conn->last_error);
}