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

Annotation of /fenglin/bbs/article_service_restore.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Sun Apr 27 04:18:22 2025 UTC (10 months, 2 weeks ago) by sysadm
Branch: MAIN
Changes since 1.1: +5 -5 lines
Trim trailing whitespaces

1 sysadm 1.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 sysadm 1.2
40 sysadm 1.1 $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 sysadm 1.2
118 sysadm 1.1 mysqli_close($db_conn);
119     exit(json_encode($result_set));
120     }
121 sysadm 1.2
122 sysadm 1.1 if (mysqli_num_rows($rs) == 0)
123     {
124     $result_set["return"]["code"] = -1;
125     $result_set["return"]["message"] = "需要先恢复主题";
126 sysadm 1.2
127 sysadm 1.1 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 sysadm 1.2
153 sysadm 1.1 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));
186     ?>

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