Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Уважаемые форумчане, кто хочет поломать мозг?
Итак какая была задача:
сделать ежедневный бонус с генерацией 4 кнопок, где различные суммы бонуса. На какую кнопку с соответвствущей суммой пользователь нажимает, та сумма ему и начисляется. Код будет ниже, но вкратце в чем облом: после ПОСТА рандом перерандомливается и пользователь получает другую сумму, нежели была на кнопке. Если ставим ПОСТ перед PHP, то начисляется сумма показанная после нажатия кнопки. Ну причина проста ПОСТ-страница обновляется и рандом срабатывает заново. Всю голову сломал как сделать, без применения Аякса(в нем ни бум-бум), возможно у кого то есть идеи. И собственно фрагмент кода:
сделать ежедневный бонус с генерацией 4 кнопок, где различные суммы бонуса. На какую кнопку с соответвствущей суммой пользователь нажимает, та сумма ему и начисляется. Код будет ниже, но вкратце в чем облом: после ПОСТА рандом перерандомливается и пользователь получает другую сумму, нежели была на кнопке. Если ставим ПОСТ перед PHP, то начисляется сумма показанная после нажатия кнопки. Ну причина проста ПОСТ-страница обновляется и рандом срабатывает заново. Всю голову сломал как сделать, без применения Аякса(в нем ни бум-бум), возможно у кого то есть идеи. И собственно фрагмент кода:
Код:
<?PHP
$ddel = time() + 1;
$dadd = time();
$db->Query("SELECT COUNT(*) FROM ".$pref."_bonus_list WHERE user_id = '$usid' AND date_del > '$dadd'");
$hide_form = false;
if($db->FetchRow() == 0){
// генерация суммы бонуса
$lum = rand($bonus_min, rand($bonus_min, $bonus_max) );
$lum1 = rand($bonus_min, rand($bonus_min, $bonus_max) );
$lum2 = rand($bonus_min, rand($bonus_min, $bonus_max) );
$lum3 = rand($bonus_min, rand($bonus_min, $bonus_max) );
# Выдача бонуса
if(isset($_POST["bonus"])){
// массив кнопок
$array_bonus = array(1 => "1", 2 => "2", 3 => "3", 4 => "4");
$bonu = intval($_POST["bonus"]);
$bonran = $array_bonus[$bonu];
// задаем значение начисляемого бонуса
if($bonran = 1){
$sum = $lum;
}
elseif($bonran = 2){
$sum = $lum1;
}
elseif($bonran = 3){
$sum = $lum2;
}
elseif($bonran = 4){
$sum = $lum3;
}
# Зачилсяем юзверю
$db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sum' WHERE id = '$usid'");
# Вносим запись в список бонусов
$db->Query("INSERT INTO ".$pref."_bonus_list (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
echo "<center><font color = 'green'><b>На Ваш счет для покупок зачислен бонус в размере {$sum} изумрудов</b></font></center><BR />";
$hide_form = true;
}
# Показывать или нет форму
if(!$hide_form){
?>
<form action="" method="post">
<table width="330" border="0" align="center">
<tr>
<td align="center"></td>
</tr>
<tr>
<td align="center"><input type="hidden" name="bonus" value="1" /><input type="submit" value="<?=$lum;?>" class="button2" style="height: 30px; margin-top:10px;"></td>
</tr>
</table>
</form>
<form action="" method="post">
<table width="330" border="0" align="center">
<tr>
<td align="center"></td>
</tr>
<tr>
<td align="center"><input type="hidden" name="bonus" value="2" /><input type="submit" value="<?=$lum1;?>" class="button2" style="height: 30px; margin-top:10px;"></td>
</tr>
</table>
</form>
<form action="" method="post">
<table width="330" border="0" align="center">
<tr>
<td align="center"></td>
</tr>
<tr>
<td align="center"><input type="hidden" name="bonus" value="3" /><input type="submit" value="<?=$lum2;?>" class="button2" style="height: 30px; margin-top:10px;"></td>
</tr>
</table>
</form>
<form action="" method="post">
<table width="330" border="0" align="center">
<tr>
<td align="center"></td>
</tr>
<tr>
<td align="center"><input type="hidden" name="bonus" value="4" /><input type="submit" value="<?=$lum3;?>" class="button2" style="height: 30px; margin-top:10px;"></td>
</tr>
</table>
</form>
<br>
<?PHP
}
}else echo "<center><font color = 'red'><b>Вы уже получали бонус за последние 24 часа</b></font></center><BR />"; ?>
Андрей
Участник
- Сообщения
- 241
- Реакции
- 55
Как тут скорее всего он хочет сделатьkvozimir написал(а):а суть модуль какова?

Там есть 4 кнопки и скрипт генерирует валюту и число. Но это уже совсем другая история...
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Совершенно верно. Только без валют на вывод/покупкиАндрей написал(а):Как тут скорее всего он хочет сделать
![]()
Там есть 4 кнопки и скрипт генерирует валюту и число. Но это уже совсем другая история...![]()
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Превосходно, когда пользователи сами догадываются и отвечают на свои вопросы))Kojo написал(а):Всё, реализовал, через промежуточное значение в БД
А так идея очень интересна, мне понравилось ) +
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
и нахрена все это писать в базу? зачем? А вы никогда не слышали про сессию в PHP
Взяли записали нужные вам рандомы в сессию и уже оттуда вытягивать нужные вам значения! Потом после получения уничтожать данную сессию и все! Так же если чел будет просто обновлять страницу, то Вам не будет сыпаться кучать записей в базу, а просто будет перезаписываться одна переменная!
Взяли записали нужные вам рандомы в сессию и уже оттуда вытягивать нужные вам значения! Потом после получения уничтожать данную сессию и все! Так же если чел будет просто обновлять страницу, то Вам не будет сыпаться кучать записей в базу, а просто будет перезаписываться одна переменная!
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Так есть теперь возможность переписатьKojo написал(а):Именно для этого я просил помощи в этой теме. Вы бы вчера ответили, может сделал бы по другому. В данный момент сделал так, как сам придумал
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Так ведь Вы пишете модуль, и не знаете про сессию? Ведь это тоже нужно учитывать если данный модуль предназначен для пользователей! А как я знаю в фф используются сессии! Значит вы и про нее не должны забывать? Да уж))))Kojo написал(а):С сессиями не работал ни разу, поэтому имею о них поверхностное знание