logomerkezi adlı üyeden alıntı: mesajı görüntüle
bundada çevirme hakkı olsada yok diyip satınal butonu çıkıyor
<?php
session_start();
// Hata ayıklama için
error_reporting(E_ALL);
ini_set('display_errors', 1);

// -------------------------------------------------
// 1. VERİTABANI BAĞLANTISI
// -------------------------------------------------
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) {
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode(['success' => false, 'message' => 'Veritabanı bağlantı hatası: ' . $e->getMessage()], JSON_UNESCAPED_UNICODE);
    exit;
}

// -------------------------------------------------
// 2. KULLANICI BİLGİLERİ + ÇARK HAKKI OKUMA
// -------------------------------------------------
$girisYapildiMi = isset($_SESSION['kullanici_id']);
$cevirmeHakki   = 0; // varsayılan

if ($girisYapildiMi) {
    $stmt = $db->prepare("SELECT cark_hakki FROM musteri WHERE id = :id");
    $stmt->execute(['id' => $_SESSION['kullanici_id']]);
    $cevirmeHakki = (int) $stmt->fetchColumn();
}

// -------------------------------------------------
// 3. AJAX İSTEKLERİ
// -------------------------------------------------
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    header('Content-Type: application/json; charset=utf-8');

    // Ham JSON gelmişse dönüştür
    $raw = file_get_contents('php://input');
    if (empty($_POST) && $raw) {
        $_POST = json_decode($raw, true);
    }

    /* ------------------------------------------------
     * 3‑a  KOD KAYIT
     * ------------------------------------------------ */
    if (isset($_POST['kod_kaydet'])) {
        if (!$girisYapildiMi) {
            echo json_encode(['success' => false, 'message' => 'Oturum açmanız gerekiyor'], JSON_UNESCAPED_UNICODE);
            exit;
        }

        try {
            $kod       = substr(str_shuffle('ABCDEFGHJKLMNPQRSTUVWXYZ23456789'), 0, 8);
            $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
            ]);

            echo json_encode(['success' => true, 'kod' => $kod, 'message' => $aciklama], JSON_UNESCAPED_UNICODE);
        } catch (Exception $e) {
            echo json_encode(['success' => false, 'message' => 'Kod kaydedilemedi: ' . $e->getMessage()], JSON_UNESCAPED_UNICODE);
        }
        exit;
    }

    /* ------------------------------------------------
     * 3‑b  ÇEVİRME HAKKI TÜKET
     * ------------------------------------------------ */
    if (isset($_POST['cevir'])) {
        if (!$girisYapildiMi) {
            echo json_encode(['success' => false, 'message' => 'Giriş yapmanız gerekiyor']);
            exit;
        }

        if ($cevirmeHakki > 0) {
            // Hakkı 1 azalt
            $stmt = $db->prepare("UPDATE musteri SET cark_hakki = cark_hakki - 1 WHERE id = :id");
            $stmt->execute(['id' => $_SESSION['kullanici_id']]);
            $cevirmeHakki--; // PHP tarafında da azalt
            echo json_encode(['success' => true, 'kalan_hak' => $cevirmeHakki]);
        } else {
            echo json_encode(['success' => false, 'message' => 'Çark hakkınız yok']);
        }
        exit;
    }
}
?>

<!-- --------------------------------------------------
 4. MODAL + ÖN YÜZ (yalnızca oturum açanlar görür)        
-------------------------------------------------- -->
<?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="35" height="35"><path fill-rule="evenodd" fill="#f49933" d="M32.975 23.311l-5.787-5.788 5.787-5.787a8 8 0 10-11.314-11.314L17.523 7.858 11.736 2.07A8 8 0 002.07 13.384l5.787 5.787-5.787 5.788a8 8 0 1011.314 11.313l5.787-5.787 5.788 5.787a8 8 0 0011.313-11.313z"/></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 endif; ?>

<!-- --------------------------------------------------
 5. SCRIPT DOSYALARI
-------------------------------------------------- -->
<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(function ($) {
    // Hak bilgisini PHP'den al – let olarak
    let cevirmeHakki = parseInt(<?= $cevirmeHakki ?>, 10);

    /* ------------------------------------------------
       ŞANS OLUŞTURMA FONKSİYONU
    ------------------------------------------------ */
    function olasilikliDonus() {
        const olasiliklar = [
            { value: 1, oran: 90 },
            { value: 0, oran: 10 }
        ];
        let r = Math.random() * 100, toplam = 0;
        for (const o of olasiliklar) {
            toplam += o.oran;
            if (r <= toplam) return o.value;
        }
        return 0;
    }

    /* ------------------------------------------------
       SUPERWHEEL KURULUMU
    ------------------------------------------------ */
    $('.wheel-letter-spacing').superWheel({
        slices: [
            { text: 'ÖDÜL1', value: 1, message: 'Ödül1', discount: 'kod1', background: '#f1c40f', color: '#fff' },
            { text: 'ŞANS YOK', value: 0, message: 'Bugün Şansın Yok', discount: '********', background: '#e74c3c', color: '#fff' },
            { text: 'ÖDÜL2', value: 1, message: 'Ödül2', discount: 'kod2', background: '#2980b9', color: '#fff' },
            { text: 'KAYBETTİN', value: 0, message: 'Kaybettin :(', discount: '********', background: '#333', color: '#fff' },
            { text: 'ÖDÜL3', value: 1, message: 'Ödül3', discount: 'kod3', 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');

    /* ------------------------------------------------
       ÇEVİR BUTONU
    ------------------------------------------------ */
    $(document).on('click', '.wheel-letter-spacing-spin-button', function () {
        if (cevirmeHakki > 0) {
            $('.wheel-letter-spacing').superWheel('start', 'value', olasilikliDonus());
            $(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'
            });
            $(this).hide();
            $('#satinAlBtn').show();
        }
    });

    $('.wheel-letter-spacing').superWheel('onStart', function () {
        $('.wheel-letter-spacing-spin-button').text('Çeviriliyor...');
    });

    $('.wheel-letter-spacing').superWheel('onStep', function () {
        tick.currentTime = 0; tick.play();
    });

    /* ------------------------------------------------
       DÖNÜŞ TAMAMLANINCA
    ------------------------------------------------ */
    $('.wheel-letter-spacing').superWheel('onComplete', function (results) {
        if (results.value === 1) {
            // Kazanırsa kod kaydet
            $.post(window.location.href, { kod_kaydet: true, aciklama: results.message }, 'json')
                .done(function (d) {
                    Swal.fire({ icon: 'success', title: 'Tebrikler!', html: '<b>Kodunuz: ' + d.kod + '</b><br>' + d.message });
                })
                .fail(function (xhr) {
                    let msg = 'Bir hata oluştu';
                    try { msg = JSON.parse(xhr.responseText).message; } catch (_) {}
                    Swal.fire({ icon: 'error', title: 'Hata!', text: msg });
                });
        } else {
            Swal.fire({ icon: 'error', title: 'Üzgünüz!', text: results.message });
        }

        // Hakkı azalt ve arayüzü güncelle
        cevirmeHakki--;
        if (cevirmeHakki > 0) {
            $('.wheel-letter-spacing-spin-button').prop('disabled', false).text('Çevir');
            $('#satinAlBtn').hide();
        } else {
            $('.wheel-letter-spacing-spin-button').hide();
            $('#satinAlBtn').show();
        }
    });

    /* ------------------------------------------------
       ÇARKI AÇAN DIŞ BUTON (ör. cevirBtn)
    ------------------------------------------------ */
    const cevirBtn = document.getElementById('cevirBtn');
    if (cevirBtn) {
        cevirBtn.addEventListener('click', function (e) {
            if (!<?= json_encode($girisYapildiMi) ?>) {
                Swal.fire({ title: 'ÇEVİRME YOK!', text: 'Çark şansınız için giriş yapınız.', icon: 'warning' });
                e.preventDefault();
                return;
            }

            if (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: 'Tamam',
                    cancelButtonText: 'Satın Al'
                }).then(r => { if (r.dismiss === Swal.DismissReason.cancel) location.href = '?sayfa=satinalma_sayfasi';});
                return;
            }

            // Sunucuya hak düşür isteği gönder ve modalı aç
            $.post('', { cevir: true }, 'json')
                .done(function (d) {
                    if (d.success) {
                        cevirmeHakki = d.kalan_hak; // güncelle
                        $('#denemeSinavBasvuru').modal('show');
                    } else {
                        Swal.fire({ title: 'Çark Hakkı Yok', text: d.message, icon: 'info' });
                    }
                })
                .fail(() => Swal.fire({ title: 'Hata', text: 'Bir şeyler yanlış gitti!', icon: 'error' }));
        });
    }
});
</script>
Bunu dener misin?