SHARE
TWEET

Untitled

a guest Feb 22nd, 2019 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. ?>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top