false, 'error' => 'Email and password are required.']); exit; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo json_encode(['success' => false, 'error' => 'Invalid email format.']); exit; } try { $pdo = db(); // Check if user already exists $stmt = $pdo->prepare("SELECT id FROM users WHERE email = ?"); $stmt->execute([$email]); if ($stmt->fetch()) { echo json_encode(['success' => false, 'error' => 'Email already registered.']); exit; } $password_hash = password_hash($password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO users (email, password_hash) VALUES (?, ?)"); $stmt->execute([$email, $password_hash]); $user_id = $pdo->lastInsertId(); login_user($user_id); echo json_encode(['success' => true]); } catch (PDOException $e) { echo json_encode(['success' => false, 'error' => 'Database error: ' . $e->getMessage()]); }