ПРОБЛЕМА Модуль лотерея

  • Автор темы Jerihon1
  • Дата начала
Jerihon1
Местный
Сообщения
40
Реакции
0
Такая проблема при нажатии на кнопку купить билет ничего не происходит.

Код:
<div class="alct">
<center><h2>Лотерея</h2></center>
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Лотерея";
$usid = $_SESSION["user_id"];
$uname = $_SESSION["user"];

# Настройки лотерея
$amount_lottery = 100; // Стоимость лотерейного билета
$num_bil = 10; // Количество билетов

?>


<div class="descr">

<?PHP

# список предыдущих лотерей
if(isset($_GET["winners"])){ ?>

Пока твои рабы заняты своими непосильными обязанностями, почему бы тебе не поучаствовать в нашей лотерее?<br><br>
Всего в продаже на каждый тур лотереи имеется <b><?=$num_bil; ?></b> билетов. После того, как все билеты будут проданы состоится розыгрыш. Система случайным образом выберет <b>3</b> номера победителей и зачислит им призы. <br><br>
1 место - <b>45% от общего банка</b> (<?=($amount_lottery * $num_bil) * 0.45; ?> денариев). <br>
2 место - <b>25% от общего банка</b> (<?=($amount_lottery * $num_bil) * 0.25; ?> денариев). <br>
3 место - <b>20% от общего банка</b> (<?=($amount_lottery * $num_bil) * 0.20; ?> денариев). <br>
Остальные 10% составляют комиссию игры.
<br><br>
Стоимость одного билета - <b><?=$amount_lottery; ?> денариев</b>.
<br>
</div>
<div class="decor"></div>

<div class="descr">
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
<br><br>
    <td colspan="6" align="center"><h4>Завершенные лотереи</h4></td>
    </tr>
  <tr>
    <td align="center" class="m-tb">№</td>
    <td align="center" class="m-tb">Пользователь<BR />[Билет]</td>
    <td align="center" class="m-tb">Пользователь<BR />[Билет]</td>
    <td align="center" class="m-tb">Пользователь<BR />[Билет]</td>
    <td align="center" class="m-tb">Банк</td>
    <td align="center" class="m-tb">Дата</td>
  </tr>
</div>
  <?PHP
 
  $db->Query("SELECT * FROM db_lottery_winners ORDER BY id DESC");
 
    if($db->NumRows() > 0){
 
          while($ref = $db->FetchArray()){
        
        ?>
        <tr class="htt">
            <td align="center"><?=$ref["id"]; ?></td>
            <td align="center"><?=$ref["user_a"]; ?><BR />Билет: <?=$ref["bil_a"]; ?></td>
            <td align="center"><?=$ref["user_b"]; ?><BR />Билет: <?=$ref["bil_b"]; ?></td>
            <td align="center"><?=$ref["user_c"]; ?><BR />Билет: <?=$ref["bil_c"]; ?></td>
            <td align="center"><?=$ref["bank"]; ?></td>
            <td align="center"><?=date("d.m.Y",$ref["date_add"]); ?></td>
          </tr>
        <?PHP
        
        }
 
    }else echo '<tr><td align="center" colspan="6">Нет записей</td></tr>'
  ?>

 
</table>

<div class="clr"></div></div>
<?PHP return; } ?>


Пока твои рабы заняты своими непосильными обязанностями, почему бы тебе не поучаствовать в нашей лотерее?<br><br>
Всего в продаже на каждый тур лотереи имеется <b><?=$num_bil; ?></b> билетов. После того, как все билеты будут проданы состоится розыгрыш. Система случайным образом выберет <b>3</b> номера победителей и зачислит им призы. <br><br>
1 место - <b>30% от общего банка</b> (<?=($amount_lottery * $num_bil) * 0.30; ?> денариев). <br>
2 место - <b>25% от общего банка</b> (<?=($amount_lottery * $num_bil) * 0.25; ?> денариев). <br>
3 место - <b>20% от общего банка</b> (<?=($amount_lottery * $num_bil) * 0.2; ?> денариев). <br>
Остальные 25% составляют комиссию игры.
<br><br>
Стоимость одного билета - <b><?=$amount_lottery; ?> денариев</b>.
<br>
</div>
<div class="decor"></div>


<br><br>
<div class="descr2">
<center><a href="/account/lottery/winners">Список завершенных лотерей</a></center><br>
<?PHP


    if(isset($_POST["set_lottery"], $_POST["hash"]) AND $_SESSION["lot_hash"] == $_POST["hash"]){
    
        $db->Query("SELECT money_b FROM db_users_b WHERE id = '{$usid}' LIMIT 1");
        if($db->FetchRow() >= $amount_lottery){
        
            $db->Query("UPDATE db_users_b SET money_b = money_b - '$amount_lottery' WHERE id = '{$usid}'");
            $db->Query("INSERT INTO db_lottery (user_id, user, date_add) VALUE ('$usid','$uname','".time()."')");
            $lid = $db->LastInsert();
            
            if( $lid >= $num_bil){
            
                # Розыгрываем призы
                while(true){
                
                    $winner_a = rand(1, $num_bil);
                    $winner_b = rand(1, $num_bil);
                    $winner_c = rand(1, $num_bil);
                    
                    if($winner_a != $winner_b AND $winner_b != $winner_c AND $winner_c != $winner_a) break;
                    
                }
                
                # Пользователь 1
                $db->Query("SELECT user FROM db_lottery WHERE id = '$winner_a'");
                $user_a = $db->FetchRow();
                
                # Пользователь 2
                $db->Query("SELECT user FROM db_lottery WHERE id = '$winner_b'");
                $user_b = $db->FetchRow();
                
                # Пользователь 3
                $db->Query("SELECT user FROM db_lottery WHERE id = '$winner_c'");
                $user_c = $db->FetchRow();
                
                # чистим таблицу
                $db->Query("TRUNCATE TABLE db_lottery");
                
                # Вставляем запись о победителях
                $all_bank = ($num_bil * $amount_lottery);
                $db->Query("INSERT INTO db_lottery_winners (user_a, bil_a, user_b, bil_b, user_c, bil_c, bank, date_add)
                VALUES ('$user_a','$winner_a','$user_b','$winner_b','$user_c','$winner_c','$all_bank','".time()."')");
                
                # Обновляем средства пользователям
                # 1 место
                $money_a = $all_bank * 0.5;
                $db->Query("UPDATE db_users_b SET money_b = money_b + '$money_a' WHERE user = '$user_a'");
                
                # 2 место
                $money_b = $all_bank * 0.25;
                $db->Query("UPDATE db_users_b SET money_b = money_b + '$money_b' WHERE user = '$user_b'");
                
                # 3 место
                $money_c = $all_bank * 0.20;
                $db->Query("UPDATE db_users_b SET money_b = money_b + '$money_c' WHERE user = '$user_c'");
                
                echo "<center><b><font color='blue'>Лотерея окончена</font></b></center><BR />";
                
            }else echo "<center><b><font color='blue'>Билет успешно куплен</font></b></center><BR />";
            
        }else echo "<center><b><font color='blue'>Недостаточно денариев для покупки билета!</font></b></center><BR />";
        
    }

?>

<center>
<?PHP
$_SESSION["lot_hash"] = rand(1, 9999999);
?>
<form action="" method="post">
<input type="submit" name="set_lottery" value="Купить билет" class="ticketbutton" style="padding:7px;">
<input type="hidden" name="hash" value="<?=$_SESSION["lot_hash"]; ?>">
</form>
</center>
<br>
</div>
<div class="decor"></div>



<div class="descr2">
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td colspan="5" align="center"><h4>Пользователи купившие билеты</h4></td>
    </tr>
  <tr>
    <td align="center" class="m-tb">№ билета</td>
    <td align="center" class="m-tb">Пользователь</td>
    <td align="center" class="m-tb">Дата</td>
  </tr>
  <?PHP
 
  $db->Query("SELECT * FROM db_lottery ORDER BY id DESC");
 
    if($db->NumRows() > 0){
 
          while($ref = $db->FetchArray()){
        
        ?>
        <tr class="htt">
            <td align="center"><?=$ref["id"]; ?></td>
            <td align="center"><?=$ref["user"]; ?></td>
            <td align="center"><?=date("d.m.Y",$ref["date_add"]); ?></td>
          </tr>
        <?PHP
        
        }
 
    }else echo '<tr><td align="center" colspan="3">Нет записей</td></tr>'
  ?>

 
</table><div class="clr"></div>   


</div>
<br><br><br>
 
Jerihon1
Местный
Сообщения
40
Реакции
0
и в чем проблема
 
Jerihon1
Местный
Сообщения
40
Реакции
0
isset - Определяет, была ли установлена переменная значением отличным от NULL
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Telegram
pligin
Jerihon написал(а):
isset - Определяет, была ли установлена переменная значением отличным от NULL
А дальше читал? Смотрел примеры?
"ПЕРЕМЕННАЯ", т.е. isset($var).
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Telegram
pligin
И нихрена нет ни слова про "ПЕРЕМЕННЫЕ", а у тебя используется функция как isset($var1,$var2)
 
Jerihon1
Местный
Сообщения
40
Реакции
0
мне б решение, я не силен особо
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Telegram
pligin
Jerihon написал(а):
мне б решение, я не силен особо
Понял, принял, закрепил...
Это
Jerihon написал(а):
if(isset($_POST["set_lottery"], $_POST["hash"]) AND $_SESSION["lot_hash"] == $_POST["hash"])
Замени на
Код:
if(isset($_POST["set_lottery"]) AND isset($_POST["hash"]) AND $_SESSION["lot_hash"] == $_POST["hash"])
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
  • #11
Jerihon написал(а):
В index.php в корне, после
PHP:
# Старт буфера
ob_start();
добавить:

PHP:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
Это выведет все ошибки.
 
Jerihon1
Местный
Сообщения
40
Реакции
0
  • #12
проблема не решена
 
Jerihon1
Местный
Сообщения
40
Реакции
0
  • #13
pligin написал(а):
Понял, принял, закрепил...
Это

Замени на
Код:
if(isset($_POST["set_lottery"]) AND isset($_POST["hash"]) AND $_SESSION["lot_hash"] == $_POST["hash"])
код прописал все тоже самое. при нажатии купить билет ничего не происходит
 
Jerihon1
Местный
Сообщения
40
Реакции
0
  • #15
Jerihon1
Местный
Сообщения
40
Реакции
0
  • #16
ну точнее с этим модулем не выводит, а так ошибки выводит
 
serega393
Местный
Сообщения
43
Реакции
1
  • #17
Jerihon написал(а):
ну точнее с этим модулем не выводит, а так ошибки выводит
в самом верху этого файла (который в первом посте) напиши
Код:
<?php print_r($_POST); ?>
... затем нажми на кнопочку "Купить" и то что отобразится пиши сюда...
 
Jerihon1
Местный
Сообщения
40
Реакции
0
  • #18
Array ( [set_lottery] => Купить билет [hash] => 9967894 )
 
serega393
Местный
Сообщения
43
Реакции
1
  • #19
Jerihon написал(а):
Array ( [set_lottery] => Купить билет [hash] => 9967894 )
а теперь такую запись добавь также вверху
Код:
<?php echo isset($_SESSION['lot_hash']) ? $_SESSION['lot_hash'] : 'Что то пошло не так...'; ?>
 
Jerihon1
Местный
Сообщения
40
Реакции
0
  • #20
Array ( [set_lottery] => Купить билет [hash] => 5890545 ) 7497707
 
Сверху