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

Contents of /fenglin/bbs/set_life.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13 - (show 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 <?
2 require_once "../lib/db_open.inc.php";
3 require_once "./common_lib.inc.php";
4 require_once "./session_init.inc.php";
5
6 $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
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 if (!$_SESSION["BBS_priv"]->checklevel(P_ADMIN_M | P_ADMIN_S))
41 {
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 WHERE user_list.UID = $uid AND user_list.enable
73 FOR UPDATE";
74
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
155 mysqli_close($db_conn);
156 exit(json_encode($result_set));
157 ?>

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