Update Project 3 files
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/**
|
||||
* auth_register.php — Daftar Akun Baru
|
||||
* POST: nama, email, password, role
|
||||
*/
|
||||
session_start();
|
||||
require_once 'koneksi.php';
|
||||
header('Content-Type: application/json');
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
echo json_encode(['success' => false, 'message' => 'Hanya POST']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$nama = trim($_POST['nama'] ?? '');
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
$password = $_POST['password'] ?? '';
|
||||
$role = $_POST['role'] ?? 'viewer';
|
||||
|
||||
// Validasi
|
||||
if (empty($nama)) {
|
||||
echo json_encode(['success' => false, 'message' => 'Nama wajib diisi']);
|
||||
exit;
|
||||
}
|
||||
if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
echo json_encode(['success' => false, 'message' => 'Email tidak valid']);
|
||||
exit;
|
||||
}
|
||||
if (strlen($password) < 6) {
|
||||
echo json_encode(['success' => false, 'message' => 'Password minimal 6 karakter']);
|
||||
exit;
|
||||
}
|
||||
// Validasi role (admin tidak boleh daftar sendiri)
|
||||
if (!in_array($role, ['surveyer', 'viewer'])) {
|
||||
echo json_encode(['success' => false, 'message' => 'Pendaftaran untuk role tersebut tidak diizinkan']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Cek email sudah terdaftar
|
||||
$stmt = $conn->prepare("SELECT id FROM users WHERE email = ?");
|
||||
$stmt->bind_param("s", $email);
|
||||
$stmt->execute();
|
||||
if ($stmt->get_result()->num_rows > 0) {
|
||||
echo json_encode(['success' => false, 'message' => 'Email sudah terdaftar']);
|
||||
$stmt->close();
|
||||
$conn->close();
|
||||
exit;
|
||||
}
|
||||
$stmt->close();
|
||||
|
||||
// Hash password & simpan
|
||||
$hashed = password_hash($password, PASSWORD_DEFAULT);
|
||||
$stmt = $conn->prepare("INSERT INTO users (nama, email, password, role) VALUES (?, ?, ?, ?)");
|
||||
$stmt->bind_param("ssss", $nama, $email, $hashed, $role);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
$userId = $conn->insert_id;
|
||||
|
||||
// Jangan auto-login. Menunggu verifikasi admin.
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'message' => 'Registrasi berhasil! Akun Anda sedang menunggu verifikasi dari Admin.'
|
||||
]);
|
||||
} else {
|
||||
echo json_encode(['success' => false, 'message' => 'Gagal menyimpan: ' . $conn->error]);
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
$conn->close();
|
||||
Reference in New Issue
Block a user