login.ctrl.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. defined('IN_IA') or exit('Access Denied');
  7. define('IN_GW', true);
  8. if(checksubmit() || $_W['isajax']) {
  9. _login($_GPC['referer']);
  10. }
  11. $setting = $_W['setting'];
  12. template('user/login');
  13. function _login($forward = '') {
  14. global $_GPC, $_W;
  15. load()->model('user');
  16. $member = array();
  17. $username = trim($_GPC['username']);
  18. // pdo_query('DELETE FROM'.tablename('users_failed_login'). ' WHERE lastupdate < :timestamp', array(':timestamp' => TIMESTAMP-300));
  19. // $failed = pdo_get('users_failed_login', array('username' => $username, 'ip' => CLIENT_IP));
  20. // if ($failed['count'] >= 5) {
  21. // message('输入密码错误次数超过5次,请在5分钟后再登录',referer(), 'info');
  22. // }
  23. // $verify = trim($_GPC['verify']);
  24. // if(empty($verify)) {
  25. // message('请输入验证码');
  26. // }
  27. // $result = checkcaptcha($verify);
  28. // if (empty($result)) {
  29. // message('输入验证码错误');
  30. // }
  31. if(empty($username)) {
  32. message('请输入要登录的用户名');
  33. }
  34. $member['username'] = $username;
  35. $member['password'] = $_GPC['password'];
  36. if(empty($member['password'])) {
  37. message('请输入密码');
  38. }
  39. $record = user_single($member);
  40. if(!empty($record)) {
  41. if($record['status'] == 1) {
  42. message('您的账号正在审核或是已经被系统禁止,请联系网站管理员解决!');
  43. }
  44. $account = pdo_fetch("SELECT * FROM " . tablename("zh_jdgjb_account") . " WHERE status=2 AND uid=:uid ORDER BY id DESC LIMIT 1", array(':uid' => $record['uid']));
  45. if (!empty($account)) {
  46. $storeid = $account['storeid'];
  47. $_W['uniacid'] = $account['weid'];
  48. } else {
  49. message('您的账号正在审核或是已经被系统禁止,请联系网站管理员解决!!!');
  50. }
  51. $founders = explode(',', $_W['config']['setting']['founder']);
  52. $_W['isfounder'] = in_array($record['uid'], $founders);
  53. if (empty($_W['isfounder'])) {
  54. if (!empty($record['endtime']) && $record['endtime'] < TIMESTAMP) {
  55. message('您的账号有效期限已过,请联系网站管理员解决!');
  56. }
  57. }
  58. if (!empty($_W['siteclose']) && empty($_W['isfounder'])) {
  59. message('站点已关闭,关闭原因:' . $_W['setting']['copyright']['reason']);
  60. }
  61. $cookie = array();
  62. $cookie['uid'] = $record['uid'];
  63. $cookie['lastvisit'] = $record['lastvisit'];
  64. $cookie['lastip'] = $record['lastip'];
  65. $cookie['hash'] = md5($record['password'] . $record['salt']);
  66. $session = base64_encode(json_encode($cookie));
  67. isetcookie('__session', $session, !empty($_GPC['rember']) ? 7 * 86400 : 0, true);
  68. $status = array();
  69. $status['uid'] = $record['uid'];
  70. $status['lastvisit'] = TIMESTAMP;
  71. $status['lastip'] = CLIENT_IP;
  72. user_update($status);
  73. $role = uni_permission($record['uid'], $_W['uniacid']);
  74. isetcookie('__uniacid', $_W['uniacid'], 7 * 86400);
  75. isetcookie('__uid', $record['uid'], 7 * 86400);
  76. if($_W['role'] == 'clerk' || $role == 'clerk') {
  77. // message('登陆成功', url('activity/desk', array('uniacid' => $record['uniacid'])), 'success');
  78. // message("欢迎回来!,{$record['username']}!", url('site/entry/stores', array('m' => 'wpdc', 'storeid' => $storeid, 'do' => 'start')), 'success');
  79. }
  80. // if(empty($forward)) {
  81. // $forward = $_GPC['forward'];
  82. // }
  83. // if(empty($forward)) {
  84. // $forward = './index.php?c=account&a=display';
  85. // }
  86. // if ($record['uid'] != $_GPC['__uid']) {
  87. // isetcookie('__uniacid', '', -7 * 86400);
  88. // isetcookie('__uid', '', -7 * 86400);
  89. // }
  90. // pdo_delete('users_failed_login', array('id' => $failed['id']));
  91. // message("欢迎回来,{$record['username']}。", $forward);
  92. $data = array(
  93. 'lastvisit' => TIMESTAMP,
  94. 'lastip' => CLIENT_IP,
  95. );
  96. pdo_update("zh_jdgjb_account", $data, array('id' => $record['id']));
  97. message("欢迎回来,{$record['username']}!", url('site/entry/stores', array('m' => 'zh_jdgjb', 'id' => $storeid,'uid'=>$record['uid'], 'do' => 'dlstatistics')), 'success');
  98. } else {
  99. if (empty($failed)) {
  100. pdo_insert('users_failed_login', array('ip' => CLIENT_IP, 'username' => $username, 'count' => '1', 'lastupdate' => TIMESTAMP));
  101. } else {
  102. pdo_update('users_failed_login', array('count' => $failed['count'] + 1, 'lastupdate' => TIMESTAMP), array('id' => $failed['id']));
  103. }
  104. message('登录失败,请检查您输入的用户名和密码!');
  105. }
  106. }