";
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];
}
}