SKKPd_Lite/tambah/upload_sertifikat.php
arie wira kusuma baru b972fee6c4 fix: Upload Sertif, tampil sertifikat, cek_sertifikat siswa dan operator
Upload Sertif login sebagai sisw, fix bug tampil sertifikat sebagai oprator dan siswa, cek_sertifikat login sebagai siswa bisa upload ulang file jika statusnya tidak valid
2025-03-03 00:05:28 +08:00

174 lines
6.8 KiB
PHP
Executable File

<?php
if(!@$_COOKIE['level_user']) {
echo "<script>alert('belum login');window.location.href='../login.php'</script>";
}elseif($_COOKIE['level_user']=='operator') {
echo "<script>alert('anda operator, silahkan kembali');window.location.href='halaman_utama.php?page=sertifikat'</script>";
}
$nis = $_COOKIE['nis'];
if(isset($_POST['tombol_upload']) && isset($_FILES["sertifikat"])){
$tgl_Upload = date("Y-m-d");
$sertifikat = $_FILES["sertifikat"]['name'];
$kegiatan = htmlspecialchars($_POST['jenis_kegiatan']);
$id_kegiatan = mysqli_fetch_assoc(mysqli_query($koneksi, "SELECT Id_Kegiatan FROM kegiatan WHERE Jenis_Kegiatan = '$kegiatan'"))['Id_Kegiatan'];
$file = $_FILES["sertifikat"];
$folder = "../sertifikat/";
$ekstensi = strtolower(pathinfo($_FILES["sertifikat"]['name'], PATHINFO_EXTENSION));
$ukuran = $file["size"];
// Validasi file atau cek file
if ($ekstensi !== "pdf") {
echo "Hanya file .pdf yang diperbolehkan!";
} elseif ($ukuran > 2097152) { // 2MB dalam byte
echo "Ukuran file terlalu besar! Maksimal 2MB.";
} else {
// Generate nama file baru dengan format NIS + 5 random karakter
do {
$randomString = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 5);
$newFileName = $nis . $randomString . ".pdf";
$targetFile = $folder . $newFileName;
} while (file_exists($targetFile)); // Cek apakah file sudah ada, jika ada buat ulang
// Proses upload
if (move_uploaded_file($file["tmp_name"], $targetFile)) {
$hasil = mysqli_query($koneksi, "INSERT INTO sertifikat VALUES(NULL, '$tgl_Upload', NULL, '$newFileName', 'Menunggu Validasi', NULL, '$nis', '$id_kegiatan')");
$id = mysqli_fetch_row(mysqli_query($koneksi, "SELECT LAST_INSERT_ID()"))[0];
if ($hasil) {
echo "<script>alert('Berhasil Mengunggah Sertifikat');window.location.href='halaman_utama.php?page=cek_sertifikat_siswa&id=".$id."&file=".$newFileName."'
</script>";
} else {
echo "Gagal Mengunggah File: " . mysqli_error($koneksi);
}
}
}
}
?>
<center>
<select name="kategori" onchange="pilihKategori(this.options[this.selectedIndex].value)">
<option value="">Pilih Kategori</option>
<?php
$list_kategori = mysqli_query($koneksi, "SELECT Kategori FROM kategori GROUP BY Kategori");
while($data_kategori = mysqli_fetch_assoc($list_kategori)){
?>
<option value="<?=$data_kategori['Kategori']?>"
<?php if(@$_GET['kategori']==$data_kategori['Kategori']){ echo "selected";}?>>
<?=$data_kategori['Kategori']?>
</option>
<?php
}
?>
</select>
<script>
function pilihKategori(value) {
window.location.href = 'halaman_utama.php?page=upload_sertifikat&kategori=' + value;
}
</script>
<?php
if(@$_GET['kategori']){
$kategori = htmlspecialchars($_GET['kategori']);
?>
<select name="sub_kategori" onchange="pilihSubKategori(this.options[this.selectedIndex].value)">
<option value="">Pilih Sub Kategori</option>
<?php
$list_kategori = mysqli_query($koneksi, "SELECT Sub_Kategori FROM kategori WHERE Kategori='$kategori'");
while($sub_kategori = mysqli_fetch_assoc($list_kategori)){
?>
<option value="<?=$sub_kategori['Sub_Kategori']?>"
<?php if(@$_GET['sub_kategori']==$sub_kategori['Sub_Kategori']){ echo "selected";}?>>
<?=$sub_kategori['Sub_Kategori']?>
</option>
<?php
}
?>
</select>
<script>
function pilihSubKategori(value) {
const urlParams = new URLSearchParams(window.location.search);
const kategori = urlParams.get('kategori');
window.location.href =
`halaman_utama.php?page=upload_sertifikat&kategori=${kategori}&sub_kategori=${value}`;
}
</script>
<?php
}
?>
<?php
if(@$_GET['sub_kategori']){
$kategori = htmlspecialchars($_GET['kategori']);
$sub_kategori = htmlspecialchars($_GET['sub_kategori']);
@$Id_Kategori = mysqli_fetch_assoc(mysqli_query($koneksi, "SELECT Id_Kategori FROM kategori WHERE Sub_Kategori = '$sub_kategori'"))['Id_Kategori'];
?>
<select name="jenis_kegiatan" onchange="pilihJenisKegiatan(this.value)" required>
<option value="">Pilih Jenis Kegiatan</option>
<?php
// Ambil daftar kegiatan berdasarkan kategori
$list_kategori = mysqli_query($koneksi, "SELECT Jenis_Kegiatan FROM kegiatan WHERE Id_Kategori='$Id_Kategori'");
// Ambil daftar kegiatan yang sudah diikuti oleh siswa (untuk disable option)
$list_kegiatan = mysqli_query($koneksi, "SELECT Jenis_Kegiatan FROM kegiatan INNER JOIN sertifikat USING(Id_Kegiatan) INNER JOIN kategori USING(Id_Kategori) WHERE NIS='$nis' AND Kategori='wajib' GROUP BY Jenis_Kegiatan");
// Buat array untuk menyimpan kegiatan yang sudah diikuti
$kegiatan_terdaftar = [];
while ($row = mysqli_fetch_assoc($list_kegiatan)) {
$kegiatan_terdaftar[] = $row['Jenis_Kegiatan'];
}
// Loop daftar kegiatan dan tampilkan dalam <option>
while ($jenis_kegiatan = mysqli_fetch_assoc($list_kategori)) {
$nama_kegiatan = $jenis_kegiatan['Jenis_Kegiatan'];
$isDisabled = in_array($nama_kegiatan, $kegiatan_terdaftar) ? "disabled" : "";
$isSelected = (isset($_GET['jenis_kegiatan']) && $_GET['jenis_kegiatan'] === $nama_kegiatan) ? "selected" : "";
?>
<option value="<?= htmlspecialchars($nama_kegiatan) ?>" <?= $isDisabled ?> <?= $isSelected ?>>
<?= htmlspecialchars($nama_kegiatan) ?>
</option>
<?php
}
?>
</select>
<script>
function pilihJenisKegiatan(value) {
const urlParams = new URLSearchParams(window.location.search);
const kategori = urlParams.get('kategori');
const sub_kategori = urlParams.get('sub_kategori');
window.location.href =
`halaman_utama.php?page=upload_sertifikat&kategori=${kategori}&sub_kategori=${sub_kategori}&jenis_kegiatan=${value}`;
}
</script>
<?php
}
?>
<br><br>
<?php
if(@$_GET['jenis_kegiatan']){
$kategori = htmlspecialchars($_GET['kategori']);
$sub_kategori = htmlspecialchars($_GET['sub_kategori']);
$jenis_kegiatan = htmlspecialchars($_GET['jenis_kegiatan']);
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="text" hidden name="jenis_kegiatan" value="<?=$jenis_kegiatan?>">
<input type="file" accept=".pdf" name="sertifikat" required>
<input type="submit" name="tombol_upload" value="Upload">
</form>
<?php
}
?>
</center>