<?php
/*
Example of server-side file that returns the number of the item in the prize array that the user is to win.
Up to you how you determine this on your site, for example randomly, or not so randomly.
In this quick example I always return 2 so the user will always win prize 3.
You will need an apache server with PHP installed to run this file. I use XAMPP on my local machine.
*/
@session_start();
if (isset($_SESSION['user_id']) && !empty($_SESSION['user_id']))
{
date_default_timezone_set('Asia/Ho_Chi_Minh');
include "db.php";
$stingvang = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM paymenttb WHERE DATE_FORMAT(VoucherDateTime, '%Y-%m-%d')=DATE_SUB(CURDATE(),INTERVAL 0 DAY) AND Note='QuaySo' AND RwName='Sting V' AND Unit='chai' AND Amount=1 AND UserId='".$_SESSION['user_id']."'"));
$pepsi = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM paymenttb WHERE DATE_FORMAT(VoucherDateTime, '%Y-%m-%d')=DATE_SUB(CURDATE(),INTERVAL 0 DAY) AND Note='QuaySo' AND RwName='Pepsi' AND Unit='chai' AND Amount=1 AND UserId='".$_SESSION['user_id']."'"));
$giai25 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM paymenttb WHERE DATE_FORMAT(VoucherDateTime, '%Y-%m-%d')=DATE_SUB(CURDATE(),INTERVAL 0 DAY) AND Note='QuaySo' AND RwName='Money' AND Unit='dong' AND Amount=25000 AND UserId='".$_SESSION['user_id']."'"));
$giai100 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM paymenttb WHERE DATE_FORMAT(VoucherDateTime, '%Y-%m-%d')=DATE_SUB(CURDATE(),INTERVAL 0 DAY) AND Note='QuaySo' AND RwName='Money' AND Unit='dong' AND Amount=100000 AND UserId='".$_SESSION['user_id']."'"));
$totalprize = $stingvang[0] + $pepsi[0] + $giai25[0] + $giai100[0];
function hamlaygiai ($g0,$g1,$g2,$g3,$g4,$g5,$g6,$g7,$g8) {
$giai = array();
$file = file_get_contents('giai.txt');
$giai_txt = explode("\r\n",$file);
$giai[] = 0;
$array_count = array_count_values($giai_txt);
for($i = 0; $i<$g0; $i++)
{
$giai[] = 0;
}
for($i = $array_count[1]; $i<$g1; $i++)
{
$giai[] = 1;
}
for($i = $array_count[2]; $i<$g2; $i++)
{
$giai[] = 2;
}
for($i = 0; $i<$g3; $i++)
{
$giai[] = 3;
}
for($i = $array_count[4]; $i<$g4; $i++)
{
$giai[] = 4;
}
for($i = 0; $i<$g5; $i++)
{
$giai[] = 5;
}
for($i = $array_count[6]; $i<$g6; $i++)
{
$giai[] = 6;
}
for($i = $array_count[7]; $i<$g7; $i++)
{
$giai[] = 7;
}
for($i = 0; $i<$g8; $i++)
{
$giai[] = 8;
}
return $giai;
}
$getprize1_2 = array();
$getprize1_2 = hamlaygiai (55,7,7,85,0,55,20,0,65);
$getprize25 = array();
$getprize25 = hamlaygiai (50,0,0,100,0,100,100,4,100);
$getprize100 = array();
$getprize100 = hamlaygiai (200,0,0,200,1,600,100,0,200);
$getprize0 = array();
$getprize0 = hamlaygiai (40,0,0,40,0,40,100,0,50);
$result_sum = mysql_query("SELECT SUM(LuotQuay) FROM `usertb`");
$row_sum = mysql_fetch_array($result_sum);
$count_luotquay = $row_sum[0];
$t = $count_luotquay - count($giai);
//for($i = 0; $i<50; $i++)
//{
//$giai[] = 0;
//}
shuffle($getprize0);
shuffle($getprize1_2);
shuffle($getprize25);
shuffle($getprize100);
$giai1 = array();
$prize0 = mt_rand(0,count($getprize0)-1);
$prize1_2 = rand(0,count($getprize1_2)-1);
$giai1[] = $getprize1_2[$prize1_2];
$prize25 = rand(0,count($getprize25)-1);
$giai1[] = $getprize25[$prize25];
$prize100 = rand(0,count($getprize100)-1);
$giai1[] = $getprize100[$prize100];
//shuffle($giai);
$giai = array();
for($i=0;$i<count($giai1);$i++)
{
if ($giai1[$i]==1) $giai[] = 1;
if ($giai1[$i]==2) $giai[] = 2;
if ($giai1[$i]==7) $giai[] = 3;
if ($giai1[$i]==4) $giai[] = 4;
}
sort($giai);
$ketqua = $giai[count($giai)-1];
if ($ketqua==3)
$kqgiai = 7;
else
$kqgiai = $ketqua;
if (empty($kqgiai)) {
$kqgiai = $giai1[rand(0,count($giai1)-1)];
}
//$giai_trung = mt_rand(0,count($giai)-1);
//$giai_thuong = $giai[$giai_trung];
$gtar = array(4,7);
if (in_array($kqgiai,$gtar)) {
$giai2 = $getprize0;
shuffle($giai2);
$giai_thuong = $giai2[$prize0];
} else {
$giai_thuong = $kqgiai;
}
$result = mysql_query("SELECT * FROM usertb WHERE UserId=" . $_SESSION['user_id']);
$rows = mysql_fetch_array($result);
if ($rows["Memo"]!=$_GET["askey"]) exit();
if($rows['LuotQuay']) {
$ar_win = array(4);
$win2 = array(0,1,2,3,5,6,8);
if (in_array($giai_thuong,$ar_win))
{
$choose = rand(0,5);
$cray = array(0,1,3,4,5);
if (in_array($choose,$cray)) {
$win = array(8,5,5,8);
shuffle($win);
$giaiwin = $win[rand(0,count($win)-1)];
} else {
shuffle($win2);
$giaiwin = $win2[rand(0,count($win2)-1)];
}
} else {
$giaiwin = $giai_thuong;
}
if ($totalprize>=1)
{
$getpize = $getprize0;
shuffle($getpize);
$giaiwin = $getpize[$prize0];
}
if ($_GET["open"]==1) {
$_SESSION["giaicuoi"] = $giaiwin;
echo $_SESSION["giaicuoi"];
}
if ($_GET["xacnhan"]) {
$giaiwin = $_SESSION["giaicuoi"];
$lanmoi = -1;
if ($giaiwin==8) $lanmoi = $lanmoi + 1;
if ($giaiwin==6) $lanmoi = $lanmoi + 2;
if ($giaiwin==5) $lanmoi = $lanmoi -1;
$lanmoi = $rows['LuotQuay'] + $lanmoi;
mysql_query("UPDATE usertb SET LuotQuay='{$lanmoi}' WHERE UserId='{$_SESSION['user_id']}'");
$ray = array(0,3,5,8);
if(!in_array($giaiwin,$ray)){
$ngaygio = date('Y-m-d H:i:s');
$idm = $_SESSION['user_id'];
$ghichu = "QuaySo";
//$tien_thuong = 3000*$giai[$giai_trung];
if ($giaiwin==1) { $RewardName="Sting V"; $Amount=1; $Unit = 'chai'; $result = 'trung';}
if ($giaiwin==2) { $RewardName="Pepsi"; $Amount=1; $Unit = 'chai'; $result = 'trung';}
if ($giaiwin==7) { $RewardName="Money"; $Amount=25000; $Unit = 'dong'; $result = 'trung';}
if ($giaiwin==4) { $RewardName="Money"; $Amount=100000; $Unit = 'dong'; $result = 'trung';}
if ($giaiwin==6) { $RewardName="Lixi"; $Amount=2; $Unit = 'luot'; $result = 'trung';}
$sql = 'INSERT INTO `paymenttb` (UserId, VoucherDateTime, PaymentType, Note, RwName, Amount, Unit, TimeTotal, Status)
VALUES ("'.$idm.'","'.$ngaygio.'","4","'.$ghichu.'","'.$RewardName.'","'.$Amount.'","'.$Unit.'",0, false)';
mysql_query($sql);
$sql1 = 'INSERT INTO `log_game` (Hash, UserId, DateTime, Type, Choso, Amount, Result, Status)
VALUES ("'.$rows['Memo'].'","'.$rows['FirstName'].'","'.$ngaygio.'","'.$ghichu.'","'.$RewardName.'","'.$Amount.'","'.$result.'", false)';
echo mysql_query($sql1);
//$tienmoi = $rows['RemainMoney'] + $tien_thuong;
//mysql_query("UPDATE usertb SET RemainMoney='{$tienmoi}' WHERE UserId='{$_SESSION['user_id']}'");
$current = file_get_contents('giai.txt');
$current .= $giaiwin."\r\n";
file_put_contents('giai.txt', $current);
$current2 = file_get_contents('giaithuong.txt');
$current2 .= $giaiwin."|".$rows['FirstName']."\r\n";
file_put_contents('giaithuong.txt', $current2);
unset($_SESSION["giaiwin"]);
}
}//end confirm condition
}
}
?>
Ở lệnh này khi mình down file csmweb về thì mình nghiên cứu lại thì không hiểu nó là array[] gì đó nhưg sau khi đọc lui đọc tới thật kỹ thì mình có nhận xét là một mảng được chạy từ đầu tới cuối khi hết gán cho nó, rồi dùng random để lấy một mảng bất kỳ, lúc đầu mình cũng lấy giải theo cách truyền thống là chọn góc quay rồi chọt vào đó, nhưng vô tình cách đó sẽ khiến khách nghi ngờ quay mãi mà cứ không trúng thì thật là mất mặt, mình fix lại như sau mong các bác góp ý:
$getprize1_2 = array();
$getprize1_2 = hamlaygiai (55,7,7,85,0,55,20,0,65); hàm lấy giải sting vàng, pepsi
$getprize25 = array();
$getprize25 = hamlaygiai (50,0,0,100,0,100,100,4,100); hàm lấy giải 25k
$getprize100 = array();
$getprize100 = hamlaygiai (200,0,0,200,1,600,100,0,200); hàm lấy giải 100k
$getprize0 = array();
$getprize0 = hamlaygiai (40,0,0,40,0,40,100,0,50); hàm lấy giải ko trúng.
ở đây mình có 4 hàm lấy giải là giải 1,2 - rồi giải 25k - rồi cuối cùng là 100k, tỷ lệ thì theo thứ tự mảng, ở đây hamlaygiai(g0,g1,g2,g3,g4,g5,g6,g7,g8) là 9 giải, trong đó mình gán giải g0,g3 không trúng, g2 là giải pepsi, g1 là giải sting vàng, g4 là giải 100k, g5 là giải trừ 1 lượt, g6 là lì xì 2 lượt, g7 là 25k, g8 là thêm 1 lượt.
if ($rows["Memo"]!=$_GET["askey"]) exit(); hàm này để chống gian lận chạy nhiều cửa sổ, askey có thể làm thêm trong file winwheel_1.2.js
$totalprize = $stingvang[0] + $pepsi[0] + $giai25[0] + $giai100[0]; hàm này là quy định số giải thưởng bao nhiêu 1 ngày nếu để 0 là vô hạn.
Nếu lấy tổng giải thưởng trong ngày theo quy định > hơn 2 giải thì sẽ lấy giải bằng cách gọi hàm không trúng, mỗi khách đều bị giới hạn giải thưởng trong ngày. Nếu các bác ko quy định thì để $totalprize =o nhé
if ($totalprize>=2)
{
$getpize = $getprize0;
shuffle($getpize);
$giaiwin = $getpize[$prize0];
}
Để tính lượt sau khi khách quay xong thì dùng hàm này, gán open=1 ở phương thức GET xml ở file winwheel_1.2.js
if ($_GET["open"]==1) {
$_SESSION["giaicuoi"] = $giaiwin;
echo $_SESSION["giaicuoi"];
}
Sau đó cũng gán phương thức get xác nhận ở phần sau khi vòng quay quay xong cũng ở tại winwheel_1.2.js bằng phương thức gán GET xml cũng là xacnhan=1
Cho dù khách có thể làm bất kỳ thứ gì để lấy giải nhanh chóng cũng đều thất bại !