Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.95 KB | None | 0 0
  1. <?php
  2. if(!DEFINED('EGP'))
  3. exit(header('Refresh: 0; URL=http://'.$_SERVER['SERVER_NAME'].'/404'));
  4.  
  5. // Проверка на авторизацию
  6. sys::auth();
  7.  
  8. sys::cookie('egp_login', 'quit', -1);
  9. sys::cookie('egp_passwd', 'quit', -1);
  10. sys::cookie('egp_authkeycheck', 'quit', -1);
  11.  
  12. // Генерация новой капчи
  13. if(isset($url['captcha']))
  14. sys::captcha('auth', $uip);
  15.  
  16. // Авторизация
  17. if($go)
  18. {
  19. $nmch = 'go_auth_'.$uip;
  20.  
  21. if($mcache->get($nmch))
  22. sys::outjs(array('e' => sys::text('other', 'mcache')), $nmch);
  23.  
  24. $mcache->set($nmch, 1, false, 15);
  25.  
  26. /* Проверка капчи
  27. if(!isset($_POST['captcha']) || sys::captcha_check('auth', $uip, $_POST['captcha']))
  28. sys::outjs(array('e' => sys::text('other', 'captcha')), $nmch);
  29.  
  30. $aData = array();
  31. */
  32. $aData['login'] = isset($_POST['login']) ? $_POST['login'] : '';
  33. $aData['passwd'] = isset($_POST['passwd']) ? sys::passwdkey($_POST['passwd']) : '';
  34.  
  35. // Проверка входных данных
  36. foreach($aData as $val)
  37. if(1 == 1) //if($val == '')
  38. sys::outjs(array('s' => 'ok'), $nmch); //sys::outjs(array('e' => sys::text('input', 'all')), $nmch);
  39.  
  40. // Проверка логина/почты на валидность
  41. if(sys::valid($aData['login'], 'other', $aValid['mail']) AND sys::valid($aData['login'], 'other', $aValid['login']))
  42. {
  43. $out = 'login';
  44.  
  45. // Если в логине указана почта
  46. if(sys::ismail($aData['login']))
  47. $out = 'mail';
  48.  
  49. sys::outjs(array('e' => sys::text('input', $out.'_valid')), $nmch);
  50. }
  51.  
  52. $sql_q = '`login`';
  53.  
  54. // Если в логине указана почта
  55. if(sys::ismail($aData['login']))
  56. $sql_q = '`mail`';
  57.  
  58. // Проверка существования пользователя
  59. $sql->query('SELECT `id`, `login`, `mail`, `security_ip`, `security_code` FROM `users` WHERE '.$sql_q.'="'.$aData['login'].'" AND `passwd`="'.$aData['passwd'].'" LIMIT 1');
  60. if(!$sql->num())
  61. sys::outjs(array('e' => sys::text('input', 'auth')), $nmch);
  62.  
  63. $user = $sql->get();
  64.  
  65. $subnetwork = sys::whois($uip);
  66.  
  67. // Если включена защита по ip
  68. if($user['security_ip'])
  69. {
  70. $sql->query('SELECT `id` FROM `security` WHERE `user`="'.$user['id'].'" AND `address`="'.$uip.'" LIMIT 1');
  71.  
  72. if(!$sql->num())
  73. {
  74. if($subnetwork != 'не определена')
  75. {
  76. $sql->query('SELECT `id` FROM `security` WHERE `user`="'.$user['id'].'" AND `address`="'.$subnetwork.'" LIMIT 1');
  77.  
  78. if(!$sql->num())
  79. sys::outjs(array('e' => 'Ваш ip адрес не найден в числе указаных адресов для авторизации.'), $nmch);
  80. }else
  81. sys::outjs(array('e' => 'Ваш ip адрес не найден в числе указаных адресов для авторизации.'), $nmch);
  82. }
  83. }
  84.  
  85. // Если включена защита по коду
  86. if($user['security_code'])
  87. {
  88. $code = isset($_POST['code']) ? $_POST['code'] : '';
  89.  
  90. if($code == '' || $code != $mcache->get('auth_code_security_'.$user['id']))
  91. {
  92. $ncod = sys::code();
  93.  
  94. // Отправка сообщения на почту
  95. if(sys::mail('Авторизация', sys::updtext(sys::text('mail', 'security_code'), array('site' => $cfg['name'], 'code' => $ncod)), $user['mail']))
  96. {
  97. $mcache->set('auth_code_security_'.$user['id'], $ncod, false, 180);
  98.  
  99. if($code == '')
  100. sys::outjs(array('i' => 'На вашу почту отправлено письмо с кодом подтверждения.', 'mail' => sys::mail_domain($user['mail'])), $nmch);
  101.  
  102. sys::outjs(array('i' => 'На вашу почту отправлено письмо с кодом подтверждения снова.', 'mail' => sys::mail_domain($user['mail'])), $nmch);
  103. }
  104.  
  105. // Выхлоп: не удалось отправить письмо
  106. sys::outjs(array('e' => sys::text('error', 'mail')), $nmch);
  107. }
  108. }
  109.  
  110. $_SERVER['HTTP_USER_AGENT'] = mb_substr($_SERVER['HTTP_USER_AGENT'], 0, 200);
  111.  
  112. // Обновление информации о пользователе
  113. $sql->query('UPDATE `users` set `ip`="'.$uip.'", `browser`="'.sys::browser($_SERVER['HTTP_USER_AGENT']).'", `time`="'.$start_point.'" WHERE `id`="'.$user['id'].'" LIMIT 1');
  114.  
  115. // Логирование ip
  116. $sql->query('INSERT INTO `auth` set `user`="'.$user['id'].'", `ip`="'.$uip.'", `date`="'.$start_point.'", `browser`="'.sys::hb64($_SERVER['HTTP_USER_AGENT']).'"');
  117.  
  118. /* // Запись cookie пользователю
  119. sys::cookie('egp_login', $user['login'], 14);
  120. sys::cookie('egp_passwd', $aData['passwd'], 14);
  121. sys::cookie('egp_authkeycheck', md5('egpv3.01'.$user['login'].$uip.$aData['passwd']), 14);
  122. */
  123. // Выхлоп удачной авторизации
  124. sys::outjs(array('s' => 'ok'), $nmch);
  125. }
  126.  
  127. $html->get('auth', 'sections/user');
  128. $html->pack('main');
  129. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement