diff --git a/admin/ajax.php b/admin/ajax.php index 7e82416..5f8e870 100644 --- a/admin/ajax.php +++ b/admin/ajax.php @@ -472,6 +472,10 @@ switch ($_GET['mod']){ if (empty($_POST['gid'])){ die('等级ID不能为空'); } + // P0-10: 折率修改下限校验(同 addgrade,防 0 折免费开卡) + if ($_POST['mod'] == 'fracture' && (!is_numeric($_POST['value']) || (float)$_POST['value'] <= 0)){ + die('折率必须为大于0的数字'); + } if (!$db->update('sq_level',array('ID'=>$_POST['gid']),'AND',array($_POST['mod']=>$_POST['value']))){ die('修改失败'.$db->geterror()); }else{ @@ -609,7 +613,12 @@ switch ($_GET['mod']){ } break; case 'addgrade': - if(!$db->insert_back_id('sq_level',array('lname'=>$_POST['grade_name'],'appid'=>$_POST['app'],'fracture'=>$_POST['grade_present'],'price'=>$_POST['grade_price'],'discount'=>'1'))){ + // P0-10: 折率入库端校验(必须 >0 的数字)——零/负折率会使代理端 + // spendmoney 恒 ≤0、余额检查形同虚设(0 折免费开卡) + if (!is_numeric($_POST['grade_present']) || (float)$_POST['grade_present'] <= 0){ + die('折率必须为大于0的数字'); + } + if(!$db->insert_back_id('sq_level',array('lname'=>$_POST['grade_name'],'appid'=>$_POST['app'],'fracture'=>(float)$_POST['grade_present'],'price'=>$_POST['grade_price'],'discount'=>'1'))){ die('添加失败:'.$db->geterror()); }else{ die('代理级别添加成功!'); diff --git a/agent/ajax.php b/agent/ajax.php index 7c7c78c..0c0e61f 100644 --- a/agent/ajax.php +++ b/agent/ajax.php @@ -431,6 +431,10 @@ switch ($_GET['mod']) { if (!$levelinfo = $db->select_first_row('sq_level', '*', array('ID' => $agentinfo['levelid']), 'AND')) { die(json_encode(array('code' => -2, 'msg' => '代理对应的等级信息获取失败!'))); } + // P0-10: 折率下限校验(同 creatfidkey)——0/负折率会 0 元开卡 + if ((float)$levelinfo['fracture'] <= 0){ + die(json_encode(array('code' => -5, 'msg' => '代理等级折率配置异常(≤0),请联系管理员修复'))); + } $applist = explode(',', $levelinfo['appid']); $backinfo = array(); if (!in_array($fidinfo['appid'], $applist)) { @@ -1025,9 +1029,6 @@ switch ($_GET['mod']) { die(json_encode(array('code'=>'-1','msg'=>'生成的数量不能为空或者0或者负数'))); } $time = time(); - if ($count <= 0){ - die(json_encode(array('code'=>'-1','msg'=>'卡密金额不能为空或者0或者负数'))); - } if (!$fidinfo = $db->select_first_row('sq_fidlist', '*', array('ID' => $_POST['sc_fid']), 'AND')) { die(json_encode(array('code' => -2, 'msg' => '无法找到该商品,请刷新页面重试'))); } @@ -1037,6 +1038,11 @@ switch ($_GET['mod']) { if (!$levelinfo = $db->select_first_row('sq_level', '*', array('ID' => $agentinfo['levelid']), 'AND')) { die(json_encode(array('code' => -2, 'msg' => '代理对应的等级信息获取失败!'))); } + // P0-10: 折率下限校验——fracture 为 0/负数时 spendmoney 恒 ≤0, + // 余额检查形同虚设,零余额代理可无限免费开卡(N4 死代码的原始隐患) + if ((float)$levelinfo['fracture'] <= 0){ + die(json_encode(array('code' => -5, 'msg' => '代理等级折率配置异常(≤0),请联系管理员修复'))); + } $spendmoney = $fidinfo['agentprice'] * $count * $levelinfo['fracture']; if ($spendmoney > $agentinfo['money']){ die(makejson(-10,'代理余额不足'.$spendmoney.',请先进行充值'));