goodier

goodier
Рейтинг
36
Регистрация
10.03.2009

dkameleon, Здравствуйте!

Я как раз Ваши XML интерфейсы использую!

Скажите в чем смысл делать через CRON если пользователь ввел сумму на сайте и нажал кнопку выплата и в течении 2-5 секунд ему упала денюжка.

Приходит один и тот же пользователь, пополняет счет и сразу делает заказ

на выплату в форме из которой все значения отправляются через AJAX.

Пользователь знает, что передается и в какой файл,

далее он делает 2 запроса каким то образом, которые в микросекундах одинаковы

и происходит следующее:

1 - Ему в два раза больше чем он внес выплачивается на WebMoney кошелек

2 - Его баланс в Базе данных становится минусовым.

Понять не могу как у него это получается если я в самом начале кода проверяю в условии его баланс, а потом отнимаю заявленную сумму с его баланса в БД.

Ведь когда поступит новый запрос, должно в условии сработать, что заявленная сумма меньше его баланса и функцией EXIT() закончить исполнение PHP кода.

$summa = $_POST['Указанная сумма в форме'];

$balance = $mysql['БАЛАНС USERA из DB'];
$wmcode = $mysql['ID-платежа из DB'];
if($balance == 0){ exit("Недостаточно средств!"); }
/* проверяю в функции баланс пользователя */
if($summa > balance($login)){ exit("Недостаточно средств!"); }
$row_order_id = mysql_fetch_assoc(mysql_query("SHOW TABLE STATUS FROM `DB_name` LIKE 'MY_table'"));
$order_id = $row_order_id['Auto_increment'];
mysql_query("INSERT INTO `PAY_table` (`id`,`login`,`state`) VALUES('$order_id','$login','0')");
mysql_query("UPDATE `USERS_table` SET balance=balance-".$summa." WHERE `login` LIKE '".$login."'");
/* подготавливаю POST ($order_id,summa,login,wmr-кошелек) данные для передачи через CURL */
$state = pay($_POST); /* и отдаю на другой сервер где подключены XML интерфейсы WEBMONEY */
if($state==0){
mysql_query("UPDATE `PAY_table` SET `state`='1' WHERE `id`=".$order_id);
exit("Счет обработан, Деньги выплачены!");
} else {
mysql_query("UPDATE `USERS_table` SET balance=balance+".$summa." WHERE `login` LIKE '".$login."'");
mysql_query("UPDATE `PAY_table` SET `state`='2' WHERE `id`=".$order_id);
}

Елки палки как же я так то.

Спасибо ребята за то что носом ткнули.

все тему закрыта.

Вот что себе навыдумывал и прошу совета у вас:


//**** JQUERY код для выделения всех чекбоксов по классу ****//

<script type="text/javascript">
$(document).ready(function(){
$("#check_all").click(function(){
$('.checkbox').click();
});
});
</script>


//**** это уже сокращенно пхп код вывода юзеров ***//

$query = mysql_query("select * from users WHERE subagent='$sub_code' ORDER BY `id`");
//$all_users = mysql_num_rows($query);
while($row=mysql_fetch_array($query)) {
echo"<tr>
<td align=center bgcolor=666666 style='width:100px;'><b><font color='#FFFFFF'>Пользователи</font></b></td>
<td align=center bgcolor=666666 style='width:100px;'><b><font color='#FFFFFF'>Пароль</font></b></td>
<td bgcolor=666666 style='width:100px;'><b><font color='#FFFFFF'>Удалить<br>
<input id="check_all" type="checkbox">всех</font></b></td>
</tr>
<tr>
<td style='width: 80px;'><table border='0'><tr>
<FORM action='edit_login.php' method='POST'><td>
<INPUT TYPE='text' name='login' style='width: 80px;' VALUE='$row[login]'>
<INPUT TYPE='hidden' name='id' VALUE='$row[id]'>
<INPUT type='hidden' name='sub_code' value='$sub_code'>
<INPUT type='hidden' name='sub_login' value='$sub_login'></td>
</FORM></tr></table></td>

<td style='width: 80px;'><table border='0'><tr>
<FORM action='edit_pass.php' method='POST'><td>
<INPUT TYPE='text' name='pass' style='width: 80px;' VALUE='$row[pass]'>
<INPUT TYPE='hidden' name='id' VALUE='$row[id]'>
<INPUT type='hidden' name='sub_code' value='$sub_code'>
<INPUT type='hidden' name='sub_login' value='$sub_login'></td>
</FORM></tr></table></td>

<td class='text1' align='center'><input name='dell' class='checkbox' value='$row[login]' type='checkbox'></td>
<tr>";
}
echo "<tr>
<td colspan='3' class=stdbtn align=center><table><tr>
<form action='deluserconfirm.php' method='POST'><td class=text1 align=center>
<INPUT type=hidden name='sub_code' value='$sub_code'>
<INPUT type=hidden name='sub_login' value='$sub_login'>
<INPUT type=hidden name='login' value='$row[login]'>
<INPUT type=hidden name='id' value='".$row[0]."'>
<INPUT type=submit class='stdbtn' value='DEL'></td>
</form></tr></table></td></tr>";

Нужно чтоб из таблицы в БД ( Обновлялись ) или удалялись те юзеры у которых выделен чекбокс выделен.

я говорю о цикле в котором находятся <input type='checkbox' name='dell' value='$user'> без тега <form action=''>и после цикла вообще отдельная форма в которой есть субмит <form action='submit' type='submit'> я просто все ни как догнать не могу как поймет последняя форма все выделенные чекбоксы со своими значениями и отправит их в нужный файл

maldivec

Cпасибо за помощь!

Есть еще вопрос, а если в таблице совпадет число убытка у юзеров, как тогда быть?

goodier добавил 08.06.2010 в 21:47

Если у нескольких Юзеров будет одинаковая цифра убытка, как выбрать логин юзера не первого из таблицы а каждый раз разного

пробовал вот так

$retid=mysql_query("SELECT login, (cashin - cashout) AS cashitog FROM users WHERE subagent=".$subagent." AND online='yes' ORDER BY cashitog");

$num = mysql_num_rows($retid);
$i = rand(0,$num-1);
for ($k=0;$k<$i;$k++)
$online = mysql_fetch_array($retid[$k]);
$winner = $online['login'];
echo "1 $winner";
-= Serafim =-:
ioncube, вроде бы, не декодируют

Попытался установить на VDS этот ioncube но не получилось.

Вообще это наверное проблема закодировать PHP скрипты не имея платной софтины типа ZEND под рукой да?

У кого есть опыт в кодировке PHP файлов?

sirota77:
а что, родители пить спиртное уже разрешают ?

Какая тебе разница, ты по теме пиши.

Серьезный ? Ну к примеру такой Encoder после которого нельзя в Notepad++ декодировать.

Одинаково кодирует и декодирует как и Notepad++

этот не подходит, нужно что то серьезное.

Кто уже с этим сталкивался подскажите.

Всего: 78