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

Annotation of /fenglin/bbs/article_post.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide 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 sysadm 1.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 sysadm 1.2
48 sysadm 1.1 mysqli_close($db_conn);
49     exit(json_encode($result_set));
50     }
51 sysadm 1.2
52 sysadm 1.1 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 sysadm 1.2
61 sysadm 1.1 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 sysadm 1.2
71 sysadm 1.1 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 sysadm 1.2
89 sysadm 1.1 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 sysadm 1.2
109 sysadm 1.1 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 sysadm 1.2
124 sysadm 1.1 mysqli_close($db_conn);
125     exit(json_encode($result_set));
126     }
127 sysadm 1.2
128 sysadm 1.1 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 sysadm 1.2
138 sysadm 1.1 mysqli_close($db_conn);
139     exit(json_encode($result_set));
140     }
141 sysadm 1.2 mysqli_free_result($rs);
142 sysadm 1.1 }
143    
144     if (!$_SESSION["BBS_priv"]->checkpriv($sid, S_POST))
145     {
146     $result_set["return"]["code"] = -1;
147     $result_set["return"]["message"] = "您无权发表文章!";
148 sysadm 1.2
149 sysadm 1.1 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 sysadm 1.2
158 sysadm 1.1 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 sysadm 1.2
177 sysadm 1.1 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 sysadm 1.2
198 sysadm 1.1 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 sysadm 1.2
208 sysadm 1.1 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 sysadm 1.2
222 sysadm 1.1 mysqli_close($db_conn);
223     exit(json_encode($result_set));
224     }
225 sysadm 1.2
226 sysadm 1.1 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 sysadm 1.2
274 sysadm 1.1 // 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