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

Diff of /fenglin/bbs/user_service_login.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.1 by sysadm, Wed Apr 23 07:06:54 2025 UTC Revision 1.7 by sysadm, Thu Oct 30 15:25:29 2025 UTC
# Line 1  Line 1 
1  <?php  <?php
2          require_once "../lib/db_open.inc.php";          require_once "../lib/db_open.inc.php";
3          require_once "../lib/lml.inc.php";          require_once "../lib/str_process.inc.php";
4          require_once "../lib/passwd.inc.php";          require_once "../lib/passwd.inc.php";
5          require_once "../lib/vn_gif.inc.php";          require_once "../lib/vn_gif.inc.php";
6          require_once "../lib/client_addr.inc.php";          require_once "../lib/client_addr.inc.php";
# Line 96  Line 96 
96                  mysqli_close($db_conn);                  mysqli_close($db_conn);
97                  exit(json_encode($result_set));                  exit(json_encode($result_set));
98          }          }
99            
100          $rs = mysqli_query($db_conn, "BEGIN");          $rs = mysqli_query($db_conn, "BEGIN");
101          if ($rs == false)          if ($rs == false)
102          {          {
# Line 118  Line 118 
118                  {                  {
119                          $result_set["return"]["code"] = -2;                          $result_set["return"]["code"] = -2;
120                          $result_set["return"]["message"] = "Query login log error: " . mysqli_error($db_conn);                          $result_set["return"]["message"] = "Query login log error: " . mysqli_error($db_conn);
121            
122                          mysqli_close($db_conn);                          mysqli_close($db_conn);
123                          exit(json_encode($result_set));                          exit(json_encode($result_set));
124                  }                  }
125    
126                  if ($row = mysqli_fetch_array($rs))                  if ($row = mysqli_fetch_array($rs))
127                  {                  {
128                          if ($row["err_count"] >= 2)                          if ($row["err_count"] >= 10)
129                          {                          {
130                                  $result_set["return"]["code"] = 1;                                  $result_set["return"]["code"] = 1;
131                                  $result_set["return"]["message"] = "来源存在多次失败登陆尝试,请输入验证码";                                  $result_set["return"]["message"] = "来源存在多次失败登陆尝试,请输入验证码";
# Line 136  Line 136 
136                  }                  }
137                  mysqli_free_result($rs);                  mysqli_free_result($rs);
138    
139                  // Failed login attempts against the current username during certain time period                  // Failed login attempts against the current username since last successful login
140                  $sql = "SELECT COUNT(*) AS err_count FROM user_err_login_log                  $sql = "SELECT COUNT(*) AS err_count FROM user_err_login_log
141                                  WHERE username = '$username' AND login_dt >= SUBDATE(NOW(), INTERVAL 1 DAY)";                                  LEFT JOIN user_list ON user_err_login_log.username = user_list.username
142                                    LEFT JOIN user_pubinfo ON user_list.UID = user_pubinfo.UID
143                                    WHERE user_err_login_log.username = '$username'
144                                    AND (user_err_login_log.login_dt >= user_pubinfo.last_login_dt
145                                    OR user_pubinfo.last_login_dt IS NULL)";
146                  $rs = mysqli_query($db_conn, $sql);                  $rs = mysqli_query($db_conn, $sql);
147                  if ($rs == false)                  if ($rs == false)
148                  {                  {
149                          $result_set["return"]["code"] = -2;                          $result_set["return"]["code"] = -2;
150                          $result_set["return"]["message"] = "Query login log error: " . mysqli_error($db_conn);                          $result_set["return"]["message"] = "Query login log error: " . mysqli_error($db_conn);
151            
152                          mysqli_close($db_conn);                          mysqli_close($db_conn);
153                          exit(json_encode($result_set));                          exit(json_encode($result_set));
154                  }                  }
155    
156                  if ($row = mysqli_fetch_array($rs))                  if ($row = mysqli_fetch_array($rs))
157                  {                  {
158                          if ($row["err_count"] >= 5)                          if ($row["err_count"] >= 3)
159                          {                          {
160                                  $result_set["return"]["code"] = 1;                                  $result_set["return"]["code"] = 1;
161                                  $result_set["return"]["message"] = "账户存在多次失败登陆尝试,请输入验证码";                                  $result_set["return"]["message"] = "账户存在多次失败登陆尝试,请输入验证码";
# Line 163  Line 167 
167                  mysqli_free_result($rs);                  mysqli_free_result($rs);
168          }          }
169    
170          $sql = "SELECT UID, p_login, verified, temp_password,          $sql = "SELECT UID, username, p_login, verified, temp_password,
171                          password = MD5('$password') AS old_pass                          password = MD5('$password') AS old_pass
172                          FROM user_list WHERE username = '$username' AND                          FROM user_list WHERE username = '$username' AND
173                          (password = MD5('$password') OR password = SHA2('$password', 256) OR                          (password = MD5('$password') OR password = SHA2('$password', 256) OR
# Line 185  Line 189 
189          if ($row = mysqli_fetch_array($rs))          if ($row = mysqli_fetch_array($rs))
190          {          {
191                  $uid = intval($row["UID"]);                  $uid = intval($row["UID"]);
192                    $username = $row["username"];
193    
194                  if ($password == $row["temp_password"] && !$ch_passwd)                  if ($password == $row["temp_password"] && !$ch_passwd)
195                  {                  {
# Line 208  Line 213 
213                                  {                                  {
214                                          $result_set["return"]["code"] = -2;                                          $result_set["return"]["code"] = -2;
215                                          $result_set["return"]["message"] = "Update user life error: " . mysqli_error($db_conn);                                          $result_set["return"]["message"] = "Update user life error: " . mysqli_error($db_conn);
216                            
217                                          mysqli_close($db_conn);                                          mysqli_close($db_conn);
218                                          exit(json_encode($result_set));                                          exit(json_encode($result_set));
219                                  }                                  }
# Line 225  Line 230 
230                          {                          {
231                                  $result_set["return"]["code"] = -2;                                  $result_set["return"]["code"] = -2;
232                                  $result_set["return"]["message"] = "Update password error: " . mysqli_error($db_conn);                                  $result_set["return"]["message"] = "Update password error: " . mysqli_error($db_conn);
233                    
234                                  mysqli_close($db_conn);                                  mysqli_close($db_conn);
235                                  exit(json_encode($result_set));                                  exit(json_encode($result_set));
236                          }                          }
# Line 238  Line 243 
243                          {                          {
244                                  $result_set["return"]["code"] = -2;                                  $result_set["return"]["code"] = -2;
245                                  $result_set["return"]["message"] = "Upgrade password error: " . mysqli_error($db_conn);                                  $result_set["return"]["message"] = "Upgrade password error: " . mysqli_error($db_conn);
246                    
247                                  mysqli_close($db_conn);                                  mysqli_close($db_conn);
248                                  exit(json_encode($result_set));                                  exit(json_encode($result_set));
249                          }                          }
# Line 269  Line 274 
274                          mysqli_close($db_conn);                          mysqli_close($db_conn);
275                          exit(json_encode($result_set));                          exit(json_encode($result_set));
276                  }                  }
277                    
278                  // Forbidden user                  // Forbidden user
279                  if (!$row["p_login"])                  if (!$row["p_login"])
280                  {                  {
281                          $result_set["return"]["code"] = 3;                          $result_set["return"]["code"] = 3;
282                          $result_set["return"]["message"] = "您已被封禁全站登陆权限!";                          $result_set["return"]["message"] = "您已被封禁全站登陆权限!";
283            
284                          mysqli_close($db_conn);                          mysqli_close($db_conn);
285                          exit(json_encode($result_set));                          exit(json_encode($result_set));
286                  }                  }
# Line 291  Line 296 
296                  {                  {
297                          $result_set["return"]["code"] = -2;                          $result_set["return"]["code"] = -2;
298                          $result_set["return"]["message"] = "Write log error: " . mysqli_error($db_conn);                          $result_set["return"]["message"] = "Write log error: " . mysqli_error($db_conn);
299            
300                          mysqli_close($db_conn);                          mysqli_close($db_conn);
301                          exit(json_encode($result_set));                          exit(json_encode($result_set));
302                  }                  }
# Line 326  Line 331 
331                  mysqli_close($db_conn);                  mysqli_close($db_conn);
332                  exit(json_encode($result_set));                  exit(json_encode($result_set));
333          }          }
334            
335          //Load User Information          //Load User Information
336          $ret = load_user_info($uid, $db_conn);          $ret = load_user_info($uid, $db_conn);
337          switch($ret)          switch($ret)
# Line 334  Line 339 
339                  case -1:                  case -1:
340                          $result_set["return"]["code"] = -2;                          $result_set["return"]["code"] = -2;
341                          $result_set["return"]["message"] = "User data not found: " . mysqli_error($db_conn);                          $result_set["return"]["message"] = "User data not found: " . mysqli_error($db_conn);
342            
343                          mysqli_close($db_conn);                          mysqli_close($db_conn);
344                          exit(json_encode($result_set));                          exit(json_encode($result_set));
345                  case -2:                  case -2:
346                          if (!$agreement)                          if (!$agreement)
347                          {                          {
348                                  $buffer = file_get_contents("./doc/license/" . (new DateTime($BBS_license_dt))->format("Ymd") . ".txt");                                  $buffer = file_get_contents("./doc/license/" . (new DateTime($BBS_license_dt))->format("Ymd") . ".txt");
349                    
350                                  $result_set["return"]["code"] = 4;                                  $result_set["return"]["code"] = 4;
351                                  $result_set["return"]["message"] = LML(htmlspecialchars($buffer, ENT_HTML401, 'UTF-8'), false, false, 1024);                                  $result_set["return"]["message"] = split_line(htmlspecialchars($buffer, ENT_HTML401, 'UTF-8'), "", 1024);
352                            
353                                  mysqli_close($db_conn);                                  mysqli_close($db_conn);
354                                  exit(json_encode($result_set));                                  exit(json_encode($result_set));
355                          }                          }
# Line 352  Line 357 
357                  case -3:                  case -3:
358                          $result_set["return"]["code"] = 3;                          $result_set["return"]["code"] = 3;
359                          $result_set["return"]["message"] = "很遗憾,您已经永远离开了我们的世界……";                          $result_set["return"]["message"] = "很遗憾,您已经永远离开了我们的世界……";
360            
361                          mysqli_close($db_conn);                          mysqli_close($db_conn);
362                          exit(json_encode($result_set));                          exit(json_encode($result_set));
363          }          }
# Line 385  Line 390 
390    
391          mysqli_close($db_conn);          mysqli_close($db_conn);
392          exit(json_encode($result_set));          exit(json_encode($result_set));
 ?>  


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

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