Files
WebGIS_Project/05/chat.php
T
2026-06-10 19:26:40 +07:00

58 lines
1.9 KiB
PHP

<?php
include 'koneksi.php';
header('Content-Type: application/json');
$action = $_GET['action'] ?? $_POST['action'] ?? 'list';
// ===== LIST PESAN =====
if ($action === 'list') {
$limit = (int)($_GET['limit'] ?? 50);
$q = $conn->query("
SELECT c.id, c.pesan, c.dibaca, c.created_at,
u.nama_lengkap AS dari, u.username,
t.nama_lengkap AS ke
FROM chat c
JOIN user u ON c.from_user = u.id
LEFT JOIN user t ON c.to_user = t.id
ORDER BY c.created_at DESC
LIMIT $limit
");
$rows = [];
while ($r = $q->fetch_assoc()) $rows[] = $r;
echo json_encode(array_reverse($rows), JSON_UNESCAPED_UNICODE);
}
// ===== KIRIM PESAN =====
elseif ($action === 'kirim') {
$from = (int)$_POST['from_user'];
$to = ($_POST['to_user'] ?? '') ? (int)$_POST['to_user'] : null;
$pesan = trim($_POST['pesan'] ?? '');
if (!$from || !$pesan) {
echo json_encode(['status'=>'error','msg'=>'Data tidak lengkap']);
exit;
}
$stmt = $conn->prepare("INSERT INTO chat (from_user, to_user, pesan) VALUES (?,?,?)");
$stmt->bind_param("iis", $from, $to, $pesan);
$stmt->execute()
? print json_encode(['status'=>'success','id'=>$conn->insert_id])
: print json_encode(['status'=>'error','msg'=>$stmt->error]);
// Log aktivitas
$log = $conn->prepare("INSERT INTO log_aktivitas (user_id, aksi, tabel, record_id, detail) VALUES (?,?,?,?,?)");
$aksi = 'kirim_chat'; $tbl = 'chat'; $rid = $conn->insert_id;
$det = "Pesan: ".substr($pesan,0,80);
$log->bind_param("issis", $from, $aksi, $tbl, $rid, $det);
$log->execute();
}
// ===== DAFTAR PENGURUS =====
elseif ($action === 'users') {
$q = $conn->query("SELECT id, username, nama_lengkap, role_id FROM user WHERE aktif=1 ORDER BY nama_lengkap");
$rows = [];
while ($r = $q->fetch_assoc()) $rows[] = $r;
echo json_encode($rows, JSON_UNESCAPED_UNICODE);
}
?>