Sabahtan beri çözemiyorum json.parse verip duruyor çıldırmak üzereyim lütfen yardım


<?php 
session_start(); 

error_reporting(E_ALL);
ini_set('display_errors', 1);

if (isset($_SESSION['isLogged']) && $_SESSION['isLogged'] === true) {
    echo json_encode(['status' => 'redirect', 'url' => BASE_URL . '/Home']);
    exit; // Sonlandır
}
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require '/xampp/htdocs/PHPMailer/src/Exception.php';
require '/xampp/htdocs/PHPMailer/src/PHPMailer.php';
require '/xampp/htdocs/PHPMailer/src/SMTP.php';
// PDO bağlantısı
global $DBSettings;
$pdo = new PDO("odbc:DRIVER={$DBSettings['driver']};SERVER={$DBSettings['server']};DATABASE={$DBSettings['game_db']};charset=UTF-8", $DBSettings['uid'], $DBSettings['pass']);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Çıkış tamponlamasını başlat
ob_start();
// JSON yanıt türünü belirt
header('Content-Type: application/json');
// Kullanıcı kaydı işlemi
if (isset($_POST['strUserID'])) {
    $strUserID = trim($_POST['strUserID']);
    $Mail = trim($_POST['Mail']);
    $Password = trim($_POST['Password']);
    $RePassword = trim($_POST['RePassword']);
    $PhoneNumber = trim($_POST['PhoneNumber']);
    // Form doğrulama
    if (!$strUserID || !$Mail || !$Password || !$RePassword || !$PhoneNumber) {
        echo json_encode(['status' => 'error', 'message' => 'Lütfen tüm alanları doldurunuz.']);
        ob_end_flush();
        exit;
    } else if ($Password !== $RePassword) {
        echo json_encode(['status' => 'error', 'message' => 'Lütfen iki şifrenizi de aynı giriniz.']);
        ob_end_flush();
        exit;
    }
    // Kullanıcı, telefon ve mail var mı kontrol et
    $stmt = $pdo->prepare("SELECT COUNT(*) as count FROM DATA WHERE strUserID = :strUserID");
    $stmt->execute([':strUserID' => $strUserID]);
    if ($stmt->fetchColumn() > 0) {
        echo json_encode(['status' => 'error', 'message' => 'Bu kullanıcı adı zaten kullanılıyor.']);
        ob_end_flush();
        exit;
    }
    $stmt = $pdo->prepare("SELECT COUNT(*) as count FROM DATA WHERE PhoneNumber = :PhoneNumber");
    $stmt->execute([':PhoneNumber' => $PhoneNumber]);
    if ($stmt->fetchColumn() > 0) {
        echo json_encode(['status' => 'error', 'message' => 'Bu telefon numarası zaten kayıtlı.']);
        ob_end_flush();
        exit;
    }
    $stmt = $pdo->prepare("SELECT COUNT(*) as count FROM DATA WHERE Mail = :Mail");
    $stmt->execute([':Mail' => $Mail]);
    if ($stmt->fetchColumn() > 0) {
        echo json_encode(['status' => 'error', 'message' => 'Bu e-posta adresi zaten kayıtlı.']);
        ob_end_flush();
        exit;
    }
    // 6 basamaklı rastgele bir kod oluştur
    $verificationCode = rand(100000, 999999);
    // Kullanıcının e-postasına doğrulama kodunu gönder
    $mail = new PHPMailer(true);
    try {
        // E-posta ayarları
        $mail->isSMTP();
        $mail->Host = 'SMTP';
        $mail->SMTPAuth = true;
        $mail->Username = 'USER';
        $mail->Password = 'PASS';
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; 
        $mail->Port = 465; 
        $mail->setFrom('MAİL', 'Kayıt Onayı');
        $mail->addAddress($Mail);                
        $mail->isHTML(true);
        $mail->Subject = 'Kayıt Onayı';
        $mail->Body = "Kayıt işleminizi tamamlamak için doğrulama kodunuz: {$verificationCode}";
        if (!$mail->send()) {
            echo json_encode(['status' => 'error', 'message' => 'Email gönderimi başarısız. Hata: ' . $mail->ErrorInfo]);
            ob_end_flush();
            exit;
        }
        // Kullanıcının bilgilerini ve doğrulama kodunu veritabanına kaydet
        $stmt = $pdo->prepare("INSERT INTO DATA (strUserID, Mail, Password, PhoneNumber, VerificationCode, isVerified) VALUES (:strUserID, :Mail, :Password, :PhoneNumber, :VerificationCode, 0)");
        $stmt->execute([
            ':strUserID' => $strUserID,
            ':Mail' => $Mail,
            ':Password' => password_hash($Password, PASSWORD_BCRYPT), // Şifreyi hashle
            ':PhoneNumber' => $PhoneNumber,
            ':VerificationCode' => $verificationCode
        ]);
        echo json_encode(['status' => 'success', 'message' => 'Kayıt başarılı! E-postanıza gönderilen doğrulama kodunu giriniz.']);
        ob_end_flush();            
        exit;            
    } catch (Exception $e) {
        echo json_encode(['status' => 'error', 'message' => 'E-posta gönderimi başarısız. Hata: ' . $e->getMessage()]);
        ob_end_flush();
        exit;
    }
}
if (json_last_error() !== JSON_ERROR_NONE) {
    echo json_encode(['status' => 'error', 'message' => 'JSON encode hatası: ' . json_last_error_msg()]);
    ob_end_flush();
    exit;
}
// Kullanıcı doğrulama işlemi
if (isset($_POST['verificationCode'])) {
    $inputCode = trim($_POST['verificationCode']);
    $strUserID = $_SESSION['strAccountID']; 
    // Veritabanından doğrulama kodunu kontrol et
    $stmt = $pdo->prepare("SELECT VerificationCode, isVerified FROM DATA WHERE strUserID = :strUserID");
    $stmt->execute([':strUserID' => $strUserID]);
    $checkCode = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($checkCode['isVerified'] == 1) {
        echo json_encode(['status' => 'error', 'message' => 'Bu hesap zaten doğrulanmış.']);
        ob_end_flush();
        exit;
    } else if ($checkCode['VerificationCode'] == $inputCode) {
        // Kullanıcıyı doğrula
        $stmt = $pdo->prepare("UPDATE DATA SET isVerified = 1 WHERE strUserID = :strUserID");
        $stmt->execute([':strUserID' => $strUserID]);
        // Oyun veritabanına kullanıcıyı ekleyelim
        $GetHash = $pdo->query("SELECT dbo.HashPasswordString('{$Password}') as HashPW")->fetch(PDO::FETCH_OBJ);
        $stmt = $pdo->prepare("INSERT INTO USER (strAccountID, strPasswd) VALUES (:strUserID, :strPasswd)");
        $stmt->execute([
            ':strUserID' => $strUserID,
            ':strPasswd' => $GetHash->HashPW
        ]);
        $_SESSION['isLogged'] = true;
        $_SESSION['strUserID'] = $strUserID;
        echo json_encode(['status' => 'success', 'message' => 'Hesabınız başarıyla doğrulandı.']);
        ob_end_flush();
        exit;
    } else {
        echo json_encode(['status' => 'error', 'message' => 'Geçersiz doğrulama kodu.']);
        ob_end_flush();
        exit;
    }
}

ob_end_flush();
?>