Compare commits

..

No commits in common. "4e8855532ea8ca148d8517a7d802126257c5bbdc" and "949293fd9435c1c198ea05dfb69afe21d88c4d5a" have entirely different histories.

View File

@ -2,61 +2,72 @@
session_start(); session_start();
require_once "Config.php"; require_once "Config.php";
// ===================== REGISTER ===================== // ==========================================
// BAGIAN 1: LOGIKA REGISTER
// ==========================================
if (isset($_POST['btn-register'])) { if (isset($_POST['btn-register'])) {
$username = trim($_POST['username']); $username = $_POST['username'];
$email = trim($_POST['email']); $email = $_POST['email'];
$password = $_POST['password']; $password = $_POST['password'];
$confirm = $_POST['confirm_password']; $confirm = $_POST['confirm_password'];
// validasi // --- 1. VALIDASI DATA ---
if (!$username || !$email || !$password || !$confirm) {
header("Location: index.php?error=kosong"); // Cek Kosong
if (empty($username) || empty($email) || empty($password) || empty($confirm)) {
echo "<script>alert('Semua data wajib diisi!'); window.location='index.php';</script>";
exit; exit;
} }
// Cek Format Email (Biar gak ngawur)
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
header("Location: index.php?error=email"); echo "<script>alert('Format email tidak valid! (contoh: nama@email.com)'); window.location='index.php';</script>";
exit; exit;
} }
// Cek Panjang Password (Minimal 6)
if (strlen($password) < 6) { if (strlen($password) < 6) {
header("Location: index.php?error=pass"); echo "<script>alert('Password terlalu pendek! Minimal 6 karakter.'); window.location='index.php';</script>";
exit; exit;
} }
// Cek Kesamaan Password
if ($password !== $confirm) { if ($password !== $confirm) {
header("Location: index.php?error=confirm"); echo "<script>alert('Password dan Konfirmasi tidak cocok!'); window.location='index.php';</script>";
exit; exit;
} }
// cek user // --- 2. CEK DUPLIKAT DI DATABASE ---
$cek = mysqli_prepare($conn, "SELECT id FROM users WHERE username=? OR email=?"); $stmt = mysqli_prepare($conn, "SELECT id FROM users WHERE username = ? OR email = ?");
mysqli_stmt_bind_param($cek, "ss", $username, $email); mysqli_stmt_bind_param($stmt, "ss", $username, $email);
mysqli_stmt_execute($cek); mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($cek); mysqli_stmt_store_result($stmt);
if (mysqli_stmt_num_rows($cek) > 0) { if (mysqli_stmt_num_rows($stmt) > 0) {
header("Location: index.php?error=exist"); echo "<script>alert('Username atau Email sudah terpakai! Ganti yang lain.'); window.location='index.php';</script>";
exit; exit;
} }
mysqli_stmt_close($stmt);
mysqli_stmt_close($cek); // --- 3. SIMPAN DATA ---
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
$stmtInsert = mysqli_prepare($conn, "INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($stmtInsert, "sss", $username, $email, $hashed_password);
// simpan if (mysqli_stmt_execute($stmtInsert)) {
$hash = password_hash($password, PASSWORD_DEFAULT); echo "<script>alert('Registrasi Berhasil! Silakan Login.'); window.location='index.php';</script>";
$insert = mysqli_prepare($conn, "INSERT INTO users (username,email,password) VALUES (?,?,?)"); } else {
mysqli_stmt_bind_param($insert, "sss", $username, $email, $hash); echo "Error: " . mysqli_error($conn);
mysqli_stmt_execute($insert); }
mysqli_stmt_close($insert); mysqli_stmt_close($stmtInsert);
header("Location: index.php?success=register");
exit;
} }
// ===================== LOGIN ===================== // ==========================================
if (isset($_POST['btn-login'])) { // BAGIAN 2: LOGIKA LOGIN
// ==========================================
else if (isset($_POST['btn-login'])) {
$username = $_POST['username']; $username = $_POST['username'];
$password = $_POST['password']; $password = $_POST['password'];
@ -66,15 +77,20 @@ if (isset($_POST['btn-login'])) {
mysqli_stmt_execute($stmt); mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt); $result = mysqli_stmt_get_result($stmt);
$user = mysqli_fetch_assoc($result); $row = mysqli_fetch_assoc($result);
if (!$user || !password_verify($password, $user['password'])) { // JIKA GAGAL
header("Location: index.php?error=login"); if (!$row || !password_verify($password, $row['password'])) {
// Kirim sinyal error ke HTML (Kotak Merah)
header("Location: index.php?error=gagal");
exit; exit;
} }
$_SESSION['user'] = $user; // JIKA SUKSES
$_SESSION['username'] = $row['username'];
$_SESSION['login'] = true;
header("Location: mainboard.php"); header("Location: mainboard.html");
exit; exit;
} }
?>