0xV3NOMx
Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64



Your IP : 3.23.92.50


Current Path : /proc/thread-self/root/var/www/oasis/src/
Upload File :
Current File : //proc/thread-self/root/var/www/oasis/src/backupandrestore.php

<?php
/*Author : Natesha  
    Date    :  2009-07-13
    Project : Frame Work
    Description :  This class is for to backup db
*/

//Start :  'backup_restore'  Class 
 
	class backup_restore
	{
	  	
		//Start :  Constructor
	           function __construct($aobj_context)
	              {
		              session_start();
		              $this->aobj_context=$aobj_context;
		              $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
					  require_once($aobj_context->main_src."\src\employeeClass.php");
		              $this->obj_master=new employeeClass($aobj_context);
		              $this->obj_master->backup_setup();
					  $this->user_id = $_SESSION['user_id'];
		           }
		//End : Constructor 
		
				
		        /* This function is for to get market modules names*/
			 
		        function getBackupDbList()
		           {
				      $get_target_db=" select internal_code,db_name as db,
						company_name as Db_name from paycheck_system.company_setup_header order by company_name";
						$lobj_get_target_db = $this->aobj_context->mobj_db->getAll($get_target_db);
						$str_target_db=" <table align='center'width='40%' border='0' cellspacing='1' cellpadding='1'>";
						$str_target_db.="<tr><td>";
						
						$str_target_db="<table  align='center' width='46%' border='0' cellpadding='' cellspacing=''>";
						$str_target_db.="<tr>";
						$str_target_db.="<td style='width:30px;'>";
						$str_target_db.="<b>&nbsp;Check All	</b><input type='checkbox' id='backup_db_check_all' onclick='getAllDbList()'>";
						$str_target_db.="<b>&nbsp;Search </b><input type='text' id='backup_db_search' style='width:120px;' onKeyUp='getSearchDbList()'>";
						$str_target_db.="<div   style='overflow-y:scroll;overflow-y:auto;width:245px;height:227px;border:1px solid #cccccc;'>";

						for($mdata = 0 ; $mdata < count($lobj_get_target_db) ; $mdata++)
						   {     		
							$Db_name =  $lobj_get_target_db[$mdata][Db_name];
							$internal_code = $lobj_get_target_db[$mdata][internal_code];
							
							$str_target_db.="<input type='checkbox'    id = 'csr_db_{$internal_code}' name='{$internal_code}' /><label for='checkOption1'>{$Db_name}</label><br />";
						   }
							$str_target_db.="</div></td>";
							$str_target_db.="</tr></table>";
						$str_target_db.="</td> </tr></table>";	
						$arr['html']=$str_target_db ;	
						$arr['db_names']=$lobj_get_target_db ;	
				        return $arr;
				   }
				   
				 function serachBackupdbList()
                   {
                      $get_target_db=" select internal_code,db_name as db,
						company_name as Db_name from paycheck_system.company_setup_header where company_name like '{$this->search_value}%' ";
						$lobj_get_target_db = $this->aobj_context->mobj_db->getAll($get_target_db);
						$str_target_db=" <table align='center'width='40%' border='0' cellspacing='1' cellpadding='1'>";
						$str_target_db.="<tr><td>";
						
						$str_target_db="<table  align='center' width='46%' border='0' cellpadding='' cellspacing=''>";
						$str_target_db.="<tr>";
						$str_target_db.="<td style='width:30px;'>";
						$str_target_db.="<b>&nbsp;Check All	</b><input type='checkbox' id='backup_db_check_all' onclick='getAllDbList()'>";
						$str_target_db.="<b>&nbsp;Search </b><input type='text' id='backup_db_search' style='width:120px;' onKeyUp='getSearchDbList()'>";
						$str_target_db.="<div   style='overflow-y:scroll;overflow-y:auto;width:245px;height:227px;border:1px solid #cccccc;'>";

						for($mdata = 0 ; $mdata < count($lobj_get_target_db) ; $mdata++)
						   {     		
							$Db_name =  $lobj_get_target_db[$mdata][Db_name];
							$internal_code = $lobj_get_target_db[$mdata][internal_code];
							
							$str_target_db.="<input type='checkbox'    id = 'csr_db_{$internal_code}' name='{$internal_code}' /><label for='checkOption1'>{$Db_name}</label><br />";
						   }
							$str_target_db.="</div></td>";
							$str_target_db.="</tr></table>";
						$str_target_db.="</td> </tr></table>";	
						$arr['html']=$str_target_db ;	
						$arr['db_names']=$lobj_get_target_db ;	
						$arr['search_value']=$this->search_value;	
				        return $arr;
                   }

              function createBackupDb()
                {
                  
				 	 $dbhost = "localhost";
				     $dbuser = "root";
				     $dbpass = "tarka";
				     if($dbpass == '')
				        $pass_field = "";
				     else
                        $pass_field = " -p";			  
				     $get_paths = "select internal_code,{$this->obj_master->backup_foder_path} as folder_path,
				                            {$this->obj_master->backup_mysql_path} as mysql_path
					                        from {$this->obj_master->backup_table} ";
										
				     $lobj_get_paths = $this->aobj_context->mobj_db->GetRow($get_paths);
			  
				     $folder_path = $lobj_get_paths[folder_path];
				     $mysql_path = $lobj_get_paths[mysql_path];
					 
					  for($back_db = 0 ;$back_db < count($this->larr_backup_db_data);$back_db++)
				        {
						   $db_name = $this->larr_backup_db_data[$back_db]->db_name;
						   
						  $getdb_name = "select count(*) as count from information_schema.SCHEMATA
                                         where schema_name='{$db_name}' ";
										 
						  $lobj_getdb_name = $this->aobj_context->mobj_db->GetRow($getdb_name);			 
						  
                          if($lobj_getdb_name[count] == 0)
					            return $db_name;

                        }
				 		system(mkdir($folder_path.date("Ymd")));	 	     		
                     	$folder_path=$folder_path.date("Ymd")."\\";		
						 					
				     for($back_db = 0 ;$back_db < count($this->larr_backup_db_data);$back_db++)
				        {
						   $db_name = $this->larr_backup_db_data[$back_db]->db_name;
						   
						   $backupFile = $db_name .'_'. date("Ymd").'.sql';
	                       $command = "{$mysql_path}mysqldump --opt -h {$dbhost}  -u {$dbuser}{$pass_field}{$dbpass} {$db_name}  > {$folder_path}{$backupFile}";
	                     	 ;
					     system(($command),$retval);
					  		 	
					    }
   
                 }
 
              function restoreBackupDb()
                {

                     $dbhost = "localhost";
				     $dbuser = "root";
				     $dbpass = "tarka";
				     if($dbpass == '')
				      $pass_field = "";
				     else
                     $pass_field = " -p";	
					 
				     $get_paths = "select internal_code,{$this->obj_master->backup_foder_path} as folder_path,
				                            {$this->obj_master->backup_mysql_path} as mysql_path
					                        from {$this->obj_master->backup_table} ";
										
				     $lobj_get_paths = $this->aobj_context->mobj_db->GetRow($get_paths);
			  
				     $folder_path = $lobj_get_paths[folder_path];
				     $mysql_path = $lobj_get_paths[mysql_path];
				                         

                    for($back_db = 0 ;$back_db < count($this->larr_backup_db_data);$back_db++)
				        {
						   $db_name = $this->larr_backup_db_data[$back_db]->db_name;
						   $backupFile = $db_name .'_'. $this->inputdate.'.sql';
						   $file_path = $folder_path.$this->inputdate.'\\'.$backupFile;
						   
						   if(!file_exists($file_path)) 
						    return $db_name;

                        }


					for($back_db = 0 ;$back_db < count($this->larr_backup_db_data);$back_db++)
				        {
						   $db_name = $this->larr_backup_db_data[$back_db]->db_name;
						   
						   $backupFile = $db_name .'_'. $this->inputdate.'.sql';
							$file_path = $folder_path.$this->inputdate.'\\'.$backupFile;
							 
						   if(file_exists($file_path)) 
						   {
						     $create_db = "create database  if not exists {$db_name} ";
							 $lobj_create_db = $this->aobj_context->mobj_db->execute($create_db);					 
						     $command = "{$mysql_path}mysql -u $dbuser {$pass_field}{$dbpass} {$db_name} < {$file_path}";
	                         system($command);
							} 
                           				
					    }
					return 0;	
                }				
		 	  		
		
   }
 
//End :  Class file

	function getBackupDbList($aobj_context)
	{		
		 $class_obj=new backup_restore($aobj_context);	
		 $db_list = $class_obj->getBackupDbList();
		 echo $aobj_context->mobj_output->ToJSONEnvelope($db_list,0,"Success");
    }
	 
	function serachBackupdbList($aobj_context)
	  {
	     $class_obj=new backup_restore($aobj_context);	
		 $class_obj->search_value = $aobj_context->mobj_data["search_value"];
		 $db_list = $class_obj->serachBackupdbList();
		 echo $aobj_context->mobj_output->ToJSONEnvelope($db_list,0,"Success");
	  }
	function createBackupDb($aobj_context)
      {
		ini_set("memory_limit",-1);
	    ini_set('max_execution_time',2900);
         $class_obj=new backup_restore($aobj_context);	
		 $class_obj->backup_type = $aobj_context->mobj_data["type"];
		 $class_obj->backup_date = $aobj_context->mobj_data["date"];
		 include_once("/JSON.php"); 
	     $json = new Services_JSON(); 	
		 
		 $lstr_param_sal = stripslashes($aobj_context->mobj_data["backup_db_ids"]);
	     $mobj_jsondata_sal = $json->decode($lstr_param_sal);
	     $class_obj->larr_backup_db_data = get_object_vars($mobj_jsondata_sal);
		 if($class_obj->backup_type == 'BackUp')
		  {
		    $backup_db_result = $class_obj->createBackupDb();
			 if(!empty($backup_db_result))
		         {
				     $data = $backup_db_result . " Not found";
					 echo $aobj_context->mobj_output->ToJSONEnvelope($data,-1,"Success");
		          }
		      else if($backup_db_result == 0)
				 {
				     $data = "Database is dumped successfully";
		         	 echo $aobj_context->mobj_output->ToJSONEnvelope($data,0,"Success");
				 }
		  }
		 else if ($class_obj->backup_type == 'Restore')
		  { 
		    $date_arr = explode('/',$class_obj->backup_date);
			$day = $date_arr[0];
			$month = $date_arr[1];
			$year = $date_arr[2];
			$class_obj->inputdate = $year.$month.$day;
							
			$restore_db_result = $class_obj->restoreBackupDb(); 
			 if(!empty($restore_db_result))
		           {
				     $data = $restore_db_result . " database file not found";
					 echo $aobj_context->mobj_output->ToJSONEnvelope($data,-1,"Success");
		           }
		         else if($restore_db_result == 0)
				 {
				     $data = "Database is restored successfully";
		         	 echo $aobj_context->mobj_output->ToJSONEnvelope($data,0,"Success");
				 }
		  }
        

		 
      }	  
	 		
?>