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

Contents of /fenglin/bbs/msg_read.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (show annotations)
Wed Feb 11 10:59:14 2026 UTC (4 weeks, 6 days ago) by sysadm
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +6 -4 lines
Replace string concat operation with implode() for xxxx_id_list

1 <?php
2 require_once "../lib/db_open.inc.php";
3 require_once "../lib/lml.inc.php";
4 require_once "./session_init.inc.php";
5 require_once "./theme.inc.php";
6
7 force_login();
8
9 $uid = (isset($_GET["uid"]) ? intval($_GET["uid"]) : 0);
10 $sent = (isset($_GET["sent"]) && $_GET["sent"] == "1");
11 $page = (isset($_GET["page"]) ? intval($_GET["page"]) : 1);
12 $rpp = (isset($_GET["rpp"]) ? intval($_GET["rpp"]) : 10);
13
14 if (!in_array($rpp, $BBS_msg_rpp_options))
15 {
16 $rpp = $BBS_msg_rpp_options[0];
17 }
18
19 $result_set = array(
20 "return" => array(
21 "code" => 0,
22 "message" => "",
23 "errorFields" => array(),
24 )
25 );
26
27 $nickname = "";
28 if ($uid > 0)
29 {
30 $sql = "SELECT nickname FROM user_pubinfo WHERE UID = $uid";
31
32 $rs = mysqli_query($db_conn, $sql);
33 if ($rs == false)
34 {
35 $result_set["return"]["code"] = -2;
36 $result_set["return"]["message"] = "Query user error: " . mysqli_error($db_conn);
37
38 mysqli_close($db_conn);
39 exit(json_encode($result_set));
40 }
41
42 if ($row = mysqli_fetch_array($rs))
43 {
44 $nickname = $row["nickname"];
45 }
46 else
47 {
48 $result_set["return"]["code"] = -1;
49 $result_set["return"]["message"] = "用户不存在";
50 }
51 mysqli_free_result($rs);
52 }
53
54 $unread_msg_count = 0;
55 if (!$sent)
56 {
57 $sql = "SELECT COUNT(MID) AS msg_count FROM bbs_msg WHERE " . ($sent ? "fromUID" : "toUID") .
58 " = " . $_SESSION["BBS_uid"] . " AND new AND " . ($sent ? "s_deleted" : "deleted") . " = 0";
59
60 $rs = mysqli_query($db_conn, $sql);
61 if ($rs == false)
62 {
63 $result_set["return"]["code"] = -2;
64 $result_set["return"]["message"] = "Query msg count error: " . mysqli_error($db_conn);
65
66 mysqli_close($db_conn);
67 exit(json_encode($result_set));
68 }
69
70 if ($row = mysqli_fetch_array($rs))
71 {
72 $unread_msg_count = $row["msg_count"];
73 }
74 mysqli_free_result($rs);
75 }
76
77
78 $sql = "SELECT COUNT(MID) AS msg_count FROM bbs_msg WHERE " . ($sent ? "fromUID" : "toUID") .
79 " = " . $_SESSION["BBS_uid"] . " AND " . ($sent ? "s_deleted" : "deleted") . " = 0";
80
81 $rs = mysqli_query($db_conn, $sql);
82 if ($rs == false)
83 {
84 $result_set["return"]["code"] = -2;
85 $result_set["return"]["message"] = "Query msg count error: " . mysqli_error($db_conn);
86
87 mysqli_close($db_conn);
88 exit(json_encode($result_set));
89 }
90
91 $toa = 0;
92 if ($row = mysqli_fetch_array($rs))
93 {
94 $toa = $row["msg_count"];
95 }
96 mysqli_free_result($rs);
97
98 $page_total = ceil($toa / $rpp);
99 if ($page > $page_total)
100 {
101 $page = $page_total;
102 }
103
104 if ($page <= 0)
105 {
106 $page = 1;
107 }
108
109 // Fill up result data
110 $result_set["data"] = array(
111 "uid" => $uid,
112 "nickname" => $nickname,
113 "sent" => $sent,
114 "page" => $page,
115 "rpp" => $rpp,
116 "page_total" => $page_total,
117 "msg_count" => $toa,
118 "unread_msg_count" => $unread_msg_count,
119
120 "messages" => array(),
121 );
122
123 $sql = "SELECT bbs_msg.*, nickname FROM bbs_msg LEFT JOIN user_pubinfo ON " .
124 ($sent ? "toUID" : "fromUID") . " = user_pubinfo.UID WHERE " .
125 ($sent ? "fromUID" : "toUID") . " = " . $_SESSION["BBS_uid"] .
126 " AND " . ($sent ? "s_deleted" : "deleted") .
127 " = 0 ORDER BY MID DESC LIMIT " .
128 (($page - 1) * $rpp) . ", $rpp";
129
130 $rs = mysqli_query($db_conn, $sql);
131 if ($rs == false)
132 {
133 $result_set["return"]["code"] = -2;
134 $result_set["return"]["message"] = "Query message error: " . mysqli_error($db_conn);
135
136 mysqli_close($db_conn);
137 exit(json_encode($result_set));
138 }
139
140 $unread_mid_list = array(-1);
141 while ($row = mysqli_fetch_array($rs))
142 {
143 array_push($result_set["data"]["messages"], array(
144 "mid" => $row["MID"],
145 "uid" => ($sent ? $row["toUID"] : $row["fromUID"]),
146 "content" => $row["content"],
147 "send_dt" => (new DateTimeImmutable($row["send_dt"]))->setTimezone($_SESSION["BBS_user_tz"]),
148 "new" => $row["new"],
149 "nickname" => $row["nickname"],
150 ));
151
152 if (!$sent && $row["new"])
153 {
154 array_push($unread_mid_list, $row["MID"]);
155 }
156
157 }
158 mysqli_free_result($rs);
159
160 if (!$sent && count($unread_mid_list) > 1)
161 {
162 $sql = "UPDATE bbs_msg SET new = 0 WHERE MID IN (" .
163 implode(",", $unread_mid_list) .
164 ")";
165
166 $rs = mysqli_query($db_conn, $sql);
167 if ($rs == false)
168 {
169 $result_set["return"]["code"] = -2;
170 $result_set["return"]["message"] = "Update message error: " . mysqli_error($db_conn);
171
172 mysqli_close($db_conn);
173 exit(json_encode($result_set));
174 }
175 }
176
177 mysqli_close($db_conn);
178
179 // Cleanup
180 unset($uid);
181 unset($nickname);
182 unset($sent);
183 unset($page);
184 unset($rpp);
185 unset($page_total);
186 unset($toa);
187 unset($unread_msg_count);
188 unset($unread_mid_list);
189
190 // Output with theme view
191 $theme_view_file = get_theme_file("view/msg_read", $_SESSION["BBS_theme_name"]);
192 if ($theme_view_file == null)
193 {
194 exit(json_encode($result_set)); // Output data in Json
195 }
196 include $theme_view_file;

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