⚝
One Hat Cyber Team
⚝
Your IP:
160.79.111.124
Server IP:
162.254.39.145
Server:
Linux premium289.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
Server Software:
LiteSpeed
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
favoaysf
/
www
/
app
/
Http
/
Controllers
/
Back
/
View File Name :
BackupController.php
<?php namespace App\Http\Controllers\Back; use App\Http\Controllers\Controller; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use mysqli; use Zip; class BackupController extends Controller { /** * Constructor Method. * * Setting Authentication */ public function __construct() { $this->middleware('auth:admin'); $this->middleware('adminlocalize'); } public function systemBackup() { $dir = public_path(); $zip_file = Carbon::now().'-backup.zip'; // Get real path for our folder $rootPath = realpath($dir); $zip = Zip::create($zip_file)->add($rootPath, true); $zip->close(); header('Content-disposition: attachment; filename='.$zip_file); header('Content-type: application/zip'); readfile($zip_file); @unlink($zip_file); } public function databaseBackup() { // Fetch all table names from the database $tables = DB::select('SHOW TABLES'); // Extract table names from the result $tableNames = array_map(function($table) { return $table->{'Tables_in_' . env('DB_DATABASE')}; }, $tables); $connect = DB::connection()->getPdo(); $get_all_table_query = "SHOW TABLES"; $statement = $connect->prepare($get_all_table_query); $statement->execute(); $output = ''; foreach($tableNames as $table) { $show_table_query = "SHOW CREATE TABLE " . $table . ""; $statement = $connect->prepare($show_table_query); $statement->execute(); $show_table_result = $statement->fetchAll(); foreach($show_table_result as $show_table_row) { $output .= "\n\n" . $show_table_row["Create Table"] . ";\n\n"; } $select_query = "SELECT * FROM " . $table . ""; $statement = $connect->prepare($select_query); $statement->execute(); $total_row = $statement->rowCount(); $check = Carbon::now(); for($count=0; $count<$total_row; $count++) { $single_result = $statement->fetch(\PDO::FETCH_ASSOC); $table_column_array = array_keys($single_result); $table_value_array = array_values($single_result); $new_value_array = []; foreach($table_column_array as $key => $coloumn){ $new_value_array[] = $table_value_array[$key]; if($coloumn == 'created_at'){ if(!$table_value_array[$key]){ unset($new_value_array[$key]); $new_value_array['created_at'] = Carbon::now()->subMinutes(rand(1, 55)); } } if($coloumn == 'item_type'){ if(!$table_value_array[$key]){ unset($new_value_array[$key]); $new_value_array['item_type'] = 'normal'; } } if($coloumn == 'file_type'){ if(!$table_value_array[$key]){ unset($new_value_array[$key]); $new_value_array['file_type'] = 'file'; } } if($coloumn == 'subcategory_id'){ if(!$table_value_array[$key]){ unset($new_value_array[$key]); $new_value_array['subcategory_id'] = 0; } } if($coloumn == 'brand_id'){ if(!$table_value_array[$key]){ unset($new_value_array[$key]); $new_value_array['brand_id'] = 0; } } if($coloumn == 'user_id'){ if(!$table_value_array[$key]){ unset($new_value_array[$key]); $new_value_array['user_id'] = 0; } } if($coloumn == 'childcategory_id'){ if(!$table_value_array[$key]){ unset($new_value_array[$key]); $new_value_array['childcategory_id'] = 0; } } if($coloumn == 'updated_at'){ if(!$table_value_array[$key]){ unset($new_value_array[$key]); $new_value_array['updated_at'] = Carbon::now()->subMinutes(rand(1, 55)); } } } $update = []; foreach($new_value_array as $new_check){ $update[] = str_replace("'","\'",$new_check); } $output .= "\nINSERT INTO $table ("; $output .= "" . implode(", ", $table_column_array) . ") VALUES ("; $output .= "'" . implode("','", $update) . "');\n"; } } $file_name = 'database_backup_on_' . date('y-m-d') . '.sql'; $file_handle = fopen($file_name, 'w+'); fwrite($file_handle, $output); fclose($file_handle); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . basename($file_name)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file_name)); flush(); readfile($file_name); unlink($file_name); } }