<?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?