diff options
Diffstat (limited to 'phpBB/admin/admin_db_utilities.php')
-rw-r--r-- | phpBB/admin/admin_db_utilities.php | 749 |
1 files changed, 373 insertions, 376 deletions
diff --git a/phpBB/admin/admin_db_utilities.php b/phpBB/admin/admin_db_utilities.php index 00762f567c..e1599fb272 100644 --- a/phpBB/admin/admin_db_utilities.php +++ b/phpBB/admin/admin_db_utilities.php @@ -30,21 +30,20 @@ define('IN_PHPBB', 1); -if( !empty($setmodules) ) +if ( !empty($setmodules) ) { - $filename = basename(__FILE__); - $module['General']['Backup_DB'] = $filename . "?perform=backup"; - if(@phpversion() >= '4.0.0') - { - $file_uploads = @ini_get('file_uploads'); - } - else + if ( !$acl->get_acl_admin('general') ) { - $file_uploads = @get_cfg_var('file_uploads'); + return; } + + $filename = basename(__FILE__); + $module['DB']['DB_Backup'] = $filename . "?perform=backup"; + + $file_uploads = @ini_get('file_uploads'); if( ($file_uploads != 0 || empty($file_uploads)) && (strtolower($file_uploads) != 'off') && (@phpversion() != '4.0.4pl1') ) { - $module['General']['Restore_DB'] = $filename . "?perform=restore"; + $module['DB']['DB_Restore'] = $filename . "?perform=restore"; } return; @@ -57,12 +56,12 @@ $no_page_header = TRUE; $phpbb_root_path = "../"; require($phpbb_root_path . 'extension.inc'); require('pagestart.' . $phpEx); -include($phpbb_root_path . 'includes/sql_parse.'.$phpEx); +include($phpbb_root_path . 'includes/functions_admin.'.$phpEx); -// -// Set VERBOSE to 1 for debugging info.. -// -define("VERBOSE", 0); +if ( !$acl->get_acl_admin('general') ) +{ + message_die(MESSAGE, $lang['No_admin']); +} // // Increase maximum execution time, but don't complain about it if it isn't @@ -70,6 +69,364 @@ define("VERBOSE", 0); // @set_time_limit(1200); +// +// Begin program proper +// + +if ( isset($HTTP_GET_VARS['perform']) || isset($HTTP_POST_VARS['perform']) ) +{ + $perform = ( isset($HTTP_POST_VARS['perform']) ) ? $HTTP_POST_VARS['perform'] : $HTTP_GET_VARS['perform']; + + switch($perform) + { + case 'backup': + + if ( SQL_LAYER == 'oracle' || SQL_LAYER == 'odbc' || SQL_LAYER == 'mssql' ) + { + switch ( SQL_LAYER ) + { + case 'oracle': + $db_type = 'Oracle'; + break; + case 'odbc': + $db_type = 'ODBC'; + break; + case 'mssql': + $db_type = 'MSSQL'; + break; + } + + include('page_header_admin.'.$phpEx); + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Information'], + "MESSAGE_TEXT" => $lang['Backups_not_supported']) + ); + + break; + } + + $tables = array('auth_access', 'banlist', 'categories', 'config', 'disallow', 'forums', 'forum_prune', 'groups', 'posts', 'posts_text', 'privmsgs', 'privmsgs_text', 'ranks', 'search_results', 'search_results', 'search_wordlist', 'search_wordmatch', 'sessions', 'smilies', 'themes', 'themes_name', 'topics', 'topics_watch', 'user_group', 'users', 'vote_desc', 'vote_results', 'vote_voters', 'words'); + + $additional_tables = (isset($HTTP_POST_VARS['additional_tables'])) ? $HTTP_POST_VARS['additional_tables'] : ( ( isset($HTTP_GET_VARS['additional_tables']) ) ? $HTTP_GET_VARS['additional_tables'] : "" ); + + $backup_type = (isset($HTTP_POST_VARS['backup_type'])) ? $HTTP_POST_VARS['backup_type'] : ( ( isset($HTTP_GET_VARS['backup_type']) ) ? $HTTP_GET_VARS['backup_type'] : "" ); + + $gzipcompress = (!empty($HTTP_POST_VARS['gzipcompress'])) ? $HTTP_POST_VARS['gzipcompress'] : ( ( !empty($HTTP_GET_VARS['gzipcompress']) ) ? $HTTP_GET_VARS['gzipcompress'] : 0 ); + + if ( !empty($additional_tables) ) + { + if ( ereg(",", $additional_tables)) + { + $additional_tables = split(",", $additional_tables); + + for($i = 0; $i < count($additional_tables); $i++) + { + $tables[] = trim($additional_tables[$i]); + } + + } + else + { + $tables[] = trim($additional_tables); + } + } + + if ( !isset($HTTP_POST_VARS['backupstart']) && !isset($HTTP_GET_VARS['backupstart'])) + { + $s_hidden_fields = '<input type="hidden" name="perform" value="backup" /><input type="hidden" name="drop" value="1" /><input type="hidden" name="perform" value="$perform" />'; + + page_header($lang['DB']); +?> + +<h1><?php echo $lang['DB_Backup']; ?></h1> + +<p><?php echo $lang['Backup_explain']; ?></p> + +<form method="post" action="<?php echo "admin_db_utilities.$phpEx$SID"; ?>"><table cellspacing="1" cellpadding="4" border="0" align="center" bgcolor="#98AAB1"> + <tr> + <th colspan="2"><?php echo $lang['Backup_options']; ?></th> + </tr> + <tr> + <td class="row2"><?php echo $lang['Full_backup']; ?></td> + <td class="row2"><input type="radio" name="backup_type" value="full" checked /></td> + </tr> + <tr> + <td class="row1"><?php echo $lang['Structure_backup']; ?></td> + <td class="row1"><input type="radio" name="backup_type" value="structure" /></td> + </tr> + <tr> + <td class="row2"><?php echo $lang['Data_backup']; ?></td> + <td class="row2"><input type="radio" name="backup_type" value="data" /></td> + </tr> + <tr> + <td class="row1"><?php echo $lang['Additional_tables']; ?></td> + <td class="row1"><input type="text" name="additional_tables" /></td> + </tr> + <tr> + <td class="row1"><?php echo $lang['Gzip_compress']; ?></td> + <td class="row1"><?php echo $lang['No']; ?> <input type="radio" name="gzipcompress" value="0" checked /> <?php echo $lang['Yes']; ?> <input type="radio" name="gzipcompress" value="1" /></td> + </tr> + <tr> + <td class="cat" colspan="2" align="center"><?php echo $s_hidden_fields; ?><input type="submit" name="backupstart" value="<?php echo $lang['Start_backup']; ?>" class="mainoption" /></td> + </tr> +</table></form> + +<?php + + break; + + } + else if ( !isset($HTTP_POST_VARS['startdownload']) && !isset($HTTP_GET_VARS['startdownload']) ) + { + $template->assign_vars(array( + "META" => "<meta http-equiv=\"refresh\" content=\"0;url=admin_db_utilities.$phpEx?perform=backup&additional_tables=" . quotemeta($additional_tables) . "&backup_type=$backup_type&drop=1&backupstart=1&gzipcompress=$gzipcompress&startdownload=1\">", + + "MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Backup'], + "MESSAGE_TEXT" => $lang['Backup_download']) + ); + + include('page_header_admin.php'); + + include('page_footer_admin.'.$phpEx); + + } + + header("Pragma: no-cache"); + $do_gzip_compress = FALSE; + + if( $gzipcompress ) + { + $phpver = phpversion(); + + if($phpver >= "4.0") + { + if(extension_loaded("zlib")) + { + $do_gzip_compress = TRUE; + } + } + } + if($do_gzip_compress) + { + @ob_start(); + @ob_implicit_flush(0); + header("Content-Type: text/x-delimtext; name=\"phpbb_db_backup.sql.gz\""); + header("Content-disposition: attachment; filename=phpbb_db_backup.sql.gz"); + } + else + { + header("Content-Type: text/x-delimtext; name=\"phpbb_db_backup.sql\""); + header("Content-disposition: attachment; filename=phpbb_db_backup.sql"); + } + + // + // Build the sql script file... + // + echo "#\n"; + echo "# phpBB Backup Script\n"; + echo "# Dump of tables for $dbname\n"; + echo "#\n# DATE : " . gmdate("d-m-Y H:i:s", time()) . " GMT\n"; + echo "#\n"; + + if(SQL_LAYER == 'postgresql') + { + echo "\n" . pg_get_sequences("\n", $backup_type); + } + for($i = 0; $i < count($tables); $i++) + { + $table_name = $tables[$i]; + if(SQL_LAYER != 'mysql4') + { + $table_def_function = "get_table_def_" . SQL_LAYER; + $table_content_function = "get_table_content_" . SQL_LAYER; + } + else + { + $table_def_function = "get_table_def_mysql"; + $table_content_function = "get_table_content_mysql"; + } + + if($backup_type != 'data') + { + echo "#\n# TABLE: " . $table_prefix . $table_name . "\n#\n"; + echo $table_def_function($table_prefix . $table_name, "\n") . "\n"; + } + + if($backup_type != 'structure') + { + $table_content_function($table_prefix . $table_name, "output_table_content"); + } + } + + if($do_gzip_compress) + { + $Size = ob_get_length(); + $Crc = crc32(ob_get_contents()); + $contents = gzcompress(ob_get_contents()); + ob_end_clean(); + echo "\x1f\x8b\x08\x00\x00\x00\x00\x00".substr($contents, 0, strlen($contents) - 4).gzip_PrintFourChars($Crc).gzip_PrintFourChars($Size); + } + exit; + + break; + + case 'restore': + + if ( !isset($restore_start) ) + { + $s_hidden_fields = '<input type="hidden" name="perform" value="restore" /><input type="hidden" name="perform" value="$perform" />'; + + page_header($lang['DB']); + +?> + +<h1><?php echo $lang['DB_Restore']; ?></h1> + +<p><?php echo $lang['Restore_explain']; ?></p> + +<form enctype="multipart/form-data" method="post" action="<?php echo "admin_db_utilities.$phpEx$SID"; ?>"><table cellspacing="1" cellpadding="4" border="0" align="center" bgcolor="#98AAB1"> + <tr> + <th class="th"><?php echo $lang['Select_file']; ?></th> + </tr> + <tr> + <td class="row1" align="center"><?php echo $s_hidden_fields; ?> <input type="file" name="backup_file"> <input type="submit" name="restore_start" value="<?php echo $lang['Start_Restore']; ?>" class="mainoption" /> </td> + </tr> +</table></form> + +<?php + + break; + + } + else + { + // + // Handle the file upload .... + // If no file was uploaded report an error... + // + $backup_file_name = (!empty($HTTP_POST_FILES['backup_file']['name'])) ? $HTTP_POST_FILES['backup_file']['name'] : ""; + $backup_file_tmpname = ($HTTP_POST_FILES['backup_file']['tmp_name'] != "none") ? $HTTP_POST_FILES['backup_file']['tmp_name'] : ""; + $backup_file_type = (!empty($HTTP_POST_FILES['backup_file']['type'])) ? $HTTP_POST_FILES['backup_file']['type'] : ""; + + if ( $backup_file_tmpname == "" || $backup_file_name == "" ) + { + message_die(MESSAGE, $lang['Restore_Error_no_file']); + } + // + // If I file was actually uploaded, check to make sure that we + // are actually passed the name of an uploaded file, and not + // a hackers attempt at getting us to process a local system + // file. + // + if( file_exists($backup_file_tmpname) ) + { + if( preg_match("/^(text\/[a-zA-Z]+)|(application\/(x\-)?gzip(\-compressed)?)|(application\/octet-stream)$/is", $backup_file_type) ) + { + if( preg_match("/\.gz$/is",$backup_file_name) ) + { + $do_gzip_compress = FALSE; + $phpver = phpversion(); + if($phpver >= "4.0") + { + if(extension_loaded("zlib")) + { + $do_gzip_compress = TRUE; + } + } + + if($do_gzip_compress) + { + $gz_ptr = gzopen($backup_file_tmpname, 'rb'); + $sql_query = ""; + while( !gzeof($gz_ptr) ) + { + $sql_query .= gzgets($gz_ptr, 100000); + } + } + else + { + include('page_header_admin.'.$phpEx); + message_die(ERROR, $lang['Restore_Error_decompress']); + } + } + else + { + $sql_query = fread(fopen($backup_file_tmpname, 'r'), filesize($backup_file_tmpname)); + } + // + // Comment this line out to see if this fixes the stuff... + // + //$sql_query = stripslashes($sql_query); + } + else + { + include('page_header_admin.'.$phpEx); + message_die(ERROR, $lang['Restore_Error_filename'] ." $backup_file_type $backup_file_name"); + } + } + else + { + include('page_header_admin.'.$phpEx); + message_die(ERROR, $lang['Restore_Error_uploading']); + } + + if($sql_query != "") + { + // Strip out sql comments... + $sql_query = remove_remarks($sql_query); + $pieces = split_sql_file($sql_query, ";"); + + $sql_count = count($pieces); + for($i = 0; $i < $sql_count; $i++) + { + $sql = trim($pieces[$i]); + + if(!empty($sql) and $sql[0] != "#") + { + if(DEBUG == 1) + { + echo "Executing: $sql\n<br>"; + flush(); + } + + $result = $db->sql_query($sql); + + if(!$result && ( !(SQL_LAYER == 'postgresql' && eregi("drop table", $sql) ) ) ) + { + //include('page_header_admin.'.$phpEx); + // echo "~~$sql~~"; + message_die(ERROR, "Error importing backup file", "", __LINE__, __FILE__, $sql); + } + } + } + } + + include('page_header_admin.'.$phpEx); + + $message = $lang['Restore_success']; + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Restore'], + "MESSAGE_TEXT" => $message) + ); + + break; + } + break; + } +} + +?> + + </td> + </tr> +</table> + +<?php + +page_footer(); + // ----------------------- // The following functions are adapted from phpMyAdmin and upgrade_20.php // @@ -83,8 +440,6 @@ function gzip_PrintFourChars($Val) return $return; } - - // // This function is used for grabbing the sequences for postgres... // @@ -410,10 +765,6 @@ function get_table_def_mysql($table, $crlf) // Get any Indexed fields from the database... // $result = $db->sql_query($key_query); - if(!$result) - { - message_die(GENERAL_ERROR, "FAILED IN get_table_def (show keys)", "", __LINE__, __FILE__, $key_query); - } while($row = $db->sql_fetchrow($result)) { @@ -667,358 +1018,4 @@ function output_table_content($content) // End Functions // ------------- - -// -// Begin program proper -// - -if( isset($HTTP_GET_VARS['perform']) || isset($HTTP_POST_VARS['perform']) ) -{ - $perform = (isset($HTTP_POST_VARS['perform'])) ? $HTTP_POST_VARS['perform'] : $HTTP_GET_VARS['perform']; - - switch($perform) - { - case 'backup': - - if( SQL_LAYER == 'oracle' || SQL_LAYER == 'odbc' || SQL_LAYER == 'mssql' ) - { - switch(SQL_LAYER) - { - case 'oracle': - $db_type = "Oracle"; - break; - case 'odbc': - $db_type = "ODBC"; - break; - case 'mssql': - $db_type = "MSSQL"; - break; - } - - include('page_header_admin.'.$phpEx); - - $template->set_filenames(array( - "body" => "admin/admin_message_body.tpl") - ); - - $template->assign_vars(array( - "MESSAGE_TITLE" => $lang['Information'], - "MESSAGE_TEXT" => $lang['Backups_not_supported']) - ); - - $template->pparse("body"); - - break; - } - - $tables = array('auth_access', 'banlist', 'categories', 'config', 'disallow', 'forums', 'forum_prune', 'groups', 'posts', 'posts_text', 'privmsgs', 'privmsgs_text', 'ranks', 'search_results', 'search_results', 'search_wordlist', 'search_wordmatch', 'sessions', 'smilies', 'themes', 'themes_name', 'topics', 'topics_watch', 'user_group', 'users', 'vote_desc', 'vote_results', 'vote_voters', 'words'); - - - $additional_tables = (isset($HTTP_POST_VARS['additional_tables'])) ? $HTTP_POST_VARS['additional_tables'] : ( (isset($HTTP_GET_VARS['additional_tables'])) ? $HTTP_GET_VARS['additional_tables'] : "" ); - - $backup_type = (isset($HTTP_POST_VARS['backup_type'])) ? $HTTP_POST_VARS['backup_type'] : ( (isset($HTTP_GET_VARS['backup_type'])) ? $HTTP_GET_VARS['backup_type'] : "" ); - - $gzipcompress = (!empty($HTTP_POST_VARS['gzipcompress'])) ? $HTTP_POST_VARS['gzipcompress'] : ( (!empty($HTTP_GET_VARS['gzipcompress'])) ? $HTTP_GET_VARS['gzipcompress'] : 0 ); - - if(!empty($additional_tables)) - { - if(ereg(",", $additional_tables)) - { - $additional_tables = split(",", $additional_tables); - - for($i = 0; $i < count($additional_tables); $i++) - { - $tables[] = trim($additional_tables[$i]); - } - - } - else - { - $tables[] = trim($additional_tables); - } - } - - if( !isset($HTTP_POST_VARS['backupstart']) && !isset($HTTP_GET_VARS['backupstart'])) - { - include('page_header_admin.'.$phpEx); - - $template->set_filenames(array( - "body" => "admin/db_utils_backup_body.tpl") - ); - - $s_hidden_fields = "<input type=\"hidden\" name=\"perform\" value=\"backup\" /><input type=\"hidden\" name=\"drop\" value=\"1\" /><input type=\"hidden\" name=\"perform\" value=\"$perform\" />"; - - $template->assign_vars(array( - "L_DATABASE_BACKUP" => $lang['Database_Utilities'] . " : " . $lang['Backup'], - "L_BACKUP_EXPLAIN" => $lang['Backup_explain'], - "L_FULL_BACKUP" => $lang['Full_backup'], - "L_STRUCTURE_BACKUP" => $lang['Structure_backup'], - "L_DATA_BACKUP" => $lang['Data_backup'], - "L_ADDITIONAL_TABLES" => $lang['Additional_tables'], - "L_START_BACKUP" => $lang['Start_backup'], - "L_BACKUP_OPTIONS" => $lang['Backup_options'], - "L_GZIP_COMPRESS" => $lang['Gzip_compress'], - "L_NO" => $lang['No'], - "L_YES" => $lang['Yes'], - - "S_HIDDEN_FIELDS" => $s_hidden_fields, - "S_DBUTILS_ACTION" => append_sid("admin_db_utilities.$phpEx")) - ); - $template->pparse("body"); - - break; - - } - else if( !isset($HTTP_POST_VARS['startdownload']) && !isset($HTTP_GET_VARS['startdownload']) ) - { - $template->set_filenames(array( - "body" => "admin/admin_message_body.tpl") - ); - - $template->assign_vars(array( - "META" => "<meta http-equiv=\"refresh\" content=\"0;url=admin_db_utilities.$phpEx?perform=backup&additional_tables=" . quotemeta($additional_tables) . "&backup_type=$backup_type&drop=1&backupstart=1&gzipcompress=$gzipcompress&startdownload=1\">", - - "MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Backup'], - "MESSAGE_TEXT" => $lang['Backup_download']) - ); - - include('page_header_admin.php'); - - $template->pparse("body"); - - include('page_footer_admin.'.$phpEx); - - } - header("Pragma: no-cache"); - $do_gzip_compress = FALSE; - if( $gzipcompress ) - { - $phpver = phpversion(); - - if($phpver >= "4.0") - { - if(extension_loaded("zlib")) - { - $do_gzip_compress = TRUE; - } - } - } - if($do_gzip_compress) - { - @ob_start(); - @ob_implicit_flush(0); - header("Content-Type: text/x-delimtext; name=\"phpbb_db_backup.sql.gz\""); - header("Content-disposition: attachment; filename=phpbb_db_backup.sql.gz"); - } - else - { - header("Content-Type: text/x-delimtext; name=\"phpbb_db_backup.sql\""); - header("Content-disposition: attachment; filename=phpbb_db_backup.sql"); - } - - // - // Build the sql script file... - // - echo "#\n"; - echo "# phpBB Backup Script\n"; - echo "# Dump of tables for $dbname\n"; - echo "#\n# DATE : " . gmdate("d-m-Y H:i:s", time()) . " GMT\n"; - echo "#\n"; - - if(SQL_LAYER == 'postgresql') - { - echo "\n" . pg_get_sequences("\n", $backup_type); - } - for($i = 0; $i < count($tables); $i++) - { - $table_name = $tables[$i]; - if(SQL_LAYER != 'mysql4') - { - $table_def_function = "get_table_def_" . SQL_LAYER; - $table_content_function = "get_table_content_" . SQL_LAYER; - } - else - { - $table_def_function = "get_table_def_mysql"; - $table_content_function = "get_table_content_mysql"; - } - - if($backup_type != 'data') - { - echo "#\n# TABLE: " . $table_prefix . $table_name . "\n#\n"; - echo $table_def_function($table_prefix . $table_name, "\n") . "\n"; - } - - if($backup_type != 'structure') - { - $table_content_function($table_prefix . $table_name, "output_table_content"); - } - } - - if($do_gzip_compress) - { - $Size = ob_get_length(); - $Crc = crc32(ob_get_contents()); - $contents = gzcompress(ob_get_contents()); - ob_end_clean(); - echo "\x1f\x8b\x08\x00\x00\x00\x00\x00".substr($contents, 0, strlen($contents) - 4).gzip_PrintFourChars($Crc).gzip_PrintFourChars($Size); - } - exit; - - break; - - case 'restore': - if(!isset($restore_start)) - { - // - // Define Template files... - // - include('page_header_admin.'.$phpEx); - - $template->set_filenames(array( - "body" => "admin/db_utils_restore_body.tpl") - ); - - $s_hidden_fields = "<input type=\"hidden\" name=\"perform\" value=\"restore\" /><input type=\"hidden\" name=\"perform\" value=\"$perform\" />"; - - $template->assign_vars(array( - "L_DATABASE_RESTORE" => $lang['Database_Utilities'] . " : " . $lang['Restore'], - "L_RESTORE_EXPLAIN" => $lang['Restore_explain'], - "L_SELECT_FILE" => $lang['Select_file'], - "L_START_RESTORE" => $lang['Start_Restore'], - - "S_DBUTILS_ACTION" => append_sid("admin_db_utilities.$phpEx"), - "S_HIDDEN_FIELDS" => $s_hidden_fields) - ); - $template->pparse("body"); - - break; - - } - else - { - // - // Handle the file upload .... - // If no file was uploaded report an error... - // - $backup_file_name = (!empty($HTTP_POST_FILES['backup_file']['name'])) ? $HTTP_POST_FILES['backup_file']['name'] : ""; - $backup_file_tmpname = ($HTTP_POST_FILES['backup_file']['tmp_name'] != "none") ? $HTTP_POST_FILES['backup_file']['tmp_name'] : ""; - $backup_file_type = (!empty($HTTP_POST_FILES['backup_file']['type'])) ? $HTTP_POST_FILES['backup_file']['type'] : ""; - - if($backup_file_tmpname == "" || $backup_file_name == "") - { - include('page_header_admin.'.$phpEx); - message_die(GENERAL_MESSAGE, $lang['Restore_Error_no_file']); - } - // - // If I file was actually uploaded, check to make sure that we - // are actually passed the name of an uploaded file, and not - // a hackers attempt at getting us to process a local system - // file. - // - if( file_exists($backup_file_tmpname) ) - { - if( preg_match("/^(text\/[a-zA-Z]+)|(application\/(x\-)?gzip(\-compressed)?)|(application\/octet-stream)$/is", $backup_file_type) ) - { - if( preg_match("/\.gz$/is",$backup_file_name) ) - { - $do_gzip_compress = FALSE; - $phpver = phpversion(); - if($phpver >= "4.0") - { - if(extension_loaded("zlib")) - { - $do_gzip_compress = TRUE; - } - } - - if($do_gzip_compress) - { - $gz_ptr = gzopen($backup_file_tmpname, 'rb'); - $sql_query = ""; - while( !gzeof($gz_ptr) ) - { - $sql_query .= gzgets($gz_ptr, 100000); - } - } - else - { - include('page_header_admin.'.$phpEx); - message_die(GENERAL_ERROR, $lang['Restore_Error_decompress']); - } - } - else - { - $sql_query = fread(fopen($backup_file_tmpname, 'r'), filesize($backup_file_tmpname)); - } - // - // Comment this line out to see if this fixes the stuff... - // - //$sql_query = stripslashes($sql_query); - } - else - { - include('page_header_admin.'.$phpEx); - message_die(GENERAL_ERROR, $lang['Restore_Error_filename'] ." $backup_file_type $backup_file_name"); - } - } - else - { - include('page_header_admin.'.$phpEx); - message_die(GENERAL_ERROR, $lang['Restore_Error_uploading']); - } - - if($sql_query != "") - { - // Strip out sql comments... - $sql_query = remove_remarks($sql_query); - $pieces = split_sql_file($sql_query, ";"); - - $sql_count = count($pieces); - for($i = 0; $i < $sql_count; $i++) - { - $sql = trim($pieces[$i]); - - if(!empty($sql) and $sql[0] != "#") - { - if(VERBOSE == 1) - { - echo "Executing: $sql\n<br>"; - flush(); - } - - $result = $db->sql_query($sql); - - if(!$result && ( !(SQL_LAYER == 'postgresql' && eregi("drop table", $sql) ) ) ) - { - //include('page_header_admin.'.$phpEx); - // echo "~~$sql~~"; - message_die(GENERAL_ERROR, "Error importing backup file", "", __LINE__, __FILE__, $sql); - } - } - } - } - - include('page_header_admin.'.$phpEx); - - $template->set_filenames(array( - "body" => "admin/admin_message_body.tpl") - ); - - $message = $lang['Restore_success']; - - $template->assign_vars(array( - "MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Restore'], - "MESSAGE_TEXT" => $message) - ); - - $template->pparse("body"); - break; - } - break; - } -} - -include('page_footer_admin.'.$phpEx); - -?> +?>
\ No newline at end of file |