/[LeafOK_CVS]/fenglin/bbs/set_life.php
ViewVC logotype

Annotation of /fenglin/bbs/set_life.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13 - (hide annotations)
Wed Apr 16 01:51:52 2025 UTC (11 months ago) by sysadm
Branch: MAIN
Changes since 1.12: +2 -1 lines
Add DB lock

1 sysadm 1.1 <?
2 sysadm 1.8 require_once "../lib/db_open.inc.php";
3 sysadm 1.4 require_once "./common_lib.inc.php";
4 sysadm 1.1 require_once "./session_init.inc.php";
5    
6 sysadm 1.11 $data = json_decode(file_get_contents("php://input"), true);
7    
8     $uid = (isset($data["uid"]) ? intval($data["uid"]) : 0);
9     $life = (isset($data["life"]) ? intval($data["life"]) : 0);
10 sysadm 1.1
11 sysadm 1.11 $result_set = array(
12     "return" => array(
13     "code" => 0,
14     "message" => "",
15     "errorFields" => array(),
16     )
17     );
18    
19     header("Content-Type:application/json; charset=utf-8");
20    
21     // Validate input data
22     if (!isset($_SESSION["BBS_uid"]) || $_SESSION["BBS_uid"] == 0)
23     {
24     $result_set["return"]["code"] = -1;
25     $result_set["return"]["message"] = "没有登录";
26    
27     mysqli_close($db_conn);
28     exit(json_encode($result_set));
29     }
30    
31     if (!(in_array($life, $BBS_life_immortal) || $life == 150))
32     {
33     $result_set["return"]["code"] = -1;
34     $result_set["return"]["message"] = "非法生命值";
35    
36     mysqli_close($db_conn);
37     exit(json_encode($result_set));
38     }
39    
40 sysadm 1.12 if (!$_SESSION["BBS_priv"]->checklevel(P_ADMIN_M | P_ADMIN_S))
41 sysadm 1.11 {
42     $result_set["return"]["code"] = -1;
43     $result_set["return"]["message"] = "没有权限";
44    
45     mysqli_close($db_conn);
46     exit(json_encode($result_set));
47     }
48    
49     // Begin transaction
50     $rs = mysqli_query($db_conn, "SET autocommit=0");
51     if ($rs == false)
52     {
53     $result_set["return"]["code"] = -2;
54     $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
55    
56     mysqli_close($db_conn);
57     exit(json_encode($result_set));
58     }
59    
60     $rs = mysqli_query($db_conn, "BEGIN");
61     if ($rs == false)
62     {
63     $result_set["return"]["code"] = -2;
64     $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
65    
66     mysqli_close($db_conn);
67     exit(json_encode($result_set));
68     }
69    
70     $sql = "SELECT life FROM user_list
71     INNER JOIN user_pubinfo ON user_list.UID = user_pubinfo.UID
72 sysadm 1.13 WHERE user_list.UID = $uid AND user_list.enable
73     FOR UPDATE";
74 sysadm 1.11
75     $rs = mysqli_query($db_conn, $sql);
76     if ($rs == false)
77     {
78     $result_set["return"]["code"] = -2;
79     $result_set["return"]["message"] = "Query user error: " . mysqli_error($db_conn);
80    
81     mysqli_close($db_conn);
82     exit(json_encode($result_set));
83     }
84    
85     if($row = mysqli_fetch_array($rs))
86     {
87     if ($row["life"] == $life)
88     {
89     $result_set["return"]["code"] = -1;
90     $result_set["return"]["message"] = "没有改变";
91    
92     mysqli_close($db_conn);
93     exit(json_encode($result_set));
94     }
95     }
96     else
97     {
98     $result_set["return"]["code"] = -1;
99     $result_set["return"]["message"] = "用户不存在";
100    
101     mysqli_close($db_conn);
102     exit(json_encode($result_set));
103     }
104     mysqli_free_result($rs);
105    
106     $sql = "UPDATE user_pubinfo SET life = $life WHERE UID = $uid";
107    
108     $rs = mysqli_query($db_conn, $sql);
109     if ($rs == false)
110     {
111     $result_set["return"]["code"] = -2;
112     $result_set["return"]["message"] = "Update user life error: " . mysqli_error($db_conn);
113    
114     mysqli_close($db_conn);
115     exit(json_encode($result_set));
116     }
117    
118     $sql = "UPDATE user_online SET current_action = 'reload' WHERE UID = $uid";
119    
120     $rs = mysqli_query($db_conn, $sql);
121     if ($rs == false)
122     {
123     $result_set["return"]["code"] = -2;
124     $result_set["return"]["message"] = "Update user online error: " . mysqli_error($db_conn);
125    
126     mysqli_close($db_conn);
127     exit(json_encode($result_set));
128     }
129    
130     $sql = "INSERT INTO user_life_log(UID, set_UID, life, dt, ip)
131     VALUES($uid, " . $_SESSION["BBS_uid"] . ", $life, NOW(), '".
132     client_addr() . "')";
133    
134     $rs = mysqli_query($db_conn, $sql);
135     if ($rs == false)
136     {
137     $result_set["return"]["code"] = -2;
138     $result_set["return"]["message"] = "Add log error: " . mysqli_error($db_conn);
139    
140     mysqli_close($db_conn);
141     exit(json_encode($result_set));
142     }
143    
144     // Commit transaction
145     $rs = mysqli_query($db_conn, "COMMIT");
146     if ($rs == false)
147     {
148     $result_set["return"]["code"] = -2;
149     $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
150    
151     mysqli_close($db_conn);
152     exit(json_encode($result_set));
153     }
154 sysadm 1.1
155 sysadm 1.11 mysqli_close($db_conn);
156     exit(json_encode($result_set));
157 sysadm 1.1 ?>

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1