59 lines
3.3 KiB
PHP
59 lines
3.3 KiB
PHP
<?php
|
|
require_once __DIR__ . '/auth.php';
|
|
|
|
$error = '';
|
|
$success = '';
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$nama = clean_text(post('nama'), 100);
|
|
$username = clean_text(post('username'), 50);
|
|
$password = post('password');
|
|
$password2 = post('password2');
|
|
|
|
if ($nama === '' || $username === '' || strlen($password) < 6) {
|
|
$error = 'Nama, username, dan password minimal 6 karakter wajib diisi.';
|
|
} elseif ($password !== $password2) {
|
|
$error = 'Konfirmasi password tidak sama.';
|
|
} else {
|
|
$cek = $koneksi->prepare("SELECT id FROM users WHERE username=? LIMIT 1");
|
|
$cek->bind_param('s', $username);
|
|
$cek->execute();
|
|
if ($cek->get_result()->fetch_assoc()) {
|
|
$error = 'Username sudah digunakan.';
|
|
} else {
|
|
// password_hash() untuk keamanan password.
|
|
$hash = password_hash($password, PASSWORD_DEFAULT);
|
|
$role = 'penerima';
|
|
$stmt = $koneksi->prepare("INSERT INTO users (nama, username, password, role) VALUES (?,?,?,?)");
|
|
$stmt->bind_param('ssss', $nama, $username, $hash, $role);
|
|
if ($stmt->execute()) {
|
|
$success = 'Registrasi berhasil. Silakan login.';
|
|
} else {
|
|
$error = 'Registrasi gagal: ' . $koneksi->error;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
<!doctype html>
|
|
<html lang="id">
|
|
<head>
|
|
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Registrasi Penerima</title>
|
|
<style>
|
|
*{box-sizing:border-box} body{margin:0;min-height:100vh;font-family:Arial,sans-serif;background:#f1f5f9;display:flex;align-items:center;justify-content:center;padding:20px}.card{width:100%;max-width:460px;background:#fff;border-radius:18px;box-shadow:0 12px 32px rgba(15,23,42,.12);padding:28px}h1{margin:0 0 5px;color:#0f172a;font-size:23px}.muted{color:#64748b;font-size:13px;margin-bottom:16px}.fg{margin:13px 0}.fg label{display:block;margin-bottom:6px;font-size:13px;font-weight:700;color:#334155}.fg input{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:12px}.btn{width:100%;border:0;border-radius:10px;padding:12px;background:#0f766e;color:#fff;font-weight:700;cursor:pointer}.msg{padding:10px;border-radius:10px;font-size:13px;margin:10px 0}.err{background:#fee2e2;color:#991b1b}.ok{background:#dcfce7;color:#166534}.links{text-align:center;margin-top:15px}.links a{color:#0f766e;text-decoration:none;font-weight:700}
|
|
</style>
|
|
</head>
|
|
<body><div class="card">
|
|
<h1>Registrasi Penerima</h1><div class="muted">Akun ini digunakan untuk mengajukan penerima bantuan melalui peta.</div>
|
|
<?php if($error): ?><div class="msg err"><?= htmlspecialchars($error) ?></div><?php endif; ?>
|
|
<?php if($success): ?><div class="msg ok"><?= htmlspecialchars($success) ?></div><?php endif; ?>
|
|
<form method="post">
|
|
<div class="fg"><label>Nama Lengkap</label><input name="nama" required></div>
|
|
<div class="fg"><label>Username</label><input name="username" required></div>
|
|
<div class="fg"><label>Password</label><input type="password" name="password" required></div>
|
|
<div class="fg"><label>Konfirmasi Password</label><input type="password" name="password2" required></div>
|
|
<button class="btn">Daftar</button>
|
|
</form>
|
|
<div class="links"><a href="login.php">Kembali ke login</a></div>
|
|
</div></body></html>
|