PHP Ajax等待功能完成,然后用户才能再次调用它

时间:2018-07-11 02:31:02

标签: php ajax

我拥有的是:

用户帐户上有100点。该功能将从他的余额中减去10点。然后,这10点将转到另一个用户。

问题在于,如果用户向该按钮发送11次垃圾邮件,即使余额为0,另一个用户仍然获得+10分。这是因为该函数一次执行了多次。

所以我基本上有和这个问题一样的问题,但是我必须在服务器端处理它。 Wait for function to finish before starting again

示例代码:

function subtract() {
    $.ajax({
        type: 'POST',
        url: 'verify.php',
        data: {
            'token':token
        },
        complete: function(r) {
            var success = r.responseText;
        }
    });
}

verify.php

$getCurrentBalance; //Points from Database
$subtract = $getCurrentBalance - 10;

updateBalance(); //Update the users balance with subtracted Points

所以一切正常,但是我必须在服务器端检查功能是否已完成,然后用户才能再次调用它。

1 个答案:

答案 0 :(得分:2)

您可以认为它更像是一条评论,但我强烈希望指出,建议客户端解决方案不应是解决问题的好方法,因为客户端不能也不应该被信任。

解决该问题的一种方法可能是在进行交易时“锁定”帐户。锁可以由布尔值组成;例如,对于未锁定,为true;对于锁定为false。锁本身应位于数据库表本身中。从您的编程中,您可以使用CSS“禁用”按钮。这样一来,您既可以涵盖外观又可以涵盖功能。