gpt4 book ai didi

php - 限制提交许多请求Ajax php表单

转载 作者:行者123 更新时间:2023-12-01 07:48:35 27 4
gpt4 key购买 nike

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

我尝试将计数分配给 session ,当计数> 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中提交这么多请求?

最佳答案

不要在每次执行时设置$_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;

关于php - 限制提交许多请求Ajax php表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32699228/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com