⚝
One Hat Cyber Team
⚝
Your IP:
192.168.31.6
Server IP:
192.168.1.11
Server:
Linux pams 6.1.0-29-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
PHP Version:
8.2.28
Buat File
|
Buat Folder
Upload File
Eksekusi
Dir :
~
/
var
/
www
/
pams
/
modules
/
Db
/
Controllers
/
Edit File: Db.php
<?php namespace Modules\Db\Controllers; use App\Controllers\BaseController; use Ramsey\Uuid\Uuid; class Db extends BaseController { public function index(): string { $data['title'] = 'Database'; $data['li_1'] = 'Daftar Database'; $data['body'] = 'Modules\Db\Views\list'; $data['dt'] = $this->db->table('db')->get()->getResult(); return view('template', $data); } public function add(){ $p = $this->request->getPost(); $id = Uuid::uuid4()->toString(); $rules = [ 'bulan' => [ 'label' => 'bulan', 'rules' => 'required|numeric|max_length[2]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'alpha_numeric' => '{field} hanya boleh angka.', 'max_length' => '{field} maksimal {param} karakter.', ], ], 'tahun' => [ 'label' => 'tahun', 'rules' => 'required|numeric|max_length[4]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'alpha_numeric' => '{field} hanya boleh angka.', 'max_length' => '{field} maksimal {param} karakter.', ], ], ]; if (! $this->validateData($p,$rules)) { session()->setFlashData(gagal(form_error($this->validator->getErrors()))); return redirect()->to(base_url('db')); } $validationRules = [ 'txtFile' => [ 'label' => 'File TXT', 'rules' => 'uploaded[txtFile]|mime_in[txtFile,text/plain]|ext_in[txtFile,txt]|max_size[txtFile,20480]', 'errors' => [ 'uploaded' => '{field} harus dipilih untuk diunggah.', 'mime_in' => '{field} harus berformat TXT (text/plain).', 'ext_in' => '{field} harus memiliki ekstensi .txt.', 'max_size' => '{field} tidak boleh melebihi 2MB.', ], ], ]; if (! $this->validate($validationRules)) { $errors = $this->validator->getErrors(); session()->setFlashData(gagal($errors['txtFile'])); return redirect()->to(base_url('db')); } $file = $this->request->getFile('txtFile'); $targetDirectory = 'upload/db/'; $newName = 'absen-'.$p['tahun'].'-'.$p['bulan'].'.txt'; // Cek apakah file dengan nama yang sama sudah ada if (file_exists($targetDirectory.$newName)) { // Jika ada, hapus file lama sebelum memindahkan yang baru unlink($targetDirectory.$newName); } if ($file->isValid() && ! $file->hasMoved()) { $file->move($targetDirectory, $newName); $d = [ 'id' => $id, 'bulan' => $p['bulan'], 'tahun' => $p['tahun'], 'file' => $newName, ]; if($this->db->table('db')->insert($d)){ session()->setFlashData(success('Berhasil Menyimpan Data')); return redirect()->to(base_url('db')); }else{ session()->setFlashData(gagal('Masalah Koneksi Database')); return redirect()->to(base_url('db')); } }else{ session()->setFlashData(gagal('Koneksi Internet Terputus')); return redirect()->to(base_url('db')); } } public function delete($id = null){ $q = $this->db->table('db')->where('id', $id); $dt = $q->get()->getRow(); if(isset($dt->file)){ if($this->db->table('db')->where('id', $id)->delete()){ $f = 'upload/db/'.$dt->file; if (file_exists($f)) { unlink($f); } session()->setFlashData(success('Berhasil Mengapus Data')); return redirect()->to(base_url('db')); }else{ session()->setFlashData(gagal('Masalah Koneksi Database')); return redirect()->to(base_url('db')); } }else{ session()->setFlashData(gagal('ID Tidak ditemukan')); return redirect()->to(base_url('db')); } } public function parse($i){ $file = 'upload/db/'.$i; $data['title'] = 'Parsing'; $data['li_1'] = 'Parsing Database'; $data['body'] = 'Modules\Db\Views\parse'; $data['file'] = $file; $data['d'] = parse_db($file); return view('template', $data); } public function input_db(){ $p = $this->request->getPost(); $file = $p['file']; $awal = $p['awal']; $akhir = $p['akhir']; $jml = $p['jumlah']; $handle = fopen($file, 'r'); $currentRow = 0; while (($line = fgets($handle)) !== FALSE) { $currentRow++; if($currentRow < $awal){ continue; } if ($currentRow > $akhir) { break; } $columns = explode("\t", trim($line)); $id = $columns[0]; $jam = $columns[1]; $b = $this->db->table('tugas')->where('id', $id); if(($b->countAllResults() < 1)){ continue; } $dataToProcess[] = [ 'id' => Uuid::uuid4()->toString(), 'id_peg' => $id, 'tgl' => $jam, 'inputer' => $file ]; } $builder = $this->db->table('att'); $builder->insertBatch($dataToProcess); $r['csrf_token_hash'] = csrf_hash(); $this->response->setStatusCode(200); return $this->response->setJSON($r); } }
Simpan