Files
2026-06-10 22:26:03 +07:00

42 lines
1.2 KiB
PHP

<?php
/**
* simpan_laporan.php — Simpan Laporan Masyarakat
* POST: name, text, img (base64, opsional)
*/
session_start();
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['success'=>false,'message'=>'Hanya POST']); exit;
}
// Ambil nama dari session jika ada, fallback ke POST
$name = '';
if (isset($_SESSION['user_nama']) && !empty($_SESSION['user_nama'])) {
$name = $_SESSION['user_nama'];
} else {
$name = strip_tags($_POST['name'] ?? 'Anonim');
}
$name = $conn->real_escape_string($name);
$text = $conn->real_escape_string(strip_tags($_POST['text'] ?? ''));
$img = $_POST['img'] ?? '';
if (empty($text)) {
echo json_encode(['success'=>false,'message'=>'Deskripsi kosong']); exit;
}
// Validasi ukuran base64 img (max ~5MB raw → ~6.7MB base64)
if (strlen($img) > 7_000_000) {
echo json_encode(['success'=>false,'message'=>'Ukuran foto terlalu besar (max 5MB)']); exit;
}
$imgEsc = $conn->real_escape_string($img);
$sql = "INSERT INTO laporan (pelapor, deskripsi, foto_base64) VALUES ('$name', '$text', '$imgEsc')";
if ($conn->query($sql)) {
echo json_encode(['success'=>true,'id'=>$conn->insert_id]);
} else {
echo json_encode(['success'=>false,'message'=>$conn->error]);
}
$conn->close();