Files
SIG_UAS_Pengentasan_Kemiskinan/register.php
T

54 lines
2.0 KiB
PHP

<?php
// register.php
require_once 'config.php';
// Membaca input JSON dari client/frontend
$input = json_decode(file_get_contents('php://input'), true);
$username = trim($input['username'] ?? '');
$password = trim($input['password'] ?? '');
$role = trim($input['role'] ?? ''); // 'pengurus_masjid' atau 'dhuafa'
$masjid_id = !empty($input['masjid_id']) ? intval($input['masjid_id']) : null;
$dhuafa_id = !empty($input['dhuafa_id']) ? intval($input['dhuafa_id']) : null; // Tambahan Fitur
if (empty($username) || empty($password) || empty($role)) {
sendResponse(false, 'Username, password, dan role wajib diisi.');
}
if (!in_array($role, ['pengurus_masjid', 'dhuafa'])) {
sendResponse(false, 'Role tidak valid. Hanya bisa mendaftarkan pengurus_masjid atau dhuafa.');
}
// Proteksi Khusus Pengurus Masjid
if ($role === 'pengurus_masjid' && empty($masjid_id)) {
sendResponse(false, 'Pendaftaran pengurus masjid wajib menyertakan ID Masjid yang diampu.');
}
// Proteksi Khusus Kaum Dhuafa
if ($role === 'dhuafa' && empty($dhuafa_id)) {
sendResponse(false, 'Pendaftaran akun dhuafa wajib ditautkan ke data warga dhuafa yang valid.');
}
// Cek apakah username sudah terpakai
$check = $conn->prepare("SELECT id FROM users WHERE username = ?");
$check->bind_param("s", $username);
$check->execute();
if ($check->get_result()->num_rows > 0) {
sendResponse(false, 'Username sudah terdaftar, gunakan nama lain.');
}
$check->close();
// Enkripsi password dengan standar PHP Bcrypt
$password_hash = password_hash($password, PASSWORD_DEFAULT);
// Daftarkan user ke database dengan menyertakan nilai masjid_id atau dhuafa_id yang sesuai
$stmt = $conn->prepare("INSERT INTO users (username, password, role, masjid_id, dhuafa_id) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("sssii", $username, $password_hash, $role, $masjid_id, $dhuafa_id);
if ($stmt->execute()) {
sendResponse(true, 'Registrasi akun baru berhasil disimpan.');
} else {
sendResponse(false, 'Gagal mendaftarkan akun baru: ' . $conn->error);
}
$stmt->close();
?>