Введите сумму выплаты

В этой статье я опишу, как при заказе выплаты сделать так, чтобы пользователь сам мог выбирать сумму для выплаты, а не выводить все свои заработанные средства.Делается просто — также я учёл комментарии и баги, которые были в старой статье старого сайта.

Открываем convert.php и вставляем после:

.::Заказ выплаты::.
<?
$user=uc($_SESSION["username"]);
require('config.php');
$sql = "SELECT * FROM tb_users WHERE username='$user'";
$result = mysql_query($sql);  
$row = mysql_fetch_array($result);
mysql_close($con);


Следующий код:

if(!(isset($_POST["howmany"])))
{
  ?><center><form action="" method="POST"><input type="text" name="howmany" value="<?=$row["money"] ?>"><br><input type="submit" value="Выплатить"></form></center><br>
<?
  include('footer.php');
  exit();
}
$howmany=$_POST["howmany"];
if($howmany > $row["money"])
{
  echo "<img src="images/error.png" align="middle"> У вас нет столько денег!!!";
include('footer.php');
exit();
}
if($howmany == '')
{
  echo "<img src="images/error.png" align="middle"> Неправильный ввод!!!";
include('footer.php');
exit();
}
if($howmany < 0)
{
  echo "<img src="images/error.png" align="middle"> Неправильный ввод!!!";
include('footer.php');
exit();
}


Далее чуток ниже замените:

if ($row["money"]<$row1["price"])

{

  echo "<img src="images/error.png" align="middle"> На вашем балансе не набрана минимальная для вывода сумма!!!";

  include('footer.php');

  exit();

}


На:

if ($howmany<$row1["price"])

{

  echo "<img src="images/error.png" align="middle"> На вашем балансе не набрана минимальная для вывода сумма!!!";

  include('footer.php');

  exit();

}


И ещё ниже замените:

$money=$row["money"];


На:


$usermoney=$row["money"];
$money=$howmany;


И всё вроде бы ничего, но надо бы сделать, чтобы у юзера отнималась сумма. Для этого вот это:

$sql="update tb_users set money=0 where username='$username'";
mysql_query($sql) or die(mysql_error());


Замените вот этим:

$usermoney=$usermoney-$money;
$sql="update tb_users set money='$usermoney' where username='$username'";
mysql_query($sql) or die(mysql_error());


А теперь учтём баг, описанный в комментариях. Заключается в том, что если ввести желаемую сумму и в качестве разделителя использовать запятую, то сумма с баланса не снимается (к примеру не 0.50, а 0,50)

Правим простой функцией str_replace

Вернёмся к первому шагу и найдём:

$howmany=$_POST["howmany"];


Меняем на:

$howmany=str_replace(",",".",$_POST["howmany"]);


Вот и всё — комментируем.

Автор публикации

не в сети 13 лет

Alex

Комментарии: 0Публикации: 166Регистрация: 19-02-2011

Понравилась статья? Поделись в соц. сетях:

Похожие новости

Отправить комментарий

wpDiscuz
Авторизация
*
*
Регистрация
*
*
*
Генерация пароля