"; echo "Error: File firebase.php tidak ditemukan!
"; echo "Dicari di: $configPath"; echo ""; die(); } function isLoggedIn() { return isset($_SESSION['user_token']); } function registerUser($username, $email, $password) { // PROTEKSI: Cek apakah cURL dimuat oleh web server if (!function_exists('curl_init')) { return [ 'success' => false, 'error' => 'Modul cURL tidak aktif di browser. Buka XAMPP Control Panel, klik Stop pada Apache, lalu Start kembali. Pastikan php.ini yang diedit benar.' ]; } $url = "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=" . FIREBASE_API_KEY; $data = json_encode(['email' => $email, 'password' => $password, 'returnSecureToken' => true]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); $err = curl_error($ch); curl_close($ch); if ($err) return ['success' => false, 'error' => 'Gagal koneksi: ' . $err]; $result = json_decode($response, true); if (isset($result['idToken'])) { return ['success' => true]; } else { $message = $result['error']['message'] ?? 'Gagal mendaftar'; if ($message == 'EMAIL_EXISTS') $message = 'Email sudah terdaftar.'; if ($message == 'WEAK_PASSWORD') $message = 'Password terlalu lemah.'; return ['success' => false, 'error' => $message]; } } function loginUser($email, $password) { // PROTEKSI: Cek apakah cURL dimuat oleh web server if (!function_exists('curl_init')) { return [ 'success' => false, 'error' => 'Fitur cURL tidak terbaca oleh Apache. Silakan RESTART Apache di XAMPP Control Panel.' ]; } $url = "https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=" . FIREBASE_API_KEY; $data = json_encode(['email' => $email, 'password' => $password, 'returnSecureToken' => true]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); $result = json_decode($response, true); curl_close($ch); if (isset($result['idToken'])) { $_SESSION['user_token'] = $result['idToken']; $_SESSION['email'] = $result['email']; return ['success' => true]; } else { $message = $result['error']['message'] ?? 'Login Gagal'; if ($message == 'INVALID_LOGIN_CREDENTIALS') $message = 'Email atau password salah.'; return ['success' => false, 'error' => $message]; } }