【问题标题】:Limit submitting many requests Ajax php form限制提交许多请求Ajax php表单
【发布时间】:2015-12-18 09:21:11
【问题描述】:

我想统计提交表单的数量,当数量达到 3。Ajax 应该显示错误信息。

我试过给会话分配计数,当计数> 3时我只是给出错误的查询(如果查询中有语法错误,ajax会显示错误)

我的 ajax

$.ajax({
    url:'vals/process.php', 
    data:$(this).serialize(),
    type:'POST',
    success:function(data){
    console.log(data);
        swal("Thank you", "success :)", "success");
    },
    error:function(data){
        swal("Sorry", "error", "error");
    }
});

这是我的 php

$_SESSION['limitRequest'] = 0;

if($_SESSION['limitRequest'] < 3){
    $SQL = "insert into packageorder( id, name) values( '$id', '$name' )";
    $_SESSION['limitRequest']++;
}
else{
    $SQL = "exceed the limit";
}

$Query = mysqli_query($connecDB,$SQL);

从逻辑上讲,我相信这种方法应该有效,但我认为它并没有增加$_SESSION['limitRequest'] 的价值。

我们该如何解决这个问题?如果我的方法不可用,如何限制用户在 ajax 中提交这么多请求?

【问题讨论】:

  • 您将限制设置为 0,然后检查它是否小于 3。当然小于 3。
  • :) 准确地说,在您开始会话的位置设置会话变量
  • 哦,伙计。我现在明白了,谢谢@durbnpoisn
  • 这就是你在困倦时编码时会发生的情况。)))你看不到小东西

标签: php jquery ajax session


【解决方案1】:

不要在每次执行时设置$_SESSION['limitRequest'] = 0,试试这个

if ( ! isset($_SESSION['limitRequest'] ) {
    $_SESSION['limitRequest'] = 0;
}

if($_SESSION['limitRequest'] < 3){
    $SQL = "insert into packageorder( id, name) values( '$id', '$name' )";
    $_SESSION['limitRequest']++;
} else {
    $SQL = "exceed the limit";
}

$Query = mysqli_query($connecDB,$SQL);

返回错误条件也比在超出限制时使查询失败的内容更好。

if ( ! isset($_SESSION['limitRequest'] ) {
    $_SESSION['limitRequest'] = 0;
}

if($_SESSION['limitRequest'] < 3){
    $SQL = "insert into packageorder( id, name) values( '$id', '$name' )";
    $_SESSION['limitRequest']++;
} else {
    $res = new stdClass();
    $res->error = true;
    $res->errorMsg = "exceed query limit";
    echo json_encode($res);
    exit;
}

$Query = mysqli_query($connecDB,$SQL);

$res = new stdClass();
$res->error = true;    // default status

if ( $Query ) {
    $res->error = false;
    $res->msg = "Update OK";
} else {
    $res->error = true;
    $res->msg = "Query Failed";
}

echo json_encode($res);
exit;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-30
    • 2011-11-09
    • 1970-01-01
    • 2018-03-10
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    相关资源
    最近更新 更多