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

Contents of /fenglin/bbs/article_post.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/common.inc.php";
3 require_once "../lib/db_open.inc.php";
4 require_once "./session_init.inc.php";
5 require_once "./check_sub.inc.php";
6 require_once "../lib/lml.inc.php";
7 require_once "../lib/str_process.inc.php";
8 require_once "./theme.inc.php";
9
10 force_login();
11
12 $result_set = array(
13 "return" => array(
14 "code" => 0,
15 "message" => "",
16 "errorFields" => array(),
17 )
18 );
19
20 $id = (isset($_GET["id"]) ? intval($_GET["id"]) : 0);
21 $reply_id = (isset($_GET["reply_id"]) ? intval($_GET["reply_id"]) : 0);
22 $sid = (isset($_GET["sid"]) ? intval($_GET["sid"]) : $BBS_default_sid);
23 $quote = (isset($_GET["quote"]) && $_GET["quote"] == "0" ? false : true);
24
25 $uid = 0;
26 $tid = 0;
27 $title = "";
28 $r_username = "";
29 $r_nickname = "";
30 $content = "";
31 $emoji = 1;
32 $reply_note = ($reply_id == 0 ? 1 : 0);
33 $excerption = 0;
34 $attachments = array();
35
36 if($id == 0) // Post article
37 {
38 if ($reply_id == 0) // Post new thread
39 {
40 $sql = "SELECT title FROM section_config WHERE SID = $sid AND enable";
41
42 $rs = mysqli_query($db_conn, $sql);
43 if ($rs == false)
44 {
45 $result_set["return"]["code"] = -2;
46 $result_set["return"]["message"] = "Query section error: " . mysqli_error($db_conn);
47
48 mysqli_close($db_conn);
49 exit(json_encode($result_set));
50 }
51
52 if ($row = mysqli_fetch_array($rs))
53 {
54 $section_title = $row["title"];
55 }
56 else
57 {
58 $result_set["return"]["code"] = -1;
59 $result_set["return"]["message"] = "版块不存在!";
60
61 mysqli_close($db_conn);
62 exit(json_encode($result_set));
63 }
64 mysqli_free_result($rs);
65
66 if (!$_SESSION["BBS_priv"]->checkpriv($sid, S_POST))
67 {
68 $result_set["return"]["code"] = -1;
69 $result_set["return"]["message"] = "您无权发表文章!";
70
71 mysqli_close($db_conn);
72 exit(json_encode($result_set));
73 }
74 }
75 else // Reply article
76 {
77 $sql = "SELECT TID, bbs.SID, bbs.title, `lock`, username, nickname, content,
78 section_config.title AS s_title FROM bbs
79 INNER JOIN bbs_content ON bbs.CID = bbs_content.CID
80 INNER JOIN section_config ON bbs.SID = section_config.SID
81 WHERE bbs.AID = $reply_id AND visible";
82
83 $rs = mysqli_query($db_conn, $sql);
84 if ($rs == false)
85 {
86 $result_set["return"]["code"] = -2;
87 $result_set["return"]["message"] = "Query article error: " . mysqli_error($db_conn);
88
89 mysqli_close($db_conn);
90 exit(json_encode($result_set));
91 }
92
93 if ($row = mysqli_fetch_array($rs))
94 {
95 $tid = $row["TID"];
96 $sid = $row["SID"];
97 $title = $row["title"];
98 $lock = $row["lock"];
99 $r_username = $row["username"];
100 $r_nickname = $row["nickname"];
101 $content = $row["content"];
102 $section_title = $row["s_title"];
103 }
104 else
105 {
106 $result_set["return"]["code"] = -1;
107 $result_set["return"]["message"] = "回复的文章不存在!";
108
109 mysqli_close($db_conn);
110 exit(json_encode($result_set));
111 }
112 mysqli_free_result($rs);
113
114 if ($tid != 0) // Article to be replied is not the head of topic thread
115 {
116 $sql = "SELECT SID, `lock` FROM bbs WHERE AID = $tid AND visible";
117
118 $rs = mysqli_query($db_conn, $sql);
119 if ($rs == false)
120 {
121 $result_set["return"]["code"] = -2;
122 $result_set["return"]["message"] = "Query article error: " . mysqli_error($db_conn);
123
124 mysqli_close($db_conn);
125 exit(json_encode($result_set));
126 }
127
128 if ($row = mysqli_fetch_array($rs))
129 {
130 $sid = $row["SID"]; // In case of inconsistent SID data
131 $lock = $row["lock"];
132 }
133 else
134 {
135 $result_set["return"]["code"] = -1;
136 $result_set["return"]["message"] = "回复的主题不存在!";
137
138 mysqli_close($db_conn);
139 exit(json_encode($result_set));
140 }
141 mysqli_free_result($rs);
142 }
143
144 if (!$_SESSION["BBS_priv"]->checkpriv($sid, S_POST))
145 {
146 $result_set["return"]["code"] = -1;
147 $result_set["return"]["message"] = "您无权发表文章!";
148
149 mysqli_close($db_conn);
150 exit(json_encode($result_set));
151 }
152
153 if ($lock)
154 {
155 $result_set["return"]["code"] = -1;
156 $result_set["return"]["message"] = "该主题谢绝回复!";
157
158 mysqli_close($db_conn);
159 exit(json_encode($result_set));
160 }
161 }
162 }
163 else // Modify article
164 {
165 $sql = "select UID, bbs.SID, TID, bbs.title, content, icon, reply_note, excerption,
166 section_config.title AS s_title FROM bbs
167 INNER JOIN bbs_content ON bbs.CID = bbs_content.CID
168 INNER JOIN section_config ON bbs.SID = section_config.SID
169 WHERE bbs.AID = $id AND visible";
170
171 $rs = mysqli_query($db_conn, $sql);
172 if ($rs == false)
173 {
174 $result_set["return"]["code"] = -2;
175 $result_set["return"]["message"] = "Query article error: " . mysqli_error($db_conn);
176
177 mysqli_close($db_conn);
178 exit(json_encode($result_set));
179 }
180
181 if ($row = mysqli_fetch_array($rs))
182 {
183 $uid = $row["UID"];
184 $sid = $row["SID"];
185 $tid = $row["TID"];
186 $title = $row["title"];
187 $content = $row["content"];
188 $emoji = $row["icon"];
189 $reply_note = $row["reply_note"];
190 $excerption = $row["excerption"];
191 $section_title = $row["s_title"];
192 }
193 else
194 {
195 $result_set["return"]["code"] = -1;
196 $result_set["return"]["message"] = "修改的文章不存在!";
197
198 mysqli_close($db_conn);
199 exit(json_encode($result_set));
200 }
201 mysqli_free_result($rs);
202
203 if (!($_SESSION["BBS_priv"]->checkpriv($sid, S_POST) && $_SESSION["BBS_uid"] == $uid && (!$excerption)))
204 {
205 $result_set["return"]["code"] = -1;
206 $result_set["return"]["message"] = "您无权修改此文章!";
207
208 mysqli_close($db_conn);
209 exit(json_encode($result_set));
210 }
211
212 $sql = "SELECT * FROM upload_file WHERE ref_AID = $id
213 AND deleted = 0 AND deny = 0
214 ORDER BY AID";
215
216 $rs = mysqli_query($db_conn, $sql);
217 if ($rs == false)
218 {
219 $result_set["return"]["code"] = -2;
220 $result_set["return"]["message"] = "Read attachment error: " . mysqli_error($db_conn);
221
222 mysqli_close($db_conn);
223 exit(json_encode($result_set));
224 }
225
226 while ($row = mysqli_fetch_array($rs))
227 {
228 $attachments[$row["AID"]] = array(
229 "filename" => $row["filename"],
230 "size" => $row["size"],
231 "check" => $row["check"],
232 );
233 }
234 mysqli_free_result($rs);
235 }
236
237 mysqli_close($db_conn);
238
239 // Fill up result data
240 $result_set["data"] = array(
241 "id" => $id,
242 "reply_id" => $reply_id,
243 "uid" => $uid,
244 "sid" => $sid,
245 "tid" => $tid,
246 "title" => $title,
247 "r_username" => $r_username,
248 "r_nickname" => $r_nickname,
249 "content" => $content,
250 "quote" => $quote,
251 "emoji" => $emoji,
252 "reply_note" => $reply_note,
253 "excerption" => $excerption,
254 "section_title" => $section_title,
255 "attachments" => $attachments,
256 );
257
258 // Cleanup
259 unset($id);
260 unset($reply_id);
261 unset($uid);
262 unset($sid);
263 unset($tid);
264 unset($title);
265 unset($r_username);
266 unset($r_nickname);
267 unset($content);
268 unset($emoji);
269 unset($reply_note);
270 unset($excerption);
271 unset($section_title);
272 unset($attachments);
273
274 // Output with theme view
275 $theme_view_file = get_theme_file("view/post", $_SESSION["BBS_theme_name"]);
276 if ($theme_view_file == null)
277 {
278 exit(json_encode($result_set)); // Output data in Json
279 }
280 include $theme_view_file;

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