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

Contents of /fenglin/bbs/search_user.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.25 - (show annotations)
Wed Apr 23 05:13:56 2025 UTC (10 months, 3 weeks ago) by sysadm
Branch: MAIN
CVS Tags: HEAD
Changes since 1.24: +1 -1 lines
Refine deprecated PHP short tags

1 <?php
2 require_once "../lib/db_open.inc.php";
3 require_once "./session_init.inc.php";
4 require_once "./user_level.inc.php";
5 require_once "./theme.inc.php";
6
7 $result_set = array(
8 "return" => array(
9 "code" => 0,
10 "message" => "",
11 "errorFields" => array(),
12 )
13 );
14
15 $page = (isset($_GET["page"]) ? intval($_GET["page"]) : 1);
16 $rpp = (isset($_GET["rpp"]) ? intval($_GET["rpp"]) : 20);
17
18 $type = (isset($_GET["type"]) ? intval($_GET["type"]) : 0);
19 $online = (isset($_GET["online"]) && $_GET["online"] == "1" ? 1 : 0);
20 $friend = (isset($_GET["friend"]) && $_GET["friend"] == "1" ? 1 : 0);
21 $search_text = (isset($_GET["search_text"]) ? $_GET["search_text"] : "");
22
23 $sql = "SELECT IF(UID = 0, 1, 0) AS is_guest, COUNT(*) AS u_count FROM user_online
24 WHERE last_tm >= SUBDATE(NOW(), INTERVAL $BBS_user_off_line SECOND)
25 GROUP BY is_guest";
26
27 $rs = mysqli_query($db_conn, $sql);
28 if ($rs == false)
29 {
30 echo("Count online user error" . mysqli_error($db_conn));
31 exit();
32 }
33
34 $guest_online = 0;
35 $user_online = 0;
36
37 while ($row = mysqli_fetch_array($rs))
38 {
39 if ($row["is_guest"])
40 {
41 $guest_online = $row["u_count"];
42 }
43 else
44 {
45 $user_online = $row["u_count"];
46 }
47 }
48 mysqli_free_result($rs);
49
50 $sql = "SELECT COUNT(user_list.UID) AS rec_count FROM user_list" .
51 ($online ? " INNER JOIN user_online ON user_list.UID = user_online.UID" : "") .
52 ($friend ? " INNER JOIN friend_list ON user_list.UID = friend_list.fUID" : "") .
53 ($type == 1 ? " INNER JOIN user_pubinfo ON user_list.UID = user_pubinfo.UID" : "") .
54 " WHERE user_list.enable AND ".
55 ($type == 1 ? "nickname" : "username") .
56 " LIKE '%" . mysqli_real_escape_string($db_conn, $search_text) . "%'" .
57 ($online ? " AND last_tm >= SUBDATE(NOW(), INTERVAL $BBS_user_off_line SECOND)" : "").
58 ($friend ? " AND friend_list.UID = " . $_SESSION["BBS_uid"] : "");
59
60 $rs = mysqli_query($db_conn, $sql);
61 if ($rs == false)
62 {
63 echo("Query user error" . mysqli_error($db_conn));
64 exit();
65 }
66
67 if ($row = mysqli_fetch_array($rs))
68 {
69 $toa = $row["rec_count"];
70 }
71
72 mysqli_free_result($rs);
73
74 if (!in_array($rpp, $BBS_list_rpp_options))
75 {
76 $rpp = $BBS_list_rpp_options[0];
77 }
78
79 $page_total = ceil($toa / $rpp);
80 if ($page > $page_total)
81 {
82 $page = $page_total;
83 }
84
85 if ($page <= 0)
86 {
87 $page = 1;
88 }
89
90 // Fill up result data
91 $result_set["data"] = array(
92 "type" => $type,
93 "online" => $online,
94 "friend" => $friend,
95 "search_text" => $search_text,
96 "page" => $page,
97 "rpp" => $rpp,
98 "page_total" => $page_total,
99 "toa" => $toa,
100 "user_online" => $user_online,
101 "guest_online" => $guest_online,
102
103 "users" => array(),
104 );
105
106 $sql = "SELECT user_list.UID, username, nickname, exp, gender, gender_pub, last_login_dt FROM user_list" .
107 ($online ? " INNER JOIN user_online ON user_list.UID = user_online.UID" : "") .
108 ($friend ? " INNER JOIN friend_list ON user_list.UID = friend_list.fUID" : "") .
109 " INNER JOIN user_pubinfo ON user_list.UID = user_pubinfo.UID WHERE user_list.enable AND ".
110 ($type == 1 ? "nickname" : "username") .
111 " LIKE '%" . mysqli_real_escape_string($db_conn, $search_text) . "%'" .
112 ($online ? " AND last_tm >= SUBDATE(NOW(), INTERVAL $BBS_user_off_line SECOND)" : "").
113 ($friend ? " AND friend_list.UID = " . $_SESSION["BBS_uid"] : "") .
114 " ORDER BY " . ($type == 1 ? "nickname" : "username") .
115 " LIMIT " . ($page - 1) * $rpp . ", $rpp";
116
117 $rs = mysqli_query($db_conn, $sql);
118 if ($rs == false)
119 {
120 echo("Query user error" . mysqli_error($db_conn));
121 exit();
122 }
123
124 while ($row = mysqli_fetch_array($rs))
125 {
126 array_push($result_set["data"]["users"], array(
127 "uid" => $row["UID"],
128 "username" => $row["username"],
129 "nickname" => $row["nickname"],
130 "exp" => $row["exp"],
131 "gender" => $row["gender"],
132 "gender_pub" => $row["gender_pub"],
133 "last_login_dt" => (new DateTimeImmutable($row["last_login_dt"]))->setTimezone($_SESSION["BBS_user_tz"]),
134 ));
135 }
136 mysqli_free_result($rs);
137
138 // Cleanup
139 unset($type);
140 unset($online);
141 unset($friend);
142 unset($search_text);
143 unset($page);
144 unset($rpp);
145 unset($page_total);
146 unset($toa);
147 unset($user_online);
148 unset($guest_online);
149
150 // Output with theme view
151 $theme_view_file = get_theme_file("view/search_user", $_SESSION["BBS_theme_name"]);
152 if ($theme_view_file == null)
153 {
154 exit(json_encode($result_set)); // Output data in Json
155 }
156 include $theme_view_file;
157 ?>

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