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

Annotation of /fenglin/bbs/msg_read.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Wed Apr 23 06:31:34 2025 UTC (10 months, 3 weeks ago) by sysadm
Branch: MAIN
Rename read_msg to msg_read

1 sysadm 1.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 = "-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     $unread_mid_list .= (", " . $row["MID"]);
155     }
156    
157     }
158     mysqli_free_result($rs);
159    
160     if (!$sent && $unread_mid_list != "-1")
161     {
162     $sql = "UPDATE bbs_msg SET new = 0 WHERE MID IN ($unread_mid_list)";
163    
164     $rs = mysqli_query($db_conn, $sql);
165     if ($rs == false)
166     {
167     $result_set["return"]["code"] = -2;
168     $result_set["return"]["message"] = "Update message error: " . mysqli_error($db_conn);
169    
170     mysqli_close($db_conn);
171     exit(json_encode($result_set));
172     }
173     }
174    
175     mysqli_close($db_conn);
176    
177     // Cleanup
178     unset($uid);
179     unset($nickname);
180     unset($sent);
181     unset($page);
182     unset($rpp);
183     unset($page_total);
184     unset($toa);
185     unset($unread_msg_count);
186     unset($unread_mid_list);
187    
188     // Output with theme view
189     $theme_view_file = get_theme_file("view/read_msg", $_SESSION["BBS_theme_name"]);
190     if ($theme_view_file == null)
191     {
192     exit(json_encode($result_set)); // Output data in Json
193     }
194     include $theme_view_file;
195     ?>

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