<?php
session_start();
// Veritabanı bağlantısı
try {
    $db = new PDO('mysql:host=localhost;dbname=veritabani_adi;charset=utf8', 'kullanici_adi', 'sifre');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Veritabanı bağlantı hatası: " . $e->getMessage());
}
// Kullanıcı giriş durumu
$girisYapildiMi = isset($_SESSION['kullanici_id']) ? true : false;
$cevirmeHakki = 0;
 
// Kod üretme fonksiyonu
function rastgeleKodUret($uzunluk = 8) {
    return substr(str_shuffle("ABCDEFGHJKLMNPQRSTUVWXYZ23456789"), 0, $uzunluk);
}
 
// Kod kayıt işlemi
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['kod_kaydet'])) {
    try {
        $kod = rastgeleKodUret();
        $aciklama = $_POST['aciklama'] ?? 'Kazandı';
        $stmt = $db->prepare("INSERT INTO odul_kodlari (kullanici_id, kod, aciklama) VALUES (:kullanici_id, :kod, :aciklama)");
        $stmt->execute([
            'kullanici_id' => $_SESSION['kullanici_id'],
            'kod' => $kod,
            'aciklama' => $aciklama
        ]);
 
        // UTF-8 için header ekleyelim
        header('Content-Type: application/json; charset=utf-8');
        // Başarılı işlemi döndür ve JSON_UNESCAPED_UNICODE ekleyelim
        echo json_encode(['success' => true, 'kod' => $kod, 'message' => $aciklama], JSON_UNESCAPED_UNICODE);
    } catch (Exception $e) {
        // Hata durumunda JSON döndür
        header('Content-Type: application/json; charset=utf-8');
        echo json_encode(['success' => false, 'message' => 'Kod kaydedilemedi: ' . $e->getMessage()], JSON_UNESCAPED_UNICODE);
    }
    exit;
}
 
 
// Eğer giriş yapılmışsa
if ($girisYapildiMi) {
    $userId = $_SESSION['kullanici_id'];
     
    // Çark hakkını veritabanından sorgula
    $stmt = $db->prepare("SELECT cark_hakki FROM musteri WHERE id = :id");
    $stmt->bindParam(':id', $userId);
    $stmt->execute();
    $cevirmeHakki = (int)$stmt->fetchColumn(); // Çark hakkı değeri
 
    // AJAX ile gelen çark çevirme isteğini işleme
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['cevir'])) {
        if ($cevirmeHakki > 0) {
            // Çark hakkını 1 azalt
            $stmt = $db->prepare("UPDATE musteri SET cark_hakki = cark_hakki - 1 WHERE id = :id");
            $stmt->bindParam(':id', $userId);
            $stmt->execute();
 
            echo json_encode(['success' => true]);
        } else {
            echo json_encode(['success' => false, 'message' => 'Çark hakkınız yok']);
        }
        exit;
    }
}
?>
 
<!-- Modal -->
<?php if ($girisYapildiMi) { ?>
<div class="modal fade custommodal" id="denemeSinavBasvuru" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg" role="document">
        <div class="modal-content">
            <svg data-dismiss="modal" xmlns="http://www.w3.org/2000/svg" width="35px" height="35px">
                <path fill-rule="evenodd" fill="rgb(244, 153, 51)"
                      d="M32.975,23.311 L27.188,17.523 L32.975,11.736 C35.644,9.067 35.644,4.740 32.975,2.071 C30.307,-0.598 25.979,-0.598 23.311,2.071 L17.523,7.858 L11.736,2.071 C9.067,-0.598 4.740,-0.598 2.071,2.071 C-0.598,4.740 -0.598,9.067 2.071,11.736 L7.858,17.523 L2.071,23.311 C-0.598,25.979 -0.598,30.307 2.071,32.975 C4.740,35.644 9.067,35.644 11.736,32.975 L17.523,27.188 L23.311,32.975 C25.979,35.644 30.307,35.644 32.975,32.975 C35.644,30.307 35.644,25.979 32.975,23.311 Z" />
            </svg>
            <main class="cd-main-content text-center">
                <link rel="stylesheet" href="cark/css/reset.css">
                <link rel="stylesheet" href="cark/css/sweetalert2.min.css">
                <link rel="stylesheet" href="cark/css/superwheel.min.css">
                <div class="wheel-letter-spacing"></div>
                <?php if ($cevirmeHakki > 0): ?>
                    <button class="btn btn-round btn-border btn-default wheel-letter-spacing-spin-button">Çevir</button>
                    <a href="?sayfa=satinalma_sayfasi" id="satinAlBtn" style="display:none;" class="btn btn-round btn-border btn-default">Satın Al</a>
                <?php endif; ?>
            </main>
        </div>
    </div>
</div>
<?php } ?>
 
<script src="cark/js/jquery-2.1.1.js"></script>
<script src="cark/js/jquery.superwheel.min.js"></script>
<script src="cark/js/sweetalert2.min.js"></script>
<script src="cark/js/lmcark.js"></script>
 
<script>
jQuery(document).ready(function($){
    let cevirmeHakki = <?= json_encode($cevirmeHakki); ?>;
 
    const olasilikliDonus = () => {
        const olasiliklar = [
            { value: 1, oran: 90 },
            { value: 0, oran: 10 }
        ];
 
        let rastgele = Math.random() * 100;
        let toplam = 0;
        for (let i = 0; i < olasiliklar.length; i++) {
            toplam += olasiliklar[i].oran;
            if (rastgele <= toplam) {
                return olasiliklar[i].value;
            }
        }
        return 0;
    };
 
    $('.wheel-letter-spacing').superWheel({
        slices: [
            { text: "ÖDÜL1", value: 1, message: "Ödül1", discount: "kazanaılanödülkod1", background: "#f1c40f", color: "#fff" },
            { text: "ŞANS YOK", value: 0, message: "Bugün Şansın Yok", discount: "********", background: "#e74c3c", color: "#fff" },
            { text: "ÖDÜL2<br>TASARIM<br>%30", value: 1, message: "Ödül2", discount: "kazanaılanödülkod2", background: "#2980b9", color: "#fff" },
            { text: "KAYBETTİN", value: 0, message: "Kaybettin :(", discount: "********", background: "#333333", color: "#fff" },
            { text: "ÖDÜL3", value: 1, message: "Ödül3 ", discount: "kazanaılanödülkod3", background: "#27ae60", color: "#fff" },
            { text: "HİÇBİR ŞEY", value: 0, message: "Hiçbir şey alamıyorsun :(", discount: "********", background: "#8e44ad", color: "#fff" }
        ],
        width: 500,
        frame: 1,
        type: "spin",
        center: {
            rotate: true,
            image: {
                url: "assets/img/genel/22636.jpg",
                width: 25
            }
        },
        marker: {
            background: "#f1c40f",
            animate: true
        }
    });
 
    const tick = new Audio('cark/media/tick.mp3');
 
    $(document).on('click', '.wheel-letter-spacing-spin-button', function(e){
        if (cevirmeHakki > 0) {
            const secilenDeger = olasilikliDonus();
            $('.wheel-letter-spacing').superWheel('start', 'value', secilenDeger);
            $(this).prop('disabled', true);
        } else {
            Swal.fire({
                title: 'Çark Hakkınız Kalmadı',
                text: 'Yeni hak almak için satın alma yapmalısınız.',
                icon: 'info'
            });
            $(".wheel-letter-spacing-spin-button").hide();
            $("#satinAlBtn").show();
        }
    });
 
    $('.wheel-letter-spacing').superWheel('onStart', function(){
        $('.wheel-letter-spacing-spin-button').text('Çeviriliyor...');
    });
 
    $('.wheel-letter-spacing').superWheel('onStep', function(){
        if (typeof tick.currentTime !== 'undefined') tick.currentTime = 0;
        tick.play();
    });
 
$('.wheel-letter-spacing').superWheel('onComplete', function(results){
    if (results.value === 1) {
        // Kazandıysa kodu kaydet
        $.ajax({
            url: '',
            method: 'POST',
            data: { kod_kaydet: true, aciklama: results.message },
            dataType: 'json',
            success: function(data) {
                if (data.success) {
                    Swal.fire({
                        icon: 'success',
                        title: 'Tebrikler!',
                        html: `<b>Kodunuz: ${data.kod}</b><br>${data.message}`
                    });
                } else {
                    Swal.fire({
                        icon: 'error',
                        title: 'Hata!',
                        text: data.message || 'Bir sorun oluştu, lütfen tekrar deneyin.'
                    });
                }
            },
            error: function(xhr, status, error) {
                console.error('AJAX Hatası:', error);
                console.log('Ham yanıt:', xhr.responseText);
                Swal.fire({
                    icon: 'error',
                    title: 'Sunucu Hatası!',
                    text: 'İşlem sırasında bir hata oluştu. Lütfen daha sonra tekrar deneyin.'
                });
            }
        });
    } else {
        Swal.fire({
            icon: 'error',
            title: "Üzgünüz!",
            text: results.message
        });
    }
 
    cevirmeHakki--;
 
    if (cevirmeHakki > 0) {
        $('.wheel-letter-spacing-spin-button:disabled').prop('disabled', false).text('Çevir');
        $("#satinAlBtn").hide();
    } else {
        $('.wheel-letter-spacing-spin-button').hide();
        $('#satinAlBtn').show();
    }
});
 
});
</script>
 
<!-- Çarkı açmak için -->
<script>
document.addEventListener("DOMContentLoaded", function () {
    const cevirBtn = document.getElementById('cevirBtn');
    const girisYapildi = <?= json_encode($girisYapildiMi); ?>;
    const cevirmeHakki = <?= json_encode($cevirmeHakki); ?>;
 
    if (cevirBtn) {
        cevirBtn.addEventListener('click', function (e) {
            if (girisYapildi && cevirmeHakki > 0) {
                $('#denemeSinavBasvuru').modal('show');
                $.ajax({
                    url: '',
                    method: 'POST',
                    data: { cevir: true },
                    success: function(response) {
                        const data = JSON.parse(response);
                        if (data.success) {
                            Swal.fire({
                                title: 'Çark dönmeye başladı!',
                                text: 'Şansınızı deneyin!',
                                icon: 'success'
                            });
                        } else {
                            Swal.fire({
                                title: 'Çark Hakkı Yok',
                                text: data.message,
                                icon: 'info'
                            });
                        }
                    },
                    error: function() {
                        Swal.fire({
                            title: 'Hata',
                            text: 'Bir şeyler yanlış gitti!',
                            icon: 'error'
                        });
                    }
                });
            } else if (girisYapildi && cevirmeHakki <= 0) {
                Swal.fire({
                    title: 'Çark Hakkı Yok',
                    text: 'Çark hakkınız bitmiş. Lütfen satın alınız.',
                    icon: 'info',
                    showCancelButton: true,
                    confirmButtonText: 'OK',
                    cancelButtonText: 'Satın Al',
                    reverseButtons: true
                }).then((result) => {
                    if (result.dismiss === Swal.DismissReason.cancel) {
                        window.location.href = '?sayfa=satinalma_sayfasi';
                    }
                });
            } else {
                e.preventDefault();
                Swal.fire({
                    title: 'ÇEVİRME YOK!',
                    text: 'Çark şansınız için giriş yapınız.',
                    icon: 'warning'
                });
            }
        });
    }
});
</script>
Bunuda dener misiniz?