我正在尝试为学校项目创建一个虚构的ATM,但我仍然坚持不懈
一切正常,但我可以从我的帐户中获得比我更多的钱。
例如:
我在数据库中有1300欧元,我输入1400欧元我的系统很高兴地将我的余额从1300更新到-100。
这正是我不想发生的事情。我的代码没有看起来像这样:
if (( /* i have no clue what comes here */ -$bedrag)>0) // This should become something like: IF "value from database" > "amount" (bedrag=amount btw)
{
echo "Het pinnen is gelukt!";
$pinnen= "UPDATE rekeningen SET Saldo= Saldo - '$bedrag' WHERE Rekeningnr ='$nummer'";
mysql_query($pinnen);
}
答案 0 :(得分:0)
我认为您要添加,而不是减去UPDATE
中的金额:
UPDATE rekeningen SET Saldo= Saldo + '$bedrag' WHERE Rekeningnr ='$nummer'
^
然后,您可以使用负值进行提款。
答案 1 :(得分:0)
你应该处理这个应用程序端。查询页面加载所需的信息,并将值保存在sessionStorage中:
window.onload = function() {
sessionStorage.saldoval = "<?php $return['Saldo'] ?>";
}
然后在提交之前使用Javascript验证它。
var saldo = document.getElementById('SaldoInput');
if(saldo.value > sessionStorage.saldoval){
// do something to tell the user they're naughty
return false;
}
您不应该依赖数据库来执行此类验证。
答案 2 :(得分:0)
假设你有一个变量,比如$current_balance
,它在操作之前存储了帐户的余额,你可以这样:
if ($bedrag > $current_balance) {
echo "You don't have enough money, sir!";
}
else {
echo "Het pinnen is gelukt!";
$pinnen= "UPDATE rekeningen SET Saldo= Saldo - '$bedrag' WHERE Rekeningnr ='$nummer'";
mysql_query($pinnen);
}
此外,最好在表格的Saldo
字段上设置检查约束以避免负值。只是说。