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

Contents of /fenglin/bbs/article_service_restore.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations)
Tue Apr 29 11:55:32 2025 UTC (10 months, 2 weeks ago) by sysadm
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +0 -1 lines
Remove redundant PHP closing tag

1 <?php
2 require_once "../lib/db_open.inc.php";
3 require_once "./article_op.inc.php";
4 require_once "./session_init.inc.php";
5
6 $data = json_decode(file_get_contents("php://input"), true);
7
8 $id = (isset($data["id"]) ? intval($data["id"]) : 0);
9
10 $result_set = array(
11 "return" => array(
12 "code" => 0,
13 "message" => "",
14 "errorFields" => array(),
15 )
16 );
17
18 header("Content-Type:application/json; charset=utf-8");
19
20 if (!isset($_SESSION["BBS_uid"]) || $_SESSION["BBS_uid"] == 0)
21 {
22 $result_set["return"]["code"] = -1;
23 $result_set["return"]["message"] = "没有登录";
24
25 mysqli_close($db_conn);
26 exit(json_encode($result_set));
27 }
28
29 // Begin transaction
30 $rs = mysqli_query($db_conn, "SET autocommit=0");
31 if ($rs == false)
32 {
33 $result_set["return"]["code"] = -2;
34 $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
35
36 mysqli_close($db_conn);
37 exit(json_encode($result_set));
38 }
39
40 $rs = mysqli_query($db_conn, "BEGIN");
41 if ($rs == false)
42 {
43 $result_set["return"]["code"] = -2;
44 $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
45
46 mysqli_close($db_conn);
47 exit(json_encode($result_set));
48 }
49
50
51 $sql = "SELECT TID, SID, visible, m_del FROM bbs WHERE AID = $id FOR UPDATE";
52
53 $rs = mysqli_query($db_conn, $sql);
54 if ($rs == false)
55 {
56 $result_set["return"]["code"] = -2;
57 $result_set["return"]["message"] = "Query article error: " . mysqli_error($db_conn);
58
59 mysqli_close($db_conn);
60 exit(json_encode($result_set));
61 }
62
63 if($row = mysqli_fetch_array($rs))
64 {
65 $tid = $row["TID"];
66 $sid = $row["SID"];
67 $visible = $row["visible"];
68 $m_del = $row["m_del"];
69 }
70 else
71 {
72 $result_set["return"]["code"] = -1;
73 $result_set["return"]["message"] = "文章不存在";
74
75 mysqli_close($db_conn);
76 exit(json_encode($result_set));
77 }
78 mysqli_free_result($rs);
79
80 // Check if already restored
81 if ($visible)
82 {
83 $result_set["return"]["code"] = 1;
84 $result_set["return"]["message"] = "已设置";
85
86 mysqli_close($db_conn);
87 exit(json_encode($result_set));
88 }
89
90 if (!$m_del)
91 {
92 $result_set["return"]["code"] = -1;
93 $result_set["return"]["message"] = "主动删帖不可恢复";
94
95 mysqli_close($db_conn);
96 exit(json_encode($result_set));
97 }
98
99 if (!$_SESSION["BBS_priv"]->checkpriv($sid, S_POST | S_MAN_S))
100 {
101 $result_set["return"]["code"] = -1;
102 $result_set["return"]["message"] = "没有权限";
103
104 mysqli_close($db_conn);
105 exit(json_encode($result_set));
106 }
107
108 if ($tid != 0)
109 {
110 $sql = "SELECT AID FROM bbs WHERE AID = $tid AND visible = 1 FOR UPDATE";
111
112 $rs = mysqli_query($db_conn, $sql);
113 if ($rs == false)
114 {
115 $result_set["return"]["code"] = -2;
116 $result_set["return"]["message"] = "Query topic error: " . mysqli_error($db_conn);
117
118 mysqli_close($db_conn);
119 exit(json_encode($result_set));
120 }
121
122 if (mysqli_num_rows($rs) == 0)
123 {
124 $result_set["return"]["code"] = -1;
125 $result_set["return"]["message"] = "需要先恢复主题";
126
127 mysqli_close($db_conn);
128 exit(json_encode($result_set));
129 }
130
131 mysqli_free_result($rs);
132 }
133
134 $sql = "UPDATE bbs SET visible = 1, m_del = 0 WHERE AID = $id";
135
136 $rs = mysqli_query($db_conn, $sql);
137 if ($rs == false)
138 {
139 $result_set["return"]["code"] = -2;
140 $result_set["return"]["message"] = "Delete article error: " . mysqli_error($db_conn);
141
142 mysqli_close($db_conn);
143 exit(json_encode($result_set));
144 }
145
146 //Add log
147 $rs = article_op_log($id, $_SESSION["BBS_uid"], "S", client_addr(), $db_conn);
148 if ($rs == false)
149 {
150 $result_set["return"]["code"] = -2;
151 $result_set["return"]["message"] = "Add log error: " . mysqli_error($db_conn);
152
153 mysqli_close($db_conn);
154 exit(json_encode($result_set));
155 }
156
157 //Set reply count
158 if ($tid != 0)
159 {
160 $sql = "UPDATE bbs SET reply_count = reply_count + 1 WHERE AID = $tid";
161
162 $rs = mysqli_query($db_conn, $sql);
163 if ($rs == false)
164 {
165 $result_set["return"]["code"] = -2;
166 $result_set["return"]["message"] = "Update article error: " . mysqli_error($db_conn);
167
168 mysqli_close($db_conn);
169 exit(json_encode($result_set));
170 }
171 }
172
173 // Commit transaction
174 $rs = mysqli_query($db_conn, "COMMIT");
175 if ($rs == false)
176 {
177 $result_set["return"]["code"] = -2;
178 $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
179
180 mysqli_close($db_conn);
181 exit(json_encode($result_set));
182 }
183
184 mysqli_close($db_conn);
185 exit(json_encode($result_set));

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