ÿØÿàJFIFÿÛ„ ( %"1"%)+...383,7(-.- 404 Not Found
Sh3ll
OdayForums


Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20
System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 7.4.20
Disable Function : NONE
Directory :  /var/www/html/thietkewebvumi.com/admin_new/mod/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/thietkewebvumi.com/admin_new/mod/backupdb.php
<?php

class backupdb{

	function backupdb(){
	
		global $CORE;
		
		switch ($CORE->input['code']){
		
			default : $this-> index(); break;			
		
			case 'backup' : $this-> backup(); break;		
			
			case 'restore' : $this-> restore(); break;
			
		}
		
	}
		
	function index(){
	
		global $CORE, $INFO, $TBS;
		
		$TBS->LoadTemplate(ADMIN_PATH."skin/backupdb.html");
		
		// get all system informations
		if (!($sys['server']=$_SERVER["SERVER_SOFTWARE"])) $sys['server']='NO INFO';
		
		if (function_exists("phpversion")) {
		
			$tmp=phpversion();
			
			$phpvers=$tmp[0].$tmp[1].$tmp[2];
			
			if ($phpvers>=4.3) $sys['php']=$tmp; else $sys['php']='NO INFO';
			
		} else {
		
			$sys['php']='NO INFO';
			
		}		
		
		$sys['time']	=	date('h:i:s',time());
		
		if (@ini_get("safe_mode")=="1") $sys['safe_mode']='On'; else $sys['safe_mode']='Off';			
		
		if (function_exists("gzopen")) $sys['gzip']='Yes'; else $sys['gzip']='No';
		
		if (!function_exists("mysql_get_server_info")) $sys['mysqls']='NO INFO'; else $sys['mysqls']=@mysql_get_server_info();	
		
		// print system informations
		
		$sysinfo[]	=	$sys;
		
		$TBS->MergeBlock('sys',$sysinfo);
		
		$TBS->Show(TBS_OUTPUT+TBS_NOTHING);
	
	}
	
	function backup(){
	
		global $CORE, $INFO, $DB, $TBS, $db_selected;	
		
		if($CORE->input['dobackup']==0 || $CORE->input['dobackup']=="" || $CORE->input['dobackup']==null){		
			
			$TBS->LoadTemplate(ADMIN_PATH."skin/backupdb_backup.html");
			$dbList = mysql_list_dbs($DB->connection_id);			
				while ($row = mysql_fetch_object($dbList)) {			
					$dbString[] = $row->Database;				
				}
			if(!$CORE->input['dbs']){
				$db_selected = $INFO['sql_database'];		
			}else{
				$db_selected = $CORE->input['dbs'];
			}			
			// Get list of tables in the database and output form
			$result = mysql_list_tables($db_selected);
			$num_tables = mysql_num_rows($result);		
			for ($i = 0; $i < $num_tables; $i++) {		
				$tablename = mysql_tablename($result, $i);			
				$checkboxString[] = $tablename;			
			}			
			$TBS->MergeBlock('dbs',$dbString);
			$TBS->MergeBlock('tab',$checkboxString);		
			$TBS->Show(TBS_OUTPUT+TBS_NOTHING);
		}else{
			$sql_string = "";
			$backup_structure = ($CORE->input['structure'] == "on") ? 1 : 0;
			$backup_data = ($CORE->input['data'] == "on") ? 1 : 0;
			
			$j = 0;
			$num_tables = $CORE->input['numtab'];
			for ($i = 0; $i < $num_tables; $i++) {
						
				if ($CORE->input['box'.$i]) {
					$tablename_array[$j] = $CORE->input['box'.$i];					
					$j++;
				}
			}
			
			$selected_db = $CORE->input['dbs'];
			
			@mysql_select_db($selected_db,$DB->connection_id);

			$sql_string = $this->backup_data($tablename_array, $backup_structure, $backup_data);
			
			$time = date('dMy',time());
			
			header("Content-type: application/force-download");
			header("Content-Disposition: attachment; filename={$selected_db}{$time}.bak");
			
			echo $sql_string;			
			exit;
			
		}
	
	}
// backup functions - don't touch ==============================================================================
	function backup_data($tablename_array, $backup_structure, $backup_data)
	{		
		for ($i = 0; $i <count($tablename_array); $i++) {
			$table_sql_string = "";
			$data_sql_string = "";
				
			if ($backup_structure) $table_sql_string = $this->create_table_sql_string($tablename_array[$i]);
			if ($backup_data) $data_sql_string = $this->create_data_sql_string($tablename_array[$i]);
				
			if ($table_sql_string) $sql_string = sprintf("%s\n%s", $sql_string, $table_sql_string);
			if ($data_sql_string) $sql_string = sprintf("%s\n%s", $sql_string, $data_sql_string);
		}
	
		return $sql_string;
	}
	
	function create_table_sql_string($tablename){
	
		// Start the SQL string for this table
		$sql_string = "CREATE TABLE $tablename";
	
		// Get the field info and output to a string in the correct MySQL syntax
		$result = mysql_query("DESCRIBE $tablename");	
	
		while ($field_info = mysql_fetch_array($result)){
		
			$field_name = $field_info[0];			
			$field_type = $field_info[1];
			$field_not_null = ($field_info[2] == "YES") ? "" : " NOT NULL";
			$field_default = ($field_info[4] == NULL) ? "" : sprintf(" default '%s'", $field_info[4]);;
			$field_auto_increment = ($field_info[5] == NULL) ? "" : sprintf(" %s", $field_info[5]);
			
			$field_string = sprintf("%s, %s %s%s%s%s", $field_string, $field_name, $field_type, $field_not_null, $field_auto_increment, $field_default);
			
		}
	
		// Get the index info and output to a string in the correct MySQL syntax
		$result = mysql_query("SHOW INDEX FROM $tablename");		
		while ($index_info = mysql_fetch_array($result)) {			
			
			$index_name = $index_info[2];
			$index_unique = $index_info[1];
			$index_field_name = $index_info[4];
			$index_type = $index_info[10];
		
			if ($index_name == "PRIMARY") $index_name = "PRIMARY KEY";
			
			if ($index_unique == "1" && $index_type != "FULLTEXT") $index_name = sprintf("KEY %s", $index_name);
			
			if ($index_unique == "0" && $index_name != "PRIMARY KEY") $index_name = sprintf("UNIQUE KEY %s", $index_name);
	
			if ($index_type == "FULLTEXT") $index_name = sprintf("FULLTEXT KEY %s", $index_name);
	
			$index_string = sprintf("%s, %s (%s)", $index_string, $index_name, $index_field_name);
		}
	
		// Get the table type and output it to a string in the correct MySQL syntax
		$result = mysql_query("SHOW TABLE STATUS");		
		while ($status_info = mysql_fetch_array($result)) {
			for ($i = 0; $i < count($status_info); $i++) {	
				if ($status_info[0] == $tablename) $table_type = sprintf("TYPE=%s", $status_info[1]);
			}
		}

		// Remove the first 2 characters (", ") from the field string
		$field_string = substr($field_string, 2);
		
		// Append the index string to the field string
		$field_string = sprintf("%s%s", $field_string, $index_string);
	
		// Put the field string in parantheses
		$field_string = sprintf("(%s)", $field_string);
		
		// Finalise the MySQL create table string
		$sql_string = sprintf("%s %s %s", $sql_string, $field_string, $table_type);
		
		return $sql_string;
	
	}

	function create_data_sql_string($tablename){
	
		global $DB;
		
		// Initialise the field string
		$field_string = "";
		
		// Get field names from MySQL and output to a string in the correct MySQL syntax
		$result = mysql_query("SELECT * FROM $tablename");
		
		for ($i = 0; $i < mysql_num_fields($result); $i++) {
			$meta = mysql_fetch_field($result, $i);
			
			$field_string = sprintf("%s, %s", $field_string, $meta->name);
		}
	
		// Remove the first 2 characters (", ") from the field string
		$field_string = substr($field_string, 2);
	
		// Put the field string in parantheses
		$field_string = sprintf("(%s)", $field_string);
		
		// Get table data from MySQL and output to a string in the correct MySQL syntax
		while ($row = mysql_fetch_row($result)) {
			// Initialise the data string
			$data_string = "";
		
			// Loop through the records and append data to the string after escaping
			for ($i = 0; $i < mysql_num_fields($result); $i++) {
				$data_string = sprintf("%s, '%s'", $data_string, mysql_escape_string($row[$i]));
			}
			
			// Remove the first 2 characters (", ") from the data string
			$data_string = substr($data_string, 2);
	
			// Put the data string in parantheses and prepend "VALUES "
			$data_string = sprintf("VALUES (%s)", $data_string);
			
			// Finalise the MySQL insert into string for this record
			$sql_string = sprintf("%sINSERT INTO %s %s %s\n", $sql_string, $tablename, $field_string, $data_string);
		}
	
		return $sql_string;
	
	}
// end - backup funtions ==============================================================================================

	function restore(){
	
		global $CORE, $INFO, $DB, $TBS;
		
		if(!$CORE->input['dbs']){
		
			$TBS->LoadTemplate(ADMIN_PATH."skin/backupdb_restore.html");
		
			$dbList = mysql_list_dbs($DB->connection_id);
			
			while ($row = mysql_fetch_object($dbList)) {			
				$dbString[] = $row->Database;
			}
			
			$TBS->MergeBlock('dbs',$dbString);
				
			$TBS->Show(TBS_OUTPUT+TBS_NOTHING);
			
		}else{
				
			$filename = $_FILES['filename']['name'];
			$ret_val = move_uploaded_file($_FILES['filename']['tmp_name'], "./$filename");			
			
			$db_selected = $CORE->input['dbs'];
			
			$restore_structure = ($CORE->input['structure'] == "on") ? 1 : 0;
			$restore_data = ($CORE->input['data'] == "on") ? 1 : 0;
			
			if (!$ret_val) echo "Could not upload file.";
			
			$this->restore_data("./$filename", $restore_structure, $restore_data, $db_selected);

			unlink("./$filename");
		
		}
	
	}
	
	function restore_data($filename, $restore_structure, $restore_data, $db_selected){
	
		$handle = fopen("$filename", "r");
	
		while (!feof($handle)){
		
			$buffer = fgets($handle);
		
			if ($buffer != "\n" && $buffer != "") {
				// if this line is a create table query then check if the table already exists
				if (substr($buffer, 0, 12) == "CREATE TABLE") {
				
					if ($restore_structure) { 
						$tablename = explode(" ", $buffer);
						$tablename = $tablename[2];

						$result = mysql_list_tables($db_selected);
						for ($i = 0; $i < mysql_num_rows($result); $i++) {
							if (mysql_tablename($result, $i) == $tablename) {
								$rand = substr(md5(time()), 0, 8);
								$random_tablename = sprintf("%s_bak_%s", $tablename, $rand);
	
								mysql_query("RENAME TABLE $tablename TO $random_tablename");
	
								echo "Sao lưu thành công bảng dữ liệu $tablename thành $random_tablename.<br />\n";
							}
						}

						$result = mysql_query($buffer);
						if (!$result) {
							echo mysql_error()."<br />\n";
						} else {
							echo "Phục hồi thành công bảng dữ liệu '$tablename'.<br />\n";
						}
					}
					
				} else {
				
					if ($restore_data) {
						$result = mysql_query($buffer);
						if (!$result) echo mysql_error()."<br />\n";
					}
				}
			}
		}

		fclose($handle);
	}



}

$run	=	new backupdb();

?>

ZeroDay Forums Mini