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?