加固-11(P0-09): 修复 agent 端 tckm.html 卡密管理页前后端契约断裂(N2)
代理端卡密管理页(agent/html/tckm.html)两个核心功能不可用:
① 状态开关 POST mod=fidkeystatus —— agent/ajax.php 只有复制自 admin 的
case 'tckeystatus'(admin 端 tckm.html 用的名字),UI 永远发不到,
落到文件尾 die('啊嘞嘞???'),开关失效;
② 导出/清空按钮 POST mod=FidKeyOperation 且 dataType:json,但服务端
5 个分支全部 die() 纯文本("您的卡密已就绪…"/"成功删除N行"),
jQuery JSON 解析必失败,按钮全部报错。
修复(对齐同页 KeyOperation 既有的 makejson JSON 契约):
- agent/ajax.php case 'tckeystatus' 改名 'fidkeystatus'(对齐 UI 契约名,
keyid 强制 (int),保持 aid 作用域与 textbooltonum 语义;admin 端
tckeystatus 不受影响)
- FidKeyOperation ExportNoUse/ExportAll → die(makejson(1,'success',array('sign'=>...)))
(UI code===1 分支取 data.sign 走 download 会话下载)
- DelNoUse/DelUse/DelAll → die(makejson(2,'success',array('nums'=>...)))
(UI code===2 分支提示影响行数)
- FidKeyOperation 补 default 分支:未知操作显式返回 makejson(-1),
不再静默落到文件尾「啊嘞嘞???」
回归(P0-09 22 项全 PASS,8082 内置服务器):
- fidkeystatus:开关开/关正确落库(status 1<->0);他人 keyid 被拒;
旧名 tckeystatus 在 agent 端确认已不存在
- ExportNoUse/ExportAll:JSON code=1+sign,download 会话下载内容
正确(未用/全部卡密)
- DelUse/DelNoUse:JSON code=2+nums,行数正确
- 未知操作:JSON code=-1
- 完整数据链(app->grade->fid->agent->creatfidkey)验证通过
This commit is contained in:
+14
-7
@@ -1062,8 +1062,10 @@ switch ($_GET['mod']) {
|
||||
die(json_encode(array('code'=>'1','sign'=>$sign,'keys'=>'您的卡密如下:'.$keylist)));
|
||||
}
|
||||
break;
|
||||
case 'tckeystatus':
|
||||
if(!$db->update('sq_fidkey',array('ID'=>$_POST['keyid'],'aid'=>$_SESSION['agent_id']),'AND',array('status'=>textbooltonum($_POST['status'])))){
|
||||
case 'fidkeystatus':
|
||||
// P0-09: 原 case 名 tckeystatus 与代理端 UI 契约(agent/html/tckm.html 发 mod=fidkeystatus)错位,
|
||||
// 状态开关一直落到文件尾「啊嘞嘞???」而失效;改名对齐,保持 aid 作用域与 textbooltonum 语义
|
||||
if(!$db->update('sq_fidkey',array('ID'=>(int)$_POST['keyid'],'aid'=>$_SESSION['agent_id']),'AND',array('status'=>textbooltonum($_POST['status'])))){
|
||||
die('更新失败'.$db->geterror());
|
||||
}else{
|
||||
die('成功');
|
||||
@@ -1171,7 +1173,9 @@ switch ($_GET['mod']) {
|
||||
}
|
||||
$sign = rand_str(32);
|
||||
$_SESSION['cards'][$sign] = $keylist;
|
||||
die('您的卡密已就绪,<a href="../ajax.php?mod=download&sign='.$sign.'">点击这里下载卡密</a>');
|
||||
// P0-09: tckm.html 以 dataType:json 消费本模块(code===1 分支取 data.sign),
|
||||
// 原纯文本 die 导致 jQuery JSON 解析必失败;对齐 KeyOperation 的 makejson 契约
|
||||
die(makejson(1, 'success', array('sign' => $sign)));
|
||||
break;
|
||||
case 'ExportAll':
|
||||
$result = $db->select_all_row('sq_fidkey','kami',array('fid'=>$_POST['fid'],'aid'=>$_SESSION['agent_id'],'status'=>1));
|
||||
@@ -1181,21 +1185,24 @@ switch ($_GET['mod']) {
|
||||
}
|
||||
$sign = rand_str(32);
|
||||
$_SESSION['cards'][$sign] = $keylist;
|
||||
die('您的卡密已就绪,<a href="../ajax.php?mod=download&sign='.$sign.'">点击这里下载卡密</a>');
|
||||
die(makejson(1, 'success', array('sign' => $sign)));
|
||||
break;
|
||||
case 'DelNoUse':
|
||||
$db->delete('sq_fidkey',array('usetime'=>0,'fid'=>$_POST['fid'],'status'=>1,'aid'=>$_SESSION['agent_id']),'AND');
|
||||
die('成功删除'.(int)$db->affected_num().'行');
|
||||
die(makejson(2, 'success', array('nums' => (int)$db->affected_num())));
|
||||
break;
|
||||
case 'DelUse':
|
||||
// P0-06: fid 裸拼进 DELETE SQL,强制整型
|
||||
$db->delete('sq_fidkey', '`usetime` > 0 AND `fid` = '.(int)$_POST['fid'].' AND `aid` = '.(int)$_SESSION['agent_id'].' AND `status` = 1','AND');
|
||||
die('成功删除'.(int)$db->affected_num().'行');
|
||||
die(makejson(2, 'success', array('nums' => (int)$db->affected_num())));
|
||||
break;
|
||||
case 'DelAll':
|
||||
$db->delete('sq_fidkey',array('fid'=>$_POST['fid'],'aid'=>$_SESSION['agent_id']),'AND');
|
||||
die('成功删除'.(int)$db->affected_num().'行');
|
||||
die(makejson(2, 'success', array('nums' => (int)$db->affected_num())));
|
||||
break;
|
||||
// P0-09: 未知操作显式返回 JSON 错误,不再静默落到文件尾「啊嘞嘞???」(dataType:json 必解析失败)
|
||||
default:
|
||||
die(makejson(-1, '未知操作:'.$_POST['operation']));
|
||||
}
|
||||
break;
|
||||
case 'KeyOperation':
|
||||
|
||||
Reference in New Issue
Block a user