首页 > 解决方案 > PHP Ajax 等待函数完成,然后用户才能再次调用它

问题描述

我所拥有的是:

用户在他的帐户上有 100 点。该函数将从他的余额中减去 10 分。然后这 10 点将分配给另一个用户。

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

所以我基本上和这个问题有同样的问题,但我必须在服务器端处理它。 等待功能完成后再重新开始

示例代码:

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

验证.php

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

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

所以一切都很好,但我必须在服务器端检查函数是否已经完成,然后用户才能再次调用它。

标签: phpajax

解决方案


您可以将其视为评论,但我强烈想指出,客户端解决方案的建议不应该是解决问题的好方法,因为客户端不能也不应该被信任。

解决它的一种方法可能是在交易进行时“锁定”帐户。锁可以由一个布尔值组成;例如,未锁定为 true,锁定为 false。锁本身应该在数据库表本身中。从您的编程中,您可以使用 css“停用”按钮。这样一来,您就涵盖了外观和功能。


推荐阅读